Skip to main content

Load financing execution data

Overview​

Upload Financing Execution data to the staging area using a JSON stream. The API provides separate endpoints for the following data types:

Use the appropriate endpoint based on the type of data you are uploading.

Refer to the Migrate Financing Executions API for detailed schemas.

Load financing execution data to staging​

Additional repayments​

Additional repayments are payments made outside the regular repayment schedule. They are used to reduce the outstanding loan balance faster when extra funds become available. For example, if a deposit account is closed with a positive balance, that amount can be applied as an additional repayment to the loan. Refer to Additional repayments for further details.

In Akkuro Lending, they include the following types:

  • Repayments from construction deposits
  • Early repayments
  • Full repayments

To upload the additional repayments data, use the following endpoint:

Request​

PUT /financing-execution/migrations/{migration-reference-id}/staging/additional-repayments

Request headers:

NameDescriptionRequired
Content-TypeSpecifies the request body format. Two supported values are application/jsonl and application/json-seq.Yes
AcceptSpecifies the API version. It’s recommended to include an API version in this header to prevent breaking changes. See API versioning for details.No

It requires one path parameter:

NameDescriptionRequired
migration-reference-idThe migration reference ID obtained from Step 1.Yes

Provide the data you want to upload in the request body. For example:

{
"agreementReferenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"processReferenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"status": "Draft",
"effectiveDate": "2019-08-24",
"administrationFee": {
"amount": 99.95,
"currency": "string"
},
"requestReceivedDate": "2019-08-24",
"type": "repayment-from-construction-deposit",
"referenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"facilities": [
{
"targetFacilityReferenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"charge": {
"amount": {
"amount": 99.95,
"currency": "string"
},
"comparativeNominalRate": 0
},
"referenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"type": "facility-repayment-from-construction-deposit"
}
]
}

Response​

The API returns a per-record result for each record submitted in the request body. Each result corresponds to a record, identified by its referenceId, and indicates whether the record was processed successfully.

  • If a record is valid, it is staged, and the API returns the following response:

    {
      "referenceId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "isSuccessful": true,
      "errors": []
    }
  • If a record is invalid, it is not staged. The API returns an error response that describes the issue:

    {
      "referenceId": "a1b2c3d4-e5f6-1234-5678-9abcdef01234",
      "isSuccessful": false,
      "errors": [
        {
          "field": "initials",
          "message": "MISSING_REQUIRED_FIELD"
        }
      ]
    }

    You need to correct these records and re-stage them.

Debit mandates​

A debit mandate is an authorization that allows the lender to automatically collect payments from the borrower’s bank account. Refer to Debit mandates for further details.

Request​

PUT /financing-execution/migrations/{migration-reference-id}/staging/debit-mandates

Request headers and path parameters are the same as described in Additional repayments.

Provide the data you want to upload in the request body. For example:

{
"agreementReferenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"mandateType": "SEPA",
"mandateRelationType": "BTB",
"description": "string",
"issuedOn": "2019-08-24T14:15:22Z",
"creditorId": "NL97ZZZ123456780001",
"mandateReference": "02c193eb5ecf4814967492519b94cb3b",
"mandateFormFileDocumentReferenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"mandateConfirmationFileDocumentReferenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"referenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"process": {
"isClosed": true,
"closedOn": "2019-08-24T14:15:22Z",
"isSuccessful": true,
"referenceId": "35f2900d-73de-4850-9485-02c60d60dea8"
},
"debtor": {
"bankAccount": {
"ascription": "string",
"iban": "string",
"bic": "string"
},
"counterparty": {
"type": "person",
"referenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"emailAddress": "-@a(\\a)*",
"phoneNumber": {
"type": "landLine",
"isPrivate": true,
"number": "string"
},
"communicationLanguage": "nl-NL",
"address": {
"countryCode": "NL",
"administrativeAreaCode": "ES-VI",
"locality": "string",
"dependentLocality": "string",
"postalCode": "string",
"addressLine1": "string",
"addressLine2": "string",
"sortingCode": "string"
}
},
"referenceId": "35f2900d-73de-4850-9485-02c60d60dea8"
}
}

Response​

The response format is the same as described in Additional repayments.

Financial states​

The financial state represents the overall financial status of a loan agreement at a specific point in time. It includes all relevant financial data, such as the agreement’s current state and last update timestamp. Refer to Financial states for further details.

Request​

PUT /financing-execution/migrations/{migration-reference-id}/staging/financial-states

Request headers and path parameters are the same as described in Additional repayments.

Provide the financial state data in the request body. For a complete request example, see the Stage financial states endpoint in the API Schemas.

Response​

The response format is the same as described in Additional repayments.

Invoices​

An invoice represents a payment obligation for a loan agreement, including the total amount due and individual transaction line items such as principal, interest, and fees.

Request​

PUT /financing-execution/migrations/{migration-reference-id}/staging/invoices

Request headers and path parameters are the same as described in Additional repayments.

Provide the data you want to upload in the request body. For example:

{
"referenceId": "c3f4f2b3-7fed-4fed-b529-183482d775a5",
"tenantFormattedReferenceId": "INV-2026-000123",
"agreementReferenceId": "35f2900d-73de-4850-9485-02c60d60dea8",
"paymentDueDate": "2026-03-15",
"invoiceDate": "2026-02-15",
"totalInvoiceAmount": {
"amount": 1547.85,
"currency": "EUR"
},
"transactions": [
{
"referenceId": "TXN-2026-001-001",
"amount": { "amount": 1200.00, "currency": "EUR" },
"interestDate": "2026-01-01",
"description": "Monthly loan repayment - Principal"
},
{
"referenceId": "TXN-2026-001-002",
"amount": { "amount": 89.50, "currency": "EUR" },
"interestDate": "2026-01-01",
"description": "Monthly loan repayment - Interest"
},
{
"referenceId": "TXN-2026-001-003",
"amount": { "amount": 258.35, "currency": "EUR" },
"interestDate": "2026-01-15",
"description": "Administrative fee"
}
]
}

Response​

The response format is the same as described in Additional repayments.

Manage staged data​

You can retrieve staged migration data and delete specific staged records by reference ID. For more information, see Manage staged migration data.

Next steps​

Once you've loaded your data into the staging area, you can do the following: