1. Use Case
BPN OpenAPI
  • Getting Started
    • Introduction to BPN
    • Key Concepts & Terminology
    • Architecture Overview
  • Onboarding & Prerequisites
    • Product Demo
    • Sandbox & Test Environment
    • Signature Authentication Mechanism
  • Use Case
    • Transfer
    • Vault
    • On/Off Ramp
    • Compliance (Travel Rule Information Submission)
    • Fiat Collection(BRL PIX for example)
    • BRL Pay-in Business Integration Guide
  • API Reference
    • KYB
      • Share KYB/KYC Info For Sub User
      • Get KYB Sub User Status
    • Account Management
      • Inquiry Master VA Balance
      • Create Virtaul Account
      • Get Virtual Account Detail
      • List Virtual Account
      • Send Email Verify Code
      • Query bank info by account number
      • Payout via Virtual Account
      • Refund Virtual Account Order
      • Get Virtual Account Order Detail
      • List Virtual Account Orders
      • Submit Invoice
      • Get Invoice list Status
      • List Banks
      • Add Bank Account
      • List Bank Account
      • List RFI Sub Virtual Account
      • Get Sub Virtual Account RFI Template Info
      • Sub Virtual Account Submit RFI
    • Wallet
      • List Wallets
      • List Sub Account
      • Create Sub Account
      • Wallet Internal Transfer
      • Query Wallet Internal Transfer Detail
      • List Wallet Internal Transfer order
      • Get Asset Balance
      • Get Deposit Address
      • Add Deposit Sender
      • Add Withdraw Whitelist
      • Delete Withdraw Whiltelist
      • Request Withdraw
      • Query Transaction History
    • FX
      • Inquery FX Rate
    • BPN Transactions
      • Get Stablecoin Quote
      • Create Stable Order
      • Get Order (Single) Detail
      • List Orders(Batch)
    • Reconciliation
      • Get Reconciliation Order List By Page
    • Crypto Payment Link
      • Abnormal fund
        • Abnormal funds
        • Matchable Payment links
        • Link Order(Abnormal fund)
        • Submit to platform
      • Create Payment Link
      • List Payment links
      • Get Curreny Network Config
    • External Provider
      • FE: Create stablecoin collection sub-account link
      • Create stablecoin collection sub-account link
      • Get sub wallet account
      • List sub wallet accounts
      • Change sub wallet status
      • Query stablecoin collection order list
      • Query stablecoin collection order status
      • Get quote
      • Accept stablecoin collection order
      • Reject stablecoin collection order
      • Query USD balance
      • USD Payout (withdrawal)
      • Query USD Payout order status
      • Query USD Payout order list
    • Mock
      • Mock Virtual account Payin Order
      • Mock wallet deposit transaction
    • Pay Session
      • Request Pay Session
  • Webhooks & Events
    • Resend Fail Webhook
      POST
    • Open Virtual Account Status
    • Virtual Account Payment Status
    • Virtual Account Invoice update
    • Transaction Status Notification
    • KYB Status Notification
    • Deposit Sender Detail Required
    • Abnormal Fund Notification
    • WALLET_TRANSFER_ORDER_UPDATED
    • Sub Virtual Account RFI Required
    • Sub Wallet Update
    • wallet address whitelist Copy
    • Crypto Deposit Order Notification
    • Collect Order Updated
    • Usd Payout Order Updated
  • Appendix
    • Enum
    • Virtual Account(VA) Support List & KYB requirement
  • Release Notes & Changelog
    • Version History
  • Schemas
    • walletBalance
    • walletAddress
    • transactionRecord
  1. Use Case

BRL Pay-in Business Integration Guide

BRL Pay-in Business Integration Guide#

This guide outlines the core business logic and technical workflow for integrating Brazilian Real (BRL) payment services via BPN.

1. Identity Verification (KYC/KYB Sharing)#

We recommend sharing the user's KYC/KYB information via this interface to streamline the payment process. However, if the merchant does not have KYC information to share, this step can be skipped, and you may proceed directly to Step 2 (Request Payment Session).
API Endpoint: Share KYB/KYC Info For Sub User
Business Logic:
Individual Users: You must provide the legal Name and CPF (Brazilian Individual Tax ID).
Corporate Users: You must provide the Company Name and CNPJ (Brazilian Business Tax ID).
Result: The system returns subUserId and externalUserId. Store these IDs, as they are required to link the user to their future transactions.

2. Request Payment Session (Checkout)#

After identity verification, you can request a payment session to generate the checkout interface for the user.
API Endpoint: Request Pay Session
Core Requirements:
1.
Identity Reference: Provide the subUserId or externalUserId obtained in the previous step.
2.
Redirect URL: You must provide a merchant callback URL. Once the user completes the payment or exits the payment page, BPN will automatically redirect them back to your specified link.
Result: The API returns a redirectUrl. You should redirect the user to this URL to display the PIX QR code or bank transfer instructions.

3. Transaction Status Notification (Webhook)#

Since BRL payments (specifically PIX) are processed asynchronously, your system must listen for status updates.
API Endpoint: Transaction Status Notification
Usage:
BPN will push a notification to your configured Webhook URL when the Pay-in status changes.
Use this to capture the final status (e.g., SUCCESS) and the Platform Order Number.
Security: It is highly recommended to verify the notification signature to ensure the data is authentically from BPN.

4. Order Query & Reconciliation#

For manual reconciliation or as a fail-safe if a Webhook is missed, use the query interface to check specific transaction details.
API Endpoint: Get Reconciliation Order List By Page
Usage:
Query the full details of a BRL transaction using the Merchant Order No or Platform Order No.
Retrieve granular data including the exact BRL amount received, fees, and timestamps.

Notes:
Ensure all BRL amounts are handled with correct decimal precision as specified in the technical docs.
The redirectUrl in Step 2 typically expires after a short period; it should be generated at the time of the user's intent to pay.
Previous
Fiat Collection(BRL PIX for example)
Next
Share KYB/KYC Info For Sub User
Built with