BCTT Partners Portal API - Developer Portal
  • Documentation
  • API Reference
Authentication
    Authenticatepost
Partners
    Callback UpdateputCallback DeletedeleteCallback ListgetCallback Echopost
Processes
    Process DetailgetProcess UpdateputProcess ListgetProcess CreatepostProcess SubmitpostProcess Canceldelete
ProcessesBorrower
    Borrower GetgetBorrower UpdateputBorrower DeletedeleteBorrower ListgetBorrower Createpost
ProcessesDocument
    Document GetgetDocument UpdateputDocument DeletedeleteDocument ListgetDocument Createpost
ProcessesESIS
    Process ESIS GetgetProcess ESIS Emailget
ProcessesMessage
    Processes Message ListgetProcesses Message Createpost
ProcessesProperty
    Property ListgetProperty Updateput
Simulations
    Simulation ListgetSimulation CreatepostSimulation DetailgetSimulation CanceldeleteSimulation UpdatepatchSimulation Validatepost
SimulationsESIS
    Simulation ESIS GetgetSimulation ESIS Emailget
SimulationsMessages
    Simulations Message ListgetSimulations Message Createpost
Taxonomy
    Broker Types GetgetBroker Sub Types GetgetBroker Classifications GetgetBroker Fee Types GetgetBroker Statuses GetgetBroker IVA Regimes GetgetBroker Retention Regimes GetgetBroker Extract Periodicity GetgetCountries GetgetCountry With Districts GetgetDistricts GetgetDistricts With Counties GetgetCounties GetgetCounty With Parishes GetgetParishes GetgetDocument Types GetgetDocument Categories GetgetProduct Purposes GetgetLoan Purposes GetgetProduct Schemes GetgetIndex Type Sub Categories GetgetIndex Types GetgetIndex Type List Mixed GetgetFixed Fixed Period GetgetMixed Fixed Period GetgetBank Charge Types GetgetProperty Typologies GetgetEntity Types GetgetIdentification Documents GetgetMarital Statuses GetgetMatrimonial Regimes GetgetResidence Types GetgetGenders GetgetProfessions GetgetEmployment Contract Types GetgetEmployment Situations GetgetEmployment Department Positions GetgetKey Borrower Relations GetgetProposal Cancel Reasons GetgetProposal Reject Reasons GetgetSimulation Reject Reasons GetgetWorkflow Phases GetgetWorkflow States Simulation GetgetWorkflow States Proposal GetgetRetrieves a paginated list of notification typesget
Schemas
Partners Portal API
Partners Portal API

Processes

Endpointhttps://api-qua-portalparceiros.bancoctt.pt

Process Detail

GET
https://api-qua-portalparceiros.bancoctt.pt
/v1/processes/{processUniqueId}

Retrieves detailed information for a specific process. This endpoint returns detailed data for a mortgage process identified by its unique identifier. It validates that the process exists and belongs to the current broker before retrieving the data. The response is localized using the language specified in the request context.

Process Detail › path Parameters

processUniqueId
string · uuid · required

Unique identifier of the mortgage process.

Process Detail › Headers

Authorization
string · required

Bearer token for authentication. Format: Bearer {token}

Process Detail › Responses

The process details were successfully retrieved.

processUniqueID
string · uuid

Unique identifier for the process

processNumber
integer · int32

Numeric process number

simulationUniqueID
string · uuid

Unique identifier of the related simulation

simulationNumber
integer · int32

Numeric simulation identifier

creationDate
string · date-time

Creation date of the process

lastActionDate
string · date-time

Last action date of the process

branchID
integer · int32

Identifier of the branch handling the process

branchDescription
string

Description of the branch

processStatusID
integer · int32

Identifier for the process status

processStatusDescription
string

Description of the process status

object
object[]
object
object[]
object[]
GET/v1/processes/{processUniqueId}
curl --request GET \
  --url https://api-qua-portalparceiros.bancoctt.pt/v1/processes/:processUniqueId \
  --header 'Authorization: <string>'
shell
Example Responses
{
  "processUniqueID": "b3d9f6a1-2c34-4e9f-9f5a-1d2e3f4a5b6c",
  "processNumber": 1234,
  "simulationUniqueID": "a1b2c3d4-5e6f-7a8b-9c0d-e1f2a3b4c5d6",
  "simulationNumber": 5678,
  "creationDate": "2026-01-13T10:00:00Z",
  "lastActionDate": "2026-01-14T15:30:00Z",
  "branchID": 10,
  "branchDescription": "Lisbon - Centro",
  "processStatusID": 2,
  "processStatusDescription": "In Review",
  "loanProcessDetail": {
    "loanAmount": 200300,
    "loanDurationMonths": 360,
    "hasCrossSelling": true,
    "productSchemeID": 1,
    "productSchemeDescription": "GENERAL",
    "loanPurposeID": 1,
    "loanPurposeDescription": "ACQUISITION",
    "productPurposeID": 2,
    "productPurposeDescription": "FIRST RESIDENCE",
    "ltvEstimated": 80,
    "ltvReal": 75,
    "baseSpread": 1.5,
    "proposedSpread": 3.6,
    "indexInterestRate": 3.6,
    "tan": 4.2,
    "taeg": 4.106,
    "discountCrossSelling": 0.2,
    "interestRateTypeID": 1,
    "interestRateTypeDescription": "FIXED",
    "commercialDiscount": 0,
    "monthlyInstallmentAmount": 910.65,
    "sustainabilityCampaign": true,
    "sustainabilityCampaignPercentage": 1.5,
    "mtic": 343758.1,
    "fixedTAN": 4.2,
    "variableTAN": 3.9,
    "indexTypeSubCategoryID": 1,
    "indexTypeSubCategoryDescription": "FIXED",
    "indexTypeMixed": "indexTypeMixed",
    "indexType": "Fixa 30 anos",
    "fixedBaseInterestRate": 0,
    "fixedMonthlyInstallmentAmount": 910.65,
    "fixedSpread": 0.5,
    "fixedPeriod": "360",
    "fixedProposedSpread": 3.6,
    "loanFixedPeriodMonths": 360,
    "variableBaseInterestRate": 0,
    "variableMonthlyInstallmentAmount": 0,
    "variableSpread": 0,
    "variableProposedSpread": 0,
    "loanVariablePeriodMonths": 0,
    "spread": 4.3,
    "baseInterestRate": 0
  },
  "borrowersProcessList": [
    {
      "borrowerUniqueID": "b3d9f6a1-2c34-4e9f-9f5a-1d2e3f4a5b6c",
      "borrowerTypeID": 1,
      "borrowerTypeDescription": "KeyBorrower",
      "keyBorrowerRelationID": 1,
      "keyBorrowerRelationDescription": "Spouse"
    }
  ],
  "propertyProcessDetail": {
    "propertyUniqueID": "b3d9f6a1-2c34-4e9f-9f5a-1d2e3f4a5b6c",
    "typologyID": 1,
    "typologyDescription": "Flat",
    "grossBuiltArea": 120.5,
    "yearBuilt": 1998,
    "completedDate": "2000-06-15",
    "acquisitionDate": "2020-09-01",
    "acquisitionAmount": 150000,
    "acquisitionDeedAmount": 148500,
    "evaluationEstimatedAmount": 160000,
    "evaluationAmount": 155000,
    "districtID": 1,
    "districtDescription": "Aveiro",
    "countyID": 1,
    "countyDescription": "ANADIA",
    "parishID": 4186,
    "parishDescription": "AVELAS DE CAMINHO",
    "address": "Rua Exemplo 123",
    "doorNumber": "A",
    "floor": "2",
    "zipCode": "1000-001",
    "zipCodeLocal": "Lisbon"
  },
  "documentsProcessList": [
    {
      "documentUniqueID": "b3d9f6a1-2c34-4e9f-9f5a-1d2e3f4a5b6c",
      "title": "Form DL 44",
      "fileName": "form.pdf",
      "statusID": 2,
      "statusDescription": "Active",
      "typeID": 924,
      "typeDescription": "Formulário DL 44 CH Jovem",
      "categoryID": 1,
      "categoryDescription": "Other",
      "observations": "Scanned copy, front and back included",
      "isMandatory": true
    }
  ],
  "notesProcessList": [
    {
      "comment": "Client called to update simulation status",
      "date": "2026-01-13T10:00:00Z",
      "userName": "jdoe"
    }
  ]
}
json
application/json

Process Update

PUT
https://api-qua-portalparceiros.bancoctt.pt
/v1/processes/{processUniqueId}

Updates an existing process in creation state. This endpoint updates process data while the process is in the "In Creation" state. The request payload is mapped and validated against the specified process and broker context before changes are persisted.

Process Update › path Parameters

processUniqueId
string · uuid · required

Unique identifier of the mortgage process.

Process Update › Headers

Authorization
string · required

Bearer token for authentication. Format: Bearer {token}

Process Update › Request Body

loanAmount
number · double

Requested loan amount (optional)

loanDurationMonths
integer · int32

Duration of the loan in months (optional)

productSchemeId
integer · int32

Identifier of the selected product scheme (optional)

loanPurposeId
integer · int32

Identifier of the loan purpose (optional)

productPurposeId
integer · int32

Identifier of the product purpose (optional)

hasCrossSelling
boolean

Indicates whether cross-selling options are selected (optional)

branchId
integer · int32

Identifier of the branch handling the process (optional)

Process Update › Responses

The process was successfully updated.

object
PUT/v1/processes/{processUniqueId}
curl --request PUT \
  --url https://api-qua-portalparceiros.bancoctt.pt/v1/processes/:processUniqueId \
  --header 'Authorization: <string>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "loanAmount": 200300,
  "loanDurationMonths": 360,
  "productSchemeId": 1,
  "loanPurposeId": 1,
  "productPurposeId": 2,
  "hasCrossSelling": true,
  "branchId": 213
}
'
shell
Example Request Body
{
  "loanAmount": 200300,
  "loanDurationMonths": 360,
  "productSchemeId": 1,
  "loanPurposeId": 1,
  "productPurposeId": 2,
  "hasCrossSelling": true,
  "branchId": 213
}
json
Example Responses
{
  "operationStatus": {
    "operationStatusCode": "020101",
    "operationStatusMessage": "Process Updated successfully"
  }
}
json
application/json

Process List

GET
https://api-qua-portalparceiros.bancoctt.pt
/v1/processes

Retrieves a filtered list of processes. This endpoint returns a paginated and optionally filtered list of mortgage processes for the current broker. Filters may include text search, credit decision presence, contract date range, process status, and pagination controls. Results are localized using the request language context.

Process List › query Parameters

filterByText
string
filterHasCreditDecisionId
integer · int32
filterContractDateStart
string · date-time
filterContractDateTo
string · date-time
filterProcessStatusId
integer · int32
lineCount
integer · int32
previousRecord
string
nextRecord
string

Process List › Headers

Authorization
string · required

Bearer token for authentication. Format: Bearer {token}

Process List › Responses

The list of processes was successfully retrieved.

totalRecords
integer · int32

Total number of process records matching the query

hasMoreResults
boolean

Indicates whether more results are available beyond the current page

object[]
GET/v1/processes
curl --request GET \
  --url https://api-qua-portalparceiros.bancoctt.pt/v1/processes \
  --header 'Authorization: <string>'
shell
Example Responses
{
  "totalRecords": 100,
  "hasMoreResults": true,
  "listProcessDetail": [
    {
      "processUniqueId": "b3d9f6a1-2c34-4e9f-9f5a-1d2e3f4a5b6c",
      "processNumber": "1234",
      "keyBorrowerName": "John Doe",
      "keyBorrowerTaxId": "123456789",
      "loanAmount": 200300,
      "lastActionDate": "2026-01-13T10:00:00Z",
      "processStatusId": "9",
      "processStatusDescription": "Awaits Documents",
      "hasCreditDecision": true,
      "branchId": "213",
      "branchDescription": "LOJA VIRTUAL CC",
      "contractDate": "2026-02-01T09:00:00Z",
      "scheduledContractDate": "2026-02-15T09:00:00Z",
      "propertyAmount": 160000,
      "simulationUniqueId": "a1b2c3d4-5e6f-7a8b-9c0d-e1f2a3b4c5d6",
      "simulationNumber": "12345",
      "hasInsurance": true,
      "ltvEstimated": 80,
      "ltvReal": 75
    }
  ]
}
json
application/json

Process Create

POST
https://api-qua-portalparceiros.bancoctt.pt
/v1/processes

Creates a new process from an accepted simulation. This endpoint creates a new mortgage process in the "In Acceptance" state based on the provided simulation data. The request payload is validated against the broker context before the process is created and associated with the current user.

Process Create › Headers

Authorization
string · required

Bearer token for authentication. Format: Bearer {token}

Process Create › Request Body

simulationUniqueId
string · uuid · required

Unique identifier of the simulation to create a process for

keyBorrowerEmail
string · minLength: 1 · required

Email address of the primary (key) borrower

keyBorrowerName
string · minLength: 1 · required

Full name of the primary (key) borrower

keyBorrowerIdentificationDocTypeId
integer · int32 · required

Identification document type identifier for the primary borrower

keyBorrowerIdentificationDocNumber
string · minLength: 1 · required

Identification document number for the primary borrower

keyBorrowerResidence
string

Primary borrower's residence/address (optional)

keyBorrowerIdentificationDocExpirationDate
string · date-time

Identification document expiration date for the primary borrower (optional)

borrowerEmail
string

Email of the secondary borrower (optional)

borrowerName
string

Full name of the secondary borrower (optional)

borrowerResidence
string

Residence/address of the secondary borrower (optional)

borrowerIdentificationDocTypeId
integer · int32

Identification document type identifier for the secondary borrower (optional)

borrowerIdentificationDocNumber
string

Identification document number for the secondary borrower (optional)

borrowerIdentificationDocExpirationDate
string · date-time

Identification document expiration date for the secondary borrower (optional)

Process Create › Responses

The process was successfully created.

object
object
POST/v1/processes
curl --request POST \
  --url https://api-qua-portalparceiros.bancoctt.pt/v1/processes \
  --header 'Authorization: <string>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "simulationUniqueId": "a1b2c3d4-5e6f-7a8b-9c0d-e1f2a3b4c5d6",
  "keyBorrowerEmail": "[email protected]",
  "keyBorrowerName": "John Doe",
  "keyBorrowerResidence": "Rua Exemplo 123",
  "keyBorrowerIdentificationDocTypeId": 1,
  "keyBorrowerIdentificationDocNumber": "AB123456",
  "keyBorrowerIdentificationDocExpirationDate": "2028-12-31",
  "borrowerEmail": "[email protected]",
  "borrowerName": "Jane Doe",
  "borrowerResidence": "Rua Exemplo 45",
  "borrowerIdentificationDocTypeId": 1,
  "borrowerIdentificationDocNumber": "CD789012",
  "borrowerIdentificationDocExpirationDate": "2029-05-31"
}
'
shell
Example Request Body
{
  "simulationUniqueId": "a1b2c3d4-5e6f-7a8b-9c0d-e1f2a3b4c5d6",
  "keyBorrowerEmail": "[email protected]",
  "keyBorrowerName": "John Doe",
  "keyBorrowerResidence": "Rua Exemplo 123",
  "keyBorrowerIdentificationDocTypeId": 1,
  "keyBorrowerIdentificationDocNumber": "AB123456",
  "keyBorrowerIdentificationDocExpirationDate": "2028-12-31",
  "borrowerEmail": "[email protected]",
  "borrowerName": "Jane Doe",
  "borrowerResidence": "Rua Exemplo 45",
  "borrowerIdentificationDocTypeId": 1,
  "borrowerIdentificationDocNumber": "CD789012",
  "borrowerIdentificationDocExpirationDate": "2029-05-31"
}
json
Example Responses
{
  "operationStatus": {
    "operationStatusCode": "020101",
    "operationStatusMessage": "Process Updated successfully"
  },
  "additionalData": {
    "processUniqueID": "b3d9f6a1-2c34-4e9f-9f5a-1d2e3f4a5b6c",
    "processNumber": 1234
  }
}
json
application/json

Process Submit

POST
https://api-qua-portalparceiros.bancoctt.pt
/v1/processes/{processUniqueId}/submit

Submits a process for further processing. This endpoint submits a mortgage process currently in the "In Creation" state. Validation ensures the process has no pending items and is eligible for submission before the state transition is executed.

Process Submit › path Parameters

processUniqueId
string · uuid · required

Unique identifier of the mortgage process.

Process Submit › Headers

Authorization
string · required

Bearer token for authentication. Format: Bearer {token}

Process Submit › Responses

The process was successfully submitted.

object
POST/v1/processes/{processUniqueId}/submit
curl --request POST \
  --url https://api-qua-portalparceiros.bancoctt.pt/v1/processes/:processUniqueId/submit \
  --header 'Authorization: <string>'
shell
Example Responses
{
  "operationStatus": {
    "operationStatusCode": "020101",
    "operationStatusMessage": "Process Updated successfully"
  }
}
json
application/json

Process Cancel

DELETE
https://api-qua-portalparceiros.bancoctt.pt
/v1/processes/{processUniqueId}/cancel

Cancels a process in creation state. This endpoint cancels a mortgage process that is still in the "In Creation" state. The cancellation request is validated against the broker context and recorded using the current user for auditing purposes.

Process Cancel › path Parameters

processUniqueId
string · uuid · required

Unique identifier of the mortgage process.

Process Cancel › Headers

Authorization
string · required

Bearer token for authentication. Format: Bearer {token}

Process Cancel › Request Body

processCancelReasonID
integer · int32 · required

Cancel reason id

Process Cancel › Responses

The process was successfully canceled.

object
DELETE/v1/processes/{processUniqueId}/cancel
curl --request DELETE \
  --url https://api-qua-portalparceiros.bancoctt.pt/v1/processes/:processUniqueId/cancel \
  --header 'Authorization: <string>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "processCancelReasonID": 1
}
'
shell
Example Request Body
{
  "processCancelReasonID": 1
}
json
Example Responses
{
  "operationStatus": {
    "operationStatusCode": "020101",
    "operationStatusMessage": "Process Updated successfully"
  }
}
json
application/json

PartnersProcessesBorrower