The PIS APIs provide a Belfius or Banx customer the possibility to initiate a payment or create a standing order using their account via a TPP application. The PIS APIs also provide the possibility to a Belfius client to initiate a bulk payment.
As soon as the payment initiation or the standing order contract has been received by Belfius/Banx and has been signed by the PSU, the TPP receives an authorization code if an access token wasn’t provided at the start of the process. The TPP can then use this authorization code to get an access token and a refresh token which can then be used for future initiations and cancellations.
The access token can also be used to retrieve the details (amount, accounts, …) of a payment initiation or standing order contract.
Finally, the TPP can retrieve the status of the payment initiation, the payment bulk or the standing order contract. To perform this call, a valid access token is not necessary.
A Belfius customer can initiate the following payment products in the TPP application:
A Banx customer can initiate the following payment products in the TPP application:
The below table aims to give a quick overview of the body request parameters regarding the payment product:
sepa-credit-transfers | Instant-sepa-credit-transfers | cross-border-credit-transfers | |
debtor_account – iban | optional | optional | optional |
debtor_account – currency | EUR as default | EUR as default | please see further |
charge_bearer | n/a | n/a | required |
creditor_account – iban | required | required | conditional |
creditor_account – bban | n/a | n/a | conditional |
creditor_account – bic | optional | optional | conditional |
creditor_account – bankNationalID | n/a | n/a | conditional |
creditor_account - currency | n/a | n/a | conditional |
creditor_name | required | required | required |
creditor_address | n/a | n/a | conditional |
endtoend_identification | required | required | required |
instructed_amount – amount | required | required | required |
instructed_amount – currency | EUR as default | EUR as default | required |
instruction_priority | optional | n/a | optional |
purpose_code | n/a | n/a | please see further |
remittance_information_structured | optional | optional | n/a |
remittance_information_unstructured | optional | optional | optional |
requested_execution_date | optional | n/a | optional |
Please also note that Belfius and Banx allow their clients to choose some of its security features: daily/weekly limits or accepted destination countries for payments are among them. If the payment initiation is not accepted for one of these reasons, Belfius/Banx will return a customer profile error.
SEPA credit transfer
This payment product should be used to initiate a SEPA credit transfer.
I.e. : a payment in euro where both accounts (debtor and creditor) are in euro and within the SEPA zone.
This payment will be executed by Belfius/Banx following the SEPA rules.
Please also note the following information:
Instant SEPA credit transfer
This payment product should be used to initiate an instant SEPA credit transfer.
I.e. : a payment in euro where both accounts (debtor and creditor) are in euro and within the SEPA zone that should be executed immediately (within 10 seconds). This payment can be executed 24/7/365.
Instant payments can be done throughout all of the SEPA zone.
This payment will be executed by Belfius/Banx following the SEPA rules.
Please also note the following information:
Cross border credit transfer
This payment product should be used to initiate a non-SEPA credit transfer.
I.e : a payment in euro outside the SEPA zone or a payment in currency within or outside the SEPA zone.
Please find in this document a summary of the accepted destination countries, the accepted currencies and the accepted purpose codes for each country/currency.
Please also note the following information:
A Belfius customer can create a fixed or a variable standing order. A Banx customer can create only a fixed standing order.
The only payment product accepted for standing order creation is sepa-credit-transfer.
Fixed standing order
With this standing order type, a fixed amount will be transferred at a specific frequency to the beneficiary account.
Please note the following information:
Variable standing order
With this standing order type, a variable amount will be transferred at a specific frequency to the beneficiary account. The amount will be calculated based on the two following parameters
If neither minimal nor maximal amount is filled in, the entire amount present on the account will be transferred.
Variable standing orders can only be used to transfer money to Belfius saving accounts, no other.
Please note the following information:
Only Belfius business customers can initiate file payments. It is possible to initiate pain.001 and csv payments. Note that csv files should be saved as csv UTF-8.
Please note that a payment file initiated through the POST /bulk-payments API can contain several payment bulks.
Please also note that validation of a file payment can take up to several minutes. The POST /bulk-payments API will therefore not return an SCA URL to sign the file. This URL will be returned by the GET /status API when the validation is finished.
The following document will help you create the requested signature.
When being redirected to the Belfius/Banx environment, the PSU will be able to authenticate using one of the authentication methods proposed by Belfius or Banx.
Belfius/Banx allows the same authentication methods as in its channels. Note that depending on the transaction risk some SCA methods might not be allowed.
Also note that biometrics availability is depending on the configuration by the PSU within Belfius/Banx. If the PSU has activated biometrics for its Belfius/Banx channels, these SCA methods will be available through the redirection flows.
Belfius allows multi-signature for payments and bulk payments. If the payment should be signed by several PSU’s, the first signature should always occur via the redirection flow (using the redirect SCA URL returned by Belfius). The additional signatures should occur via the PSU’s Belfius channel.
Note that for security reasons, the SCA URL that is provided by Belfius is only valid for a few minutes. After this, the payment request or status request in case of bulk payment initiation should be done again to retrieve a valid URL.
A Belfius or Banx customer can retrieve the status of a payment transaction initiated earlier in the TPP application or of a standing order contract created via the TPP application.
Please note that to retrieve the status, the TPP must provide the payment_ID but no access token is required in the API call.
This API can be used with an external reference (i.e. given by the TPP, the endtoend_reference) or with an internal reference (i.e. the reference given by Belfius in the API answer, the payment_id). If not specified otherwise in the request body, Belfius/Banx expects the internal reference to be used in the input.
Note that Belfius/Banx returns the following statuses:
Instant SEPA credit transfer
If an instant payment was initiated, the PSU has information on the correct execution of the payment during its redirection to the Belfius/Banx environment.
Note that instant payments cannot be in status “PDNG”.
Belfius/Banx returns the following statuses in case of standing order
Belfius returns the following statuses in case of file payment. Note that Belfius will return the global status of the file as well as the status of the different payment bulks contained in the file.
Note that when validation of a file payment is finished, the GET /status bulk API will return an SCA URL to sign the bulk.
A Belfius or Banx customer can retrieve the details of a payment transaction initiated earlier in the TPP application or of a standing order contract created via the TPP application.
Please note that to use this API, the TPP must provide a valid access token except when cancelling a file payment. This access token can be received after calling the token API using the authorization code provided by Belfius/Banx at the end of the initiation. All details on this flow can be found in the Flows section of the consent API documentation.
Belfius/Banx will return following details for a single payment initiation. For some transactions more details can be returned as available, please check documentation for all possible details.
Belfius/Banx will return following details for a standing order contract. For some transactions more details can be returned as available, please check documentation for all possible details.
A Belfius or Banx customer can cancel an uncompleted payment transaction, an uncompleted file payment or an active standing order contract initiated earlier in the TPP application.
Please note that to use this API, the TPP must provide a valid access token except when cancelling a file payment. This access token can be received after calling the token API using the authorization code provided by Belfius/Banx at the end of the initiation. All details on this flow can be found in the Flows section of the consent API documentation.
A Belfius or Banx customer can cancel an uncompleted payment transaction initiated earlier in the TPP application.
SEPA credit transfer
Payment initiation can be cancelled only if
Instant SEPA credit transfer
The only available statuses for cancellation are RCVD and PATC
Cross border credit transfer
Cross-border-credit-transfer cannot be deleted.
Standing orders in all statuses can be cancelled.
Please note that an ongoing occurrence cannot be cancelled. The standing order contract will be deleted as from the next occurrence.
File payments in the following statuses can be cancelled