Sandbox (Payments)

❗️

Only available for Biometric Pix Payment Intents

At present, the Sandbox (Payments) environment is only applicable for Payments Intents for Belvo's Biometric Pix product.

Our payments sandbox allows you to interact with our Payments API in a controlled environment so that you can prototype your payments integration.

Resource availability

Our sandbox environment currently supports the following res

ResourceSupported in Sandbox
Payment InstitutionsYes
CustomersYes
Bank AccountsYes
Payment IntentsYes - but only for biometric pix payments
Payment LinksNo
TransactionsYes

Payment Intent flows

Our payments sandbox allows you to test various payment scenarios and understand how different outcomes are handled within our system. This environment mimics real-world interactions for testing purposes, including successful payments, failures due to insufficient funds, and more.

📘

Currently, our sandbox environment does not support scheduled or recurring payments.

🤩 Success

To simulate a successful payment:

  1. Create a payment intent with an amount between 1 and 100.
  2. Make a /payments/br/payment-intents/{id}/authorize/ request with the required request body.
  3. The payment intent and charge statuses will update to SUCCEEDED, and webhooks will be sent to notify of the success.
  4. A transaction will be created, and a corresponding webhook will be sent.

🙁 Failed - Insufficient Funds

To simulate a failure due to insufficient funds:

  1. Create a payment intent with an amount between 101 and 200.
  2. Make a /payments/br/payment-intents/{id}/authorize/ request with the required request body.
  3. The payment intent and charge statuses will be updated to FAILED, and webhooks will be sent.
    • The failure_code will indicate the reason as insufficient_funds.

🙁 Failed - Consent Rejected

To simulate a failure due to rejected consent:

  1. Create a payment intent with an amount between 201 and 300.
  2. Make a /payments/br/payment-intents/{id}/authorize/ request with the required request body.
  3. The payment intent and charge statuses will be updated to FAILED, and webhooks will be sent.
    • The failure_code will indicate the reason as consent_rejected.

🙁 Failed - Server Error (Payment Expires)

To simulate a failure due to a server error with payment expiration:

  1. Create a payment intent with an amount between 301 and 400.
  2. Make a /payments/br/payment-intents/{id}/authorize/ request with the required request body.
    1. You will receive a 500 server_error. The payment intent and associated charges will remain in the PENDING state.
  3. After 5 minutes, the payment intent and charge statuses will be updated to FAILED, and webhooks will be sent.
    • The failure_code will indicate an consent_expired.

🙁 Failed - Payment Expired

To simulate a payment expiration:

  1. Create a payment intent with any amount.
  2. Wait for 5 minutes without making an authorization request.
  3. The payment intent and charge statuses will be updated to FAILED, and webhooks will be sent.
    • The failure_code will indicate consent_expired.