Download OpenAPI specification:Download
Staging Environment: https://api.sdb.lbpay.com.br
Production Environment: Provided once you complete the testing
This document provides the technical specifications for integrating with our PIX API, designed for iGaming platforms. Follow the guidelines below to ensure a successful implementation.
We use the OAuth 2.0 standard with Bearer Tokens. You must request an access token by sending your credentials to the authentication endpoint.
Replace the client_id and client_secret
curl --request POST \
--url 'https://api.sdb.lbpay.com.br/v1/oauth2/token' \
--header 'accept: application/json' \
--header 'content-type: multipart/form-data' \
--form client_id=YOUR_CLIENT_ID \
--form grant_type=client_credentials \
--form client_secret=YOUR_CLIENT_SECRET
| Controller | Description |
|---|---|
| Pix-In | Core endpoints for creating and retrieving player deposit transactions. |
| Pix-Out | Core endpoints for initiating and querying player withdrawal transactions. |
| Pix Refund | Endpoints used to return funds from previously completed deposits. |
| Internal Transfer | Endpoints that manage wallet‑to‑wallet transfers within the operator’s environment. |
| Webhook | Endpoints used to configure callback URLs and receive asynchronous notifications from the platform. |
| Balance | Endpoints for querying account balances, including real-time and closing-day balances. |
Webhook configuration and management can be handled through the Webhook endpoints available in this API.
Our notification system includes automatic retry logic. However, to ensure full reconciliation of events, we strongly recommend maintaining a fallback polling mechanism to retrieve any undelivered status updates in the event your service becomes temporarily unavailable.
POST /v1/pix/deposit/immediate-charge endpoint.
4. The player scans the QR Code or pastes the payload into their banking app to complete the payment.
5. Our platform processes the transaction and sends a real-time webhook notification to the operator with the final status.
6. Upon receiving the notification, the operator immediately credits the player’s gaming wallet.
POST /v1/pix/withdraw endpoint, including the Pix key and the requested amount.
4. Our API processes the Pix cash-out and transfers the funds to the player’s bank account within seconds.
5. A real-time webhook notification is sent to the operator confirming the successful settlement of the withdrawal.
Endpoint to create an immediate charge for iGaming. The txId must be generated by the PSP.
Pix Deposit data
| amount required | integer Amount in cents, must be positive |
| description | string <= 140 characters Optional free-text description of the deposit, up to 140 characters |
object Expected payer information used to validate the incoming payment | |
| expiresIn required | integer Expiration in seconds |
| externalId required | string <= 100 characters External ID, max 100 characters |
object Optional key-value metadata, up to 50 entries, keys up to 50 characters and values up to 200 characters | |
| pixKey required | string <= 77 characters Pix key of the destination account, up to 77 characters |
{- "amount": 0,
- "description": "string",
- "expectedPayer": {
- "bankAccounts": [
- {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "personType": "NATURAL_PERSON"
}
], - "name": "string",
- "taxId": "string"
}, - "expiresIn": 86400,
- "externalId": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "pixKey": "string"
}{- "amount": 0,
- "brCode": "string",
- "chargeId": "string",
- "createdAt": "string",
- "description": "string",
- "expectedPayer": {
- "bankAccounts": [
- {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "personType": "NATURAL_PERSON"
}
], - "name": "string",
- "taxId": "string"
}, - "expiresAt": "string",
- "externalId": "string",
- "pixKey": "string",
- "status": "PENDING"
}Endpoint to query a specific immediate charge by its ChargeID.
| chargeId required | string deposit chargeId (UUIDv4) |
{- "amount": 0,
- "brCode": "string",
- "chargeId": "string",
- "createdAt": "string",
- "debtor": {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "description": "string",
- "expectedPayer": {
- "bankAccounts": [
- {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "personType": "NATURAL_PERSON"
}
], - "name": "string",
- "taxId": "string"
}, - "expiresAt": "string",
- "externalId": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "paidAt": "string",
- "pixKey": "string",
- "pixTransaction": {
- "endToEndId": "string",
- "transactionId": "string"
}, - "status": "PENDING"
}Initiates a PIX transfer (cash-out) to the player's bank account (ISPB + account details).
Withdrawal data
| amount required | integer Amount in cents, must be a positive number |
required | object Destination bank account for the withdrawal |
| description | string <= 140 characters Optional free-text description of the withdrawal, up to 140 characters |
| externalId required | string [ 1 .. 100 ] characters Client-provided identifier used for idempotency, up to 100 characters |
object Optional key-value metadata, up to 50 entries, keys up to 50 characters and values up to 200 characters |
{- "amount": 0,
- "creditor": {
- "accountNumber": "string",
- "accountType": "TRAN",
- "bankCode": "string",
- "branchCode": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "description": "string",
- "externalId": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "amount": 0,
- "createdAt": "string",
- "externalId": "string",
- "status": "INITIATED",
- "transactionId": "string"
}Initiates a PIX transfer (cash-out) to the player's registered PIX key.
Withdrawal data
| amount required | integer Amount in cents, must be an positivi number |
| description | string <= 140 characters Optional free-text description of the withdrawal, up to 140 characters |
required | object Expected creditor information used to validate the destination |
| externalId required | string [ 1 .. 100 ] characters Client-provided identifier used for idempotency, up to 100 characters |
object Optional key-value metadata, up to 50 entries, keys up to 50 characters and values up to 200 characters | |
| pixKey required | string <= 77 characters Pix key of the destination account, up to 77 characters |
{- "amount": 0,
- "description": "string",
- "expectedCreditor": {
- "bankAccounts": [
- {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "personType": "NATURAL_PERSON"
}
], - "name": "string",
- "taxId": "string"
}, - "externalId": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "pixKey": "string"
}{- "amount": 0,
- "createdAt": "string",
- "externalId": "string",
- "status": "INITIATED",
- "transactionId": "string"
}Retrieves the details of a specific withdrawal transaction by its ID.
| externalId required | string Withdraw externalId (up to 100 characters) |
{- "amount": 0,
- "createdAt": "string",
- "creditor": {
- "accountNumber": "string",
- "accountType": "TRAN",
- "bankCode": "string",
- "branchCode": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "endToEndId": "string",
- "errorCode": "ACCOUNT_MISMATCH",
- "errorDescription": "string",
- "expectedCreditor": {
- "bankAccounts": [
- {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "personType": "NATURAL_PERSON"
}
], - "name": "string",
- "taxId": "string"
}, - "externalId": "string",
- "initiationType": "PIX_KEY",
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "settlementDateTime": "string",
- "status": "INITIATED",
- "transactionId": "string",
- "updatedAt": "string"
}Initiates a PIX refund (reversal) for a received transaction identified by its original End-to-end ID. The {id} is a customer-defined identifier used for idempotency and to distinguish partial refunds on the same transaction.
| endToEndId required | string Original End-to-end ID of the PIX transaction (32 alphanumeric characters) |
Refund data
| accountNumber required | string |
| amount required | integer |
| description | string <= 140 characters |
| endToEndId required | string |
| externalId required | string [ 1 .. 36 ] characters |
{- "accountNumber": "string",
- "amount": 0,
- "description": "string",
- "endToEndId": "string",
- "externalId": "string"
}{- "amount": 0,
- "canBeReversedUntil": "string",
- "createdAt": "string",
- "creditor": {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "errorCode": "string",
- "errorDescription": "string",
- "externalId": "string",
- "leftAmount": 0,
- "originalAmount": 0,
- "originalEndToEndId": "string",
- "refundEndToEndId": "string",
- "settlementDateTime": "string",
- "status": "PROCESSING",
- "totalReversedAmount": 0,
- "updatedAt": "string"
}Retrieves the details of a specific PIX refund identified by the original transaction End-to-end ID and the customer-defined refund ID.
| endToEndId required | string Original End-to-end ID of the PIX transaction (32 alphanumeric characters) |
| externalId required | string Customer-defined refund identifier (UUIDv4) |
{- "amount": 0,
- "canBeReversedUntil": "string",
- "createdAt": "string",
- "creditor": {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "errorCode": "string",
- "errorDescription": "string",
- "externalId": "string",
- "leftAmount": 0,
- "originalAmount": 0,
- "originalEndToEndId": "string",
- "refundEndToEndId": "string",
- "settlementDateTime": "string",
- "status": "PROCESSING",
- "totalReversedAmount": 0,
- "updatedAt": "string"
}Initiates an internal funds transfer between accounts under the same ownership.
Transfer data
| amount required | integer |
| description | string |
| externalId required | string |
| toAccountNumber required | string |
{- "amount": 0,
- "description": "string",
- "externalId": "string",
- "toAccountNumber": "string"
}{- "amount": 0,
- "externalId": "string",
- "requestedAt": "string",
- "status": "PENDING",
- "transactionId": "string"
}Retrieves the details of a specific internal transfer by its external ID.
| externalId required | string Customer-defined identifier submitted |
{- "amount": 0,
- "createdAt": "string",
- "creditor": {
- "accountNumber": "string",
- "accountType": "SLRY",
- "bankCode": "string",
- "branchCode": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "errorCode": "string",
- "errorDescription": "string",
- "externalId": "string",
- "status": "PENDING",
- "transactionId": "string",
- "updatedAt": "string"
}Endpoint to create/update account-level webhook configuration.
webhook data
| accountNumber | string |
object (dtos.WebhookAuthDTO) | |
| authenticationType | integer <int32> Enum: 0 1 Authentication type: 0 = Basic authentication 1 = Bearer authentication |
| events | Array of strings Possible events: pixChargePaid pixChargeRejected pixChargeExpired pixWithdrawSuccess pixWithdrawFailed pixRefundSuccess pixRefundFailed |
| type | integer <int32> Enum: 0 1 2 Webhook type: 0 Pix In webhook 1 Pix Out webhook 2 Pix Refund webhook |
| url required | string |
| webhookPassword | string |
| webhookUserName | string |
{- "accountNumber": "00012345",
- "authentication": {
- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "type": "bearer"
}, - "authenticationType": 1,
- "events": [
- "pixChargePaid",
- "pixChargeRejected",
- "pixWithdrawSuccess"
], - "type": 0,
- "webhookPassword": "webhook-password",
- "webhookUserName": "webhook-user"
}{- "active": true,
- "authentication": {
- "type": "bearer"
}, - "createdAt": "2026-04-07T11:30:00Z",
- "id": "wh_7f2b8a9e",
- "updatedAt": "2026-04-07T11:35:00Z",
- "validated": true,
- "webhookEvents": [
- "pixChargePaid",
- "pixChargeRejected",
- "pixWithdrawSuccess"
],
}Endpoint to list account webhooks
| start_date | string Example: start_date="2026-01-01T00:00:00Z" Start date (RFC3339). Defaults to 30 days ago. |
| end_date | string Example: end_date="2026-04-14T23:59:59Z" End date (RFC3339). Defaults to now. |
{- "parameters": {
- "endTime": "string",
- "pagination": {
- "currentPage": 0,
- "itemsPerPage": 0,
- "pageQuantity": 0,
- "totalItems": 0
}, - "startTime": "string"
}, - "webhooks": [
- {
- "active": true,
- "authentication": {
- "type": "bearer"
}, - "createdAt": "2026-04-07T11:30:00Z",
- "id": "wh_7f2b8a9e",
- "updatedAt": "2026-04-07T11:35:00Z",
- "validated": true,
- "webhookEvents": [
- "pixChargePaid",
- "pixChargeRejected",
- "pixWithdrawSuccess"
],
}
]
}Retrieve the closing balance for an account on a specific reference date. All timestamps are returned in BRT (UTC-3)
| dateRef required | string Example: dateRef="2026-03-20" Reference date (YYYY-MM-DD format) |
{- "accountNumber": "123456",
- "availableBalance": 1000000,
- "currency": "BRL",
- "dateRef": "2026-03-20T23:59:59-03:00",
- "lastUpdated": "2026-03-20T21:00:00-03:00",
- "pendingBalance": 500000,
- "totalBalance": 1500000
}Retrieve the real-time balance for an account directly from the ledger. All timestamps are returned in BRT (UTC-3)
{- "accountNumber": "123456",
- "availableBalance": 1450000,
- "currency": "BRL",
- "lastUpdated": "2026-03-21T11:30:00-03:00",
- "pendingBalance": 50000,
- "totalBalance": 1500000
}Centralizes the mock setup required to test PIX withdrawal flows in non-production environments.
The endpoint performs the following steps in sequence:
Withdrawal mock setup data
required | object (handlers.SetupWithdrawalMockAccount) |
| autoSettle | boolean |
| key required | string |
| keyType required | string Enum: "CPF" "CNPJ" "EMAIL" "PHONE" "EVP" |
required | object (handlers.SetupWithdrawalMockOwner) |
| reason | string |
| requestId | string |
| result | string |
{- "account": {
- "accountNumber": "string",
- "accountType": "CACC",
- "branch": "string",
- "openingDate": "string",
- "participant": "string"
}, - "autoSettle": true,
- "key": "string",
- "keyType": "CPF",
- "owner": {
- "name": "string",
- "taxIdNumber": "string",
- "type": "NATURAL_PERSON"
}, - "reason": "string",
- "requestId": "string",
- "result": "string"
}{- "key": "string",
- "requestId": "string",
- "steps": [
- {
- "name": "string",
- "response": "string",
- "status": 0,
- "url": "string"
}
], - "taxIdNumber": "string"
}Creates a mock PIX-IN payment for an existing charge in non-production environments.
Required: chargeId. Optional: amount, receiverCnpj, payer (with taxId, name, bankAccounts). Missing payer fields are recovered from the charge when available.
Simulated payment data
| amount | number Amount in cents. Optional. When omitted, the amount stored in the charge is used. |
| chargeId required | string Charge identifier. Required. |
object Optional payer data. Missing fields are recovered from the charge when available. | |
| receiverCnpj | string Receiver CNPJ. Optional. When omitted, the API attempts to recover it from the receiver account. |
{- "amount": 0,
- "chargeId": "string",
- "payer": {
- "bankAccounts": [
- {
- "accountNumber": "string",
- "bankCode": "string",
- "branchCode": "string"
}
], - "name": "string",
- "taxId": "string"
}, - "receiverCnpj": "string"
}{ }Retorna lancamentos liquidados de uma conta com filtros avancados.
| initDate | string Data inicio (RFC3339 ou YYYY-MM-DD). Date-only vira 00:00 BRT do dia. |
| endDate | string Data fim (RFC3339 ou YYYY-MM-DD). Date-only vira 23:59:59.999... BRT do dia. |
| endToEndId | string Filtro por E2E_ID |
| productTransactionId | string Filtro por UUID da transacao |
| counterPartyCpf | string Filtro por CPF/CNPJ da contraparte |
| transactionType | string credit | debit |
| method | string pix | tarifa | judicialMovement |
| page | integer Numero da pagina (default 0) |
| pageSize | integer Itens por pagina (default 20, max 100) |
{- "page": 0,
- "pageSize": 0,
- "totalItems": 0,
- "totalPages": 0,
- "transactions": [
- {
- "amount": 0,
- "creditor": {
- "accountNumber": "string",
- "accountType": "TRAN",
- "bankCode": "string",
- "bankName": "string",
- "branch": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "debtor": {
- "accountNumber": "string",
- "accountType": "TRAN",
- "bankCode": "string",
- "bankName": "string",
- "branch": "string",
- "name": "string",
- "personType": "NATURAL_PERSON",
- "taxId": "string"
}, - "endToEndId": "string",
- "externalId": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "method": "string",
- "origin": "string",
- "productTransactionId": "string",
- "settlementDateBrt": "string",
- "settlementDateTime": "string",
- "transactionId": "string",
- "transactionType": "string"
}
]
}Retrieve a paginated daily consolidated summary filtered by date range
| startDate required | string Start date (DateOnly format, e.g. 2024-01-01) |
| endDate required | string End date (DateOnly format, e.g. 2024-01-31) |
| page | integer >= 1 Page number (default: 1) |
| limit | integer [ 1 .. 100 ] Items per page (default: 10, max: 100) |
{- "accountNumber": "string",
- "currency": "string",
- "page": 0,
- "pageSize": 0,
- "summaries": [
- {
- "closingBalanceCents": 0,
- "currency": "string",
- "dateRef": "string",
- "depositsCount": 0,
- "lastUpdated": "string",
- "stale": true,
- "totalInCents": 0,
- "totalOutCents": 0,
- "withdrawalsCount": 0
}
], - "totalRecords": 0
}