One-Cent Check
Boost conversion rates by using One-Cent Check to get user's bank accounts before processing deposits or withdrawals.
Identifying accurate bank account details is being a challenge in the market, with users often unaware of their account ISPBs, branch or numbers. To tackle this issue, we’ve developed the One-Cent Check, a solution that streamlines bank account verification and enhances transaction accuracy.
Flows
Without One-Cent Check

With One-Cent Check
How it Works
1. Generate a Cash-In Request
Create a cash-in request with a small, cents-level amount, accompanied by a QR code for the user to pay. This process here is similar to Pix Deposit.
First, let’s start by using this endpoint.
POST /partners-int/accounts/pix/cashin
Request Body
Include "validateAccount": true
to your Body Request.
{
"transaction": {
"orderId": "<string>",
"orderDescription": "<string>"
},
"payment": {
"value": {
"original": "<string>", //Here you can specify 0.01 BRL i.e.
},
"payer": {
"name": "<string>",
"cpf": "<string>",
},
//👇👇👇👇👇👇
"validateAccount": "<boolean>" //TRUE: To validate account and automatically refund the value requested.
},
"webhook": {
"url": "<string>",
"customHeaderName": "<string>",
"customHeaderValue": "<string>"
}
}
QRCode Value
You can use small values i.e. 0.01-0.05 BRL to create the One-Cent Check
You can check the response of this payload here, where you will receive the QRCode to be paid.
2. User Payment
With the QRCode Return from the previous request, you will have few steps to follow.
Add One-Cent Check step to your Onboarding
Include the QR code step where users register their bank accounts. Reinforce the necessity of this step to avoid issues with incorrect account inputs, as skipping it may lead to conversion problems.
Reinforce QRCode Payment
To avoid issues with incorrect account inputs, as skipping it may not fix your conversion problems
Bettor Payment
- Ensure the user pays from an individual account matching the CPF used to generate the QR code.
- Highlight that mismatched CPFs will cause the validation to fail.
Instant Refund
Inform the Bettor that the payment amount will be promptly refunded after the platform confirms the transaction.
3. Webhook Payment Info
Now that the user has paid the validation QRCode (And probably already received the refund), PayBrokers will send a webhook notification to the configured URL (webhook_url
provided when the transaction was created). This webhook contains information about the transaction status, allowing the client system to track and update the payment status accurately and the payer object that will contain the bank info of the bettor's.
Note:
Learn more about webhook parameters in the Webhook Event Verification guide.
The webhook returned from the status change will follow this format.
{
"id": "<string>",
"transactionState": "Completed",
"transactionDate": "<date>",
"transactionAmount": "<value>",
"transactionType": "<string>",
"transactionPaymentType": "<string>",
"transactionOrderId": "",
"transactionOrderDescription": "<string>",
"transactionCharges": "<value>",
"webhookUrl": "<string>",
"transactionReceipt": "<string>",
"transactionReceiptDate": "<date>",
"transactionReceiptVoucher": "<string>",
"stateRegisteredDate": "<date>",
"stateCompletedDate": "<date>",
//👇 HERE
"payer": {
"name": "<string>",
"taxNumber": "<string>",
"bankCode": "<string>",
"accountAgency": "<string>",
"accountNumber": "<string>",
"accountDigit": "<string>"
}
}
5. Future Transactions Simplified
With the webhook information, you can now use the payer object to enrich the user’s profile and seamlessly leverage this data for future Cash IN and OUT transactions.
PAYER OBJECT (From WebHook)
"payer": {
"name": "",
"taxNumber": "",
"bankCode": "",
"accountAgency": "",
"accountNumber": "",
"accountDigit": ""
}
CASHIN REQUEST
{
"transaction": {
"orderId": "<string>",
"orderDescription": "<string>"
},
"payment": {
"value": {
"original": "<string>",
},
"payer": {
"name": "<string>",
"cpf": "<string>",
//👇 YOU CAN REPLACE IT HERE
"account": {
"ispb": "<string>", //bankCode
"branch": "<string>",//accountAgency
"number": "<string>",//accountNumber
"digit":"<string>"//accountDigit
}
}
},
"webhook": {
"url": "<string>",
"customHeaderName": "<string>",
"customHeaderValue": "<string>"
}
}
CASHOUT REQUEST
{
"payment": {
"value": "<string>",
"recipient": {
"name": "<string>",
"cpf": "<string>",
//👇 YOU CAN REPLACE IT HERE
"account": {
"ispb": "<string>",//bankCode
"branch": "<string>",//accountAgency
"number": "<string>",//accountNumber
"digit": "<string>",//accountDigit
"type": "<string>"
}
}
},
"transaction": {
"orderId": "<string>",
"orderDescription": "<string>"
},
"webhook": {
"url": "<string>",
"customHeaderName": "<string>",
"customHeaderValue": "<string>"
}
}
Updated about 2 months ago