---
title: "POST /loans"
method: POST
path: "/loans"
tags: ["Loan"]
---

# POST /loans

`POST /loans`

## Request a new loan.

If you haven't visited the guide: [how to make your first loan?](https://developers.getdefacto.com/reference/make-your-first-loan) we recommend you to visit it first.

**Key Parameters**:
As the loan request is a complex operation, it has many parameters. The most important ones are:
- borrower
- amount
- to_pay_at
- to_repay_at
- salt_id: ⚠️ In order to avoid accidental duplication in requested loans we recommend you to set the <code>salt_id</code> parameter to a unique value for each request.

**Timeout after**: 30 seconds (status code will be 504 in such a case)

For loan related to invoices, at the moment, we don't support multiple-invoices financing.
- You can either request a loan for an existing invoice, in which case you should set <code>invoice_ids</code>.
- Or you can create the invoice and request a loan with a single call to this API.
- If you pass an invoice in <code>invoices</code>, the base64-encoded value of the PDF of the invoice is required under the <code>document</code> property. You can for example use <a href='https://base64.guru/converter/encode/pdf'>base64guru</a>.


### Behavior
When you send this API request, our system will:
1. Create a loan (you will get its id in the response)
2. Start evaluating your loan request. Here you should choose between 2 behaviors:
a. (default) Getting the decision asynchronously. The status of the returned loan will always be PENDING_VALIDATION. Webhooks will tell you if it goes approved or declined. In can happen from a few seconds after the request up to a few days after it.
b. Getting the decision synchronously. This is recommended if this endpoint is called directly from a frontend. To activate this option, set <code>"wait_for_validation": true</code>. In such a case, the returned loan status will be:
i. if the loan is automatically accepted by Defacto -> the status of the loan will be TO_VALIDATE if you set <code>"auto_validate": false</code>, or one of: VALIDATED, SCHEDULED, INITIATED, TO_REPAY. Fore more information on this, see section "Why the status of the loan in the response vary?" below.
ii. if the loan is automatically declined by Defacto -> the status of the loan will be DECLINED and the <code>denial_reason</code> will be set.
iii. if the loan validation takes longer than 20s (max response time is 2 business days) -> the status of the loan will be PENDING_VALIDATION. It is therefore very important to think about how to communicate with the end-user. While its not an issue for validated loans, it can get frustrating for declined loans. Users must be alerted of loans that gets declined few hours after their request.
3. If the loan is accepted by Defacto, it will then move forward and its status will be updated regularly. Subscribe to webhooks to get live notifications of this.

**Why the status of the loan in the response vary?**
The status vary because our system is asynchronous and the steps moving the loan forward may be executed immediately or not depending on the current load on our system.

**What should I do if the status of the loan is __TO_VALIDATE__?**
TO_VALIDATE means that Defacto accepted the loan as is.
The next step is to get the user consent for this loan offer.
When obtained, call [<code>POST /loan/{loan_id}/validate</code>](https://developers.getdefacto.com/reference/post_loan-loan-id-validate).

Most of the time the user does not want to do this manual consent. To avoid requiring this, you can set <code>"auto_validate": true</code> in your request. When setting this option, please ensure that its very explicit for the user that the loan may be automatically accepted and paid so that they won't be able to cancel it. Users can cancel the loan only before Defacto sends the money to the beneficiary, which happens 24 to 48 hours before the <code>"to_pay_at"</code> date.

## Request body

- APIPostLoan
  - `amount` integer, required — Loan amount in cents. Maximum: 200,000 €.
  - `attachments` APILoanAttachmentToCreate[] — Attach context and/or files to your loan request. Depending on the type of loan you are requesting some extra context may be required. Check with the Defacto team if you are not sure of which to share. You can provide additional structured data with the attachment you attach. The field to fulfill is the one corresponding to the specified attachment_type. For example if you use attachment_type = credit_card_expenses you should fulfill the attachment.credit_card_expenses object.
    - `additional_document_data` object, nullable — Any additional structured data about the provided document
    - `credit_card_expenses` APICreditCardExpensesInformation
      - `counterparty` APICounterpartyCreation, required
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `expenses` APICreditCardExpenseDetail[], required — List of individual credit card expense details.
        - `amount` integer, required — Amount of the credit card expense in cents.
        - `card_identification` object, nullable — Identification details of the credit card used for the expense (e.g. masked card number, card reference). Format might be {"last_four_digits": "1234", "card_reference": "Corporate Card"}
        - `date_time` string, date-time, required — Date and time when the credit card expense was incurred.
        - `merchant` object, nullable — Information identifying the place where the credit card expense was made.
        - `user` object, nullable — Information about the user who made the credit card expense. Format might be {"name": "John Doe", "email": "john.doe@example.com"}
    - `description` string, nullable — A human readable description of the document
    - `document_type` 'credit_card_expenses' | 'invoice' | 'pro_forma' | 'public_procurement_ownership_act' | 'public_procurement_single_copy' | 'sale_purchase_agreement' | 'time_sheet', required
    - `invoice` APIInvoiceAttachmentInformation
      - `buyer` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `currency` 'EUR' | 'GBP', nullable — Currency of the invoice. Use ISO 4217 currency code.
      - `document_binary_base64` string, required — Base64 encoded content of the document
      - `document_name` string, required — Name of the document with the file extension
      - `due_at` string, date-time, nullable
      - `invoice_number` string, nullable — Invoice number as displayed on the invoice
      - `issued_at` string, date-time, nullable
      - `net_amount` integer, nullable — Amount before tax, in cents
      - `seller` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `tax_amount` integer, nullable — Amount of tax, in cents
      - `to_account` APIAccountCreation
        - `account_holder` APIBusinessIdentifier
          - `identifier` string, required — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
          - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number', required — Type of legal business identifier of the business, such as the SIRET in France.
        - `account_number` string, required — The account identifier. Only IBANs are supported at the moment.
        - `account_number_type` 'account_number' | 'iban' | 'internal_id' — The type of account number (e.g. IBAN).
        - `bank_identifier` string, nullable — The identifier of the bank.
        - `bank_identifier_type` 'bic' | 'name' | 'routing_number' | 'undefined' — The type of bank identifier (e.g. BIC).
      - `to_pay_amount` integer, nullable — Remaining amount due by buyer to seller, in cents. Set at 0 for fully paid invoices.
      - `total_amount` integer, nullable — Sum of net amount and tax amount, in cents
    - `pro_forma` APIInvoiceAttachmentInformation
      - `buyer` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `currency` 'EUR' | 'GBP', nullable — Currency of the invoice. Use ISO 4217 currency code.
      - `document_binary_base64` string, required — Base64 encoded content of the document
      - `document_name` string, required — Name of the document with the file extension
      - `due_at` string, date-time, nullable
      - `invoice_number` string, nullable — Invoice number as displayed on the invoice
      - `issued_at` string, date-time, nullable
      - `net_amount` integer, nullable — Amount before tax, in cents
      - `seller` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `tax_amount` integer, nullable — Amount of tax, in cents
      - `to_account` APIAccountCreation
        - `account_holder` APIBusinessIdentifier
          - `identifier` string, required — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
          - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number', required — Type of legal business identifier of the business, such as the SIRET in France.
        - `account_number` string, required — The account identifier. Only IBANs are supported at the moment.
        - `account_number_type` 'account_number' | 'iban' | 'internal_id' — The type of account number (e.g. IBAN).
        - `bank_identifier` string, nullable — The identifier of the bank.
        - `bank_identifier_type` 'bic' | 'name' | 'routing_number' | 'undefined' — The type of bank identifier (e.g. BIC).
      - `to_pay_amount` integer, nullable — Remaining amount due by buyer to seller, in cents. Set at 0 for fully paid invoices.
      - `total_amount` integer, nullable — Sum of net amount and tax amount, in cents
    - `public_procurement_ownership_act` APIPublicProcurementOwnershipActInformation
      - `act_date` string, date-time, required — Date the public procurement ownership act was emitted.
      - `contract_identifier` string, required — Identifier of the public procurement ownership act contract
      - `document_binary_base64` string, nullable — Base64 encoded content of the document
      - `document_name` string, nullable — Name of the document with the file extension
    - `public_procurement_single_copy` APIPublicProcurementSingleCopyInformation
      - `contract_identifier` string, required — Identifier of the public procurement single copy contract
      - `contract_publication_date` string, date-time, nullable — Publication date of the public procurement single copy contract
      - `contract_undertaking_date` string, date-time, required — Date the public procurement contract was undertaken.
      - `document_binary_base64` string, nullable — Base64 encoded content of the document
      - `document_name` string, nullable — Name of the document with the file extension
    - `sale_purchase_agreement` APISalePurchaseAgreementAttachmentInformation
      - `asset_description` string, nullable — A human readable description of the asset sold
      - `buyer` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `document_binary_base64` string, required — Base64 encoded content of the document
      - `document_name` string, required — Name of the document with the file extension
      - `sale_date` string, date-time, nullable — When the final sale is to occur
      - `seller` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `third_party` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `transaction_price` AmountWithCurrency
        - `amount` integer, required
        - `currency` 'EUR' | 'GBP', required
    - `time_sheet` APITimeSheetInformation
      - `document_binary_base64` string, required — Base64 encoded content of the document
      - `document_name` string, required — Name of the document with the file extension
  - `auto_validate` boolean — Automatically validate the loan
  - `borrower` BusinessIdentifier
    - `identifier` string, required — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
    - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
  - `borrower_financial_product_id` string, uuid, nullable — Specify your borrower financial product to use. This field is required only if you propose multiple financial products (which is rare)
  - `currency` 'EUR' | 'GBP' — ISO 4217 currency code.
  - `documents` APILoanDocumentToCreate[] — Attach documents to your loan request. Depending on the type of loan you are requesting some documents may be required. Check with the Defacto team if you are not sure of which documents to share. You can provide additional structured data with the document you attach. The field to fulfill is the one corresponding to the specified document_type. For example if you use document_type = invoice you should fulfill the document.invoice object.
    - `additional_document_data` object, nullable — Any additional structured data about the provided document
    - `description` string, nullable — A human readable description of the document
    - `document_binary_base64` string, required
    - `document_name` string, required — Name of the document with the file extension
    - `document_type` 'credit_card_expenses' | 'invoice' | 'pro_forma' | 'public_procurement_ownership_act' | 'public_procurement_single_copy' | 'sale_purchase_agreement' | 'time_sheet', required
    - `invoice` APIInvoiceInformationAllOptional
      - `buyer` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `currency` 'EUR' | 'GBP', nullable — Currency of the invoice. Use ISO 4217 currency code.
      - `due_at` string, date-time, nullable
      - `invoice_number` string, nullable — Invoice number as displayed on the invoice
      - `issued_at` string, date-time, nullable
      - `net_amount` integer, nullable — Amount before tax, in cents
      - `seller` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `tax_amount` integer, nullable — Amount of tax, in cents
      - `to_account` APIAccountCreation
        - `account_holder` APIBusinessIdentifier
          - `identifier` string, required — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
          - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number', required — Type of legal business identifier of the business, such as the SIRET in France.
        - `account_number` string, required — The account identifier. Only IBANs are supported at the moment.
        - `account_number_type` 'account_number' | 'iban' | 'internal_id' — The type of account number (e.g. IBAN).
        - `bank_identifier` string, nullable — The identifier of the bank.
        - `bank_identifier_type` 'bic' | 'name' | 'routing_number' | 'undefined' — The type of bank identifier (e.g. BIC).
      - `to_pay_amount` integer, nullable — Remaining amount due by buyer to seller, in cents. Set at 0 for fully paid invoices.
      - `total_amount` integer, nullable — Sum of net amount and tax amount, in cents
    - `pro_forma` APIInvoiceInformationAllOptional
      - `buyer` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `currency` 'EUR' | 'GBP', nullable — Currency of the invoice. Use ISO 4217 currency code.
      - `due_at` string, date-time, nullable
      - `invoice_number` string, nullable — Invoice number as displayed on the invoice
      - `issued_at` string, date-time, nullable
      - `net_amount` integer, nullable — Amount before tax, in cents
      - `seller` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `tax_amount` integer, nullable — Amount of tax, in cents
      - `to_account` APIAccountCreation
        - `account_holder` APIBusinessIdentifier
          - `identifier` string, required — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
          - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number', required — Type of legal business identifier of the business, such as the SIRET in France.
        - `account_number` string, required — The account identifier. Only IBANs are supported at the moment.
        - `account_number_type` 'account_number' | 'iban' | 'internal_id' — The type of account number (e.g. IBAN).
        - `bank_identifier` string, nullable — The identifier of the bank.
        - `bank_identifier_type` 'bic' | 'name' | 'routing_number' | 'undefined' — The type of bank identifier (e.g. BIC).
      - `to_pay_amount` integer, nullable — Remaining amount due by buyer to seller, in cents. Set at 0 for fully paid invoices.
      - `total_amount` integer, nullable — Sum of net amount and tax amount, in cents
    - `public_procurement_single_copy` APIPublicProcurementSingleCopyInformation
      - `contract_identifier` string, required — Identifier of the public procurement single copy contract
      - `contract_publication_date` string, date-time, nullable — Publication date of the public procurement single copy contract
      - `contract_undertaking_date` string, date-time, required — Date the public procurement contract was undertaken.
      - `document_binary_base64` string, nullable — Base64 encoded content of the document
      - `document_name` string, nullable — Name of the document with the file extension
    - `sale_purchase_agreement` APISalePurchaseAgreementInformation
      - `asset_description` string, nullable — A human readable description of the asset sold
      - `buyer` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `sale_date` string, date-time, nullable — When the final sale is to occur
      - `seller` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `third_party` APICounterpartyCreation
        - `address` Address
          - `address_line_1` string, nullable
          - `address_line_2` string, nullable
          - `city` string, nullable
          - `country` string, nullable
          - `postal_code` string, nullable
          - `state` string, nullable
        - `contact` APICounterpartyContact
          - `email` string, email, required
          - `first_name` string, required
          - `last_name` string, required
          - `phone_number` string, required
        - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
        - `name` string, nullable — Legal name of the business.
        - `vat_number` string, nullable — VatNumber
      - `transaction_price` AmountWithCurrency
        - `amount` integer, required
        - `currency` 'EUR' | 'GBP', required
  - `installment_plan_type` 'INSTALLMENTS' | 'IN_FINE' — Type of installment plan to create for the loan. Only 'INSTALLMENTS' or 'IN_FINE' possible for now (see 'installments' to specify a custom installment plan).
  - `installments` LoanInstallment[], nullable — List of installments to create for the loan. Only used when installment_plan_type is set to 'INSTALLMENTS'. installments must respect that 1) the sum of installments equals the amount of the loan and 2) the last installment date is equal to 'to_repay_at'.
    - `amount` integer, required
    - `date` string, date-time, required
  - `invoice_ids` string[] — Invoices already uploaded that the loan should finance
  - `invoices` APIRequiredInvoiceCreation[] — Invoices to create that the loan finances
    - `address` Address
      - `address_line_1` string, nullable
      - `address_line_2` string, nullable
      - `city` string, nullable
      - `country` string, nullable
      - `postal_code` string, nullable
      - `state` string, nullable
    - `buyer` CounterpartyCreation, required
      - `address` Address
        - `address_line_1` string, nullable
        - `address_line_2` string, nullable
        - `city` string, nullable
        - `country` string, nullable
        - `postal_code` string, nullable
        - `state` string, nullable
      - `contact` APICounterpartyContact
        - `email` string, email, required
        - `first_name` string, required
        - `last_name` string, required
        - `phone_number` string, required
      - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
      - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
      - `name` string, nullable — Legal name of the business.
      - `vat_number` string, nullable — VatNumber
    - `currency` 'EUR' | 'GBP', nullable — Currency of the invoice. Use ISO 4217 currency code.
    - `document` string, required — PDF binary (format base64 string)
    - `due_at` string, date-time, required
    - `invoice_number` string, required — Invoice number as displayed on the invoice
    - `invoice_type` 'DEFACTO' | 'USER', nullable
    - `issued_at` string, date-time, required
    - `metadata` object, nullable — This object is yours, it enables you to add custom data.
    - `net_amount` integer, nullable — Amount before tax, in cents
    - `seller` CounterpartyCreation, required
      - `address` Address
        - `address_line_1` string, nullable
        - `address_line_2` string, nullable
        - `city` string, nullable
        - `country` string, nullable
        - `postal_code` string, nullable
        - `state` string, nullable
      - `contact` APICounterpartyContact
        - `email` string, email, required
        - `first_name` string, required
        - `last_name` string, required
        - `phone_number` string, required
      - `identifier` string, nullable — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
      - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number' | 'null', nullable — Type of legal business identifier of the business, such as the SIRET in France.
      - `name` string, nullable — Legal name of the business.
      - `vat_number` string, nullable — VatNumber
    - `tax_amount` integer, nullable — Amount of tax, in cents
    - `to_account` APIAccountCreation
      - `account_holder` APIBusinessIdentifier
        - `identifier` string, required — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
        - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number', required — Type of legal business identifier of the business, such as the SIRET in France.
      - `account_number` string, required — The account identifier. Only IBANs are supported at the moment.
      - `account_number_type` 'account_number' | 'iban' | 'internal_id' — The type of account number (e.g. IBAN).
      - `bank_identifier` string, nullable — The identifier of the bank.
      - `bank_identifier_type` 'bic' | 'name' | 'routing_number' | 'undefined' — The type of bank identifier (e.g. BIC).
    - `to_pay_amount` integer, nullable — Remaining amount due by buyer to seller, in cents. Set at 0 for fully paid invoices.
    - `total_amount` integer, required — Sum of net amount and tax amount, in cents
  - `loan_to` APIAccountCreation, required
    - `account_holder` APIBusinessIdentifier
      - `identifier` string, required — Legal identifier of the business, such as its SIRET or SIREN in France. Must not contain spaces.
      - `identifier_type` 'belgium_registration_number' | 'bsn' | 'cif' | 'hr_nummer' | 'kvk' | 'name' | 'nif' | 'siren' | 'siret' | 'steuernummer' | 'vat_number', required — Type of legal business identifier of the business, such as the SIRET in France.
    - `account_number` string, required — The account identifier. Only IBANs are supported at the moment.
    - `account_number_type` 'account_number' | 'iban' | 'internal_id' — The type of account number (e.g. IBAN).
    - `bank_identifier` string, nullable — The identifier of the bank.
    - `bank_identifier_type` 'bic' | 'name' | 'routing_number' | 'undefined' — The type of bank identifier (e.g. BIC).
  - `loan_to_references` string[] — References in the transfer of the loan payment, on the account receiving the money
  - `loan_type` 'CREDIT_CARD_FINANCING' | 'FUNDING_OBLIGATION_CONSOLIDATION' | 'INVENTORY_FINANCING' | 'INVOICE_BASED_FINANCING' | 'WALLET_FINANCING' — [DEPRECATED] if you are using this field, please switch to `borrower_financial_product_id`.Type of loan to request. For example, INVOICE_BASED_FINANCING to finance invoices. Depending on the value of this field, another field with a name matching this value may be to complete. For example, for INVOICE_BASED_FINANCING either invoice_ids or invoices should be set. For WALLET_FINANCING or CREDIT_CARD_FINANCING, no specific field needs to be set. For INVENTORY_FINANCING, at least one document must be provided in the documents field.
  - `metadata` object, nullable — This object is yours, it enables you to add custom data.
  - `notification_emails` string[]
  - `purpose` 'CONTRACTUAL_LOAN_REPAYMENT' | 'CONTRACTUAL_RECOLLECTION' | 'PREFERED_LOAN_REPAYMENT' | 'PREFERED_RECOLLECTION_PLAN' | 'null', nullable
  - `repayment_from_references` string[] — References in the transfer of the loan repayment, on the account sending the money
  - `salt_id` string, nullable — Unique key to ensure idempotency of the creation request.
  - `to_pay_at` string, date-time, required — Loan disbursement estimated date
  - `to_repay_at` string, date-time, required — Loan reimbursement estimated date
  - `wait_for_validation` boolean — Configure the behaviour of the endpoint. When false, the returned loan will always be PENDING_VALIDATION or DECLINED, never accepted right away. When true (recommended if called from a frontend), the API will wait up to 30 seconds to get the final decision for the financing, so the returned loan may be approved right away.

## Response `201`

Created

---

[API](https://skmtc.net/getdefacto/apis/api-reference.md) · [All operations](https://skmtc.net/getdefacto/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getdefacto/api-reference/revisions/0a9c1f8784f2/schema)
