Initiate a Buy Now Pay Later payment
Flow
The complete synchronous BNPL payment flow using the Fintecture Connect webview has been simplified into the following steps:
- Request a PIS dedicated access token
- Build a BNPL Payment Session and redirect the payer to the returned Connect URL
- Verify the payment on callback such that the payment status and order ID matches
- Listen to Webhook to intercept payments status change events as a redundant channel to the redirect callback
🚧 ImportantSignature, digest, date and x-request-id headers are optional in SANDBOX environment but mandatory when calling the PRODUCTION one.
💡 NoteStep 4 is identified as optional but as the payment method relies mostly on a redirection authentication model, it is important to use a redundant payment notification channel in case the redirection fails. Some implementations use webhooks as the main payment notification channel and the redirection simply used to display the resulting payment result.
Payment statuses
Below are detailed the payment statuses encountered in the case of a BNPL payment.
The flow linked to BNPL is divided into 2 major stages:
- In the first one, the payer confirms the order and commits to pay it later on (materialized by the
order_created
status). The order can therefore be validated by the merchant. - The second one gives an indication of the actual financing which closes with
payment_created
🚧 ImportantBe careful at that stage since payer can callback his payment using his bank.
This woud lead to a claim being opened
Take a look at the below table to know more about the statuses.
Status | Description | Phase |
---|---|---|
provider_required | The payment session has been prepared for the payer | Intermediate |
sca_required | The payer got redirected to his bank and needs to authenticate | Intermediate |
order_created | The cover has been successfully set up, payment is now insured. At this point the merchant must validate the order. | Intermediate |
payment_created | The payment has succeeded, funds have been recovered | Final |
payment_cancelled | The payment was cancelled | Final |
payment_unsuccessful | The payment was rejected by either the payer or the bank | Final or Intermediate |
payment_error | The payment has failed for technical reasons | Intermediate |
payment_expired | The payment has expired | Final |
💡 NoteTo ease reproducing some of your scenarios, here are some tips to reach the different statuses in SANDBOX environment.
Updated 6 days ago