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:
| Name | Description | Required |
|---|---|---|
Content-Type | Specifies the request body format. Two supported values are application/jsonl and application/json-seq. | Yes |
Accept | Specifies 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:
| Name | Description | Required |
|---|---|---|
migration-reference-id | The 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:
- Check the migration status and progress. Refer to Monitor migration and manage jobs.
- Proceed to Step 3. Validate data in the staging area to verify your staged data.