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:

  1. Request a PIS dedicated access token
  2. Build a BNPL Payment Session and redirect the payer to the returned Connect URL
  3. Verify the payment on callback such that the payment status and order ID matches
  4. Listen to Webhook to intercept payments status change events as a redundant channel to the redirect callback

🚧 Important

Signature, digest, date and x-request-id headers are optional in SANDBOX environment but mandatory when calling the PRODUCTION one.

💡 Note

Step 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.

B2B RecipePostman

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

    🚧 Important

    Be 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.

StatusDescriptionPhase
provider_requiredThe payment session has been prepared for the payerIntermediate
sca_requiredThe payer got redirected to his bank and needs to authenticateIntermediate
order_createdThe cover has been successfully set up, payment is now insured.
At this point the merchant must validate the order.
Intermediate
payment_createdThe payment has succeeded, funds have been recoveredFinal
payment_cancelledThe payment was cancelledFinal
payment_unsuccessfulThe payment was rejected by either the payer or the bankFinal or Intermediate
payment_errorThe payment has failed for technical reasonsIntermediate
payment_expiredThe payment has expiredFinal

💡 Note

To ease reproducing some of your scenarios, here are some tips to reach the different statuses in SANDBOX environment.