This FAQ covers common questions about Brick integration, including account setup, authentication, environments, callbacks, and troubleshooting steps applicable across all Brick products.
General
1. Account & Access
Q: What must be completed before integration?
You must:
• Pass KYB verification
• Have an active Brick dashboard account
• Obtain API Key & Secret
• Decide environment: Sandbox or Production
References:
• Verify Your Account (KYB)
https://docs.onebrick.io/docs/verify-your-account
• Brick Dashboard Overview
https://docs.onebrick.io/docs/dashboard-overview
• Getting Started With Your API
https://docs.onebrick.io/reference/getting-started-with-your-api-6
Q: Can I use production API before KYB is approved?
No.
Production access is only enabled after KYB approval.
Reference:
• Verify Your Account (KYB)
https://docs.onebrick.io/docs/verify-your-account
2. Environment & Credentials
Q: What is the difference between Sandbox and Production?
• Sandbox: testing only, simulated transactions
• Production: real funds and real bank processing
Sandbox credentials cannot be used in production and vice versa.
References:
• Try Brick API with Postman
https://docs.onebrick.io/docs/postman-collection
• Production Checklist
https://docs.onebrick.io/docs/production-checklist
Q: Why am I getting 401 Unauthorized?
Common causes:
• Wrong API key or secret
• Wrong environment base URL
• Expired JWT token
References:
• API Introduction
https://docs.onebrick.io/reference/api-introduction
• Generate Public Access Token (JWT)
https://docs.onebrick.io/reference/generate-public-access-token-jwt-token
3. Authentication & Security
Q: How does Brick authentication work?
Brick uses:
• API Key and Secret
• Short-lived JWT Public Access Token (5 minutes)
• Signature verification for callbacks
References:
• APIs Security
https://docs.onebrick.io/docs/api-security
• API Response Structure
https://docs.onebrick.io/reference/api-response-structure
Q: Why does my JWT token keep failing?
JWT tokens:
• Expire after 5 minutes
• Are single-use
Always regenerate before retrying a request.
Reference:
• Generate Public Access Token (JWT)
https://docs.onebrick.io/reference/generate-public-access-token-jwt-token
4. Callbacks & Webhooks
Q: Why am I not receiving callbacks?
Check:
• Callback URL is public and HTTPS
• SSL certificate is valid
• No firewall blocking inbound traffic
• Signature verification logic is correct
References:
• API Security
https://docs.onebrick.io/docs/api-security
• Error Handling
https://docs.onebrick.io/docs/error-handling
Q: Should I rely on API response or callback?
Always rely on callback.
API response only confirms the request was accepted, not completed.
References:
• Disbursement Callback
https://docs.onebrick.io/reference/disbursement-async
• Payment Callback
https://docs.onebrick.io/reference/callback-payment-ewallet
5. Reference ID Rules
Q: Can I reuse the same reference ID?
No.
Each transaction must use a unique reference ID.
Reference:
• API Response Structure
https://docs.onebrick.io/reference/api-response-structure
6. Debugging & Support
Q: What should I provide when reporting an issue?
Always include:
• Reference ID
• Timestamp
• API endpoint
• Environment (Sandbox or Production)
• Error response
Reference:
• Error Handling
https://docs.onebrick.io/docs/error-handling
Disbursement
1. Disbursement Failure
Q: Why does my disbursement fail even though balance is sufficient?
Possible causes:
• Invalid recipient bank details
• Bank temporarily unavailable
• Sender detail not configured
• Account validation not performed
Best practice:
• Always call Account Validation API before disbursement
References:
• Disbursement via API
https://docs.onebrick.io/docs/payment-out-via-api
• Account Validation API
https://docs.onebrick.io/reference/account-validation-api
• Sender Detail
https://docs.onebrick.io/docs/sender-detail
2. Disbursement Method
Q: What’s the difference between Regular and BIFAST disbursement?
- BIFAST: real-time, lower cost, limited bank coverage
- Regular: wider bank coverage, near real-time
If the destination bank does not support BIFAST, the transaction will fail.
References:
• BIFAST Disbursement API
https://docs.onebrick.io/reference/disbursement-bifast
• Regular Disbursement API
https://docs.onebrick.io/reference/disbursement-api
3. Disbursement Status
Q: Why is my disbursement stuck in PENDING?
Possible causes:
• Bank processing delay
• Awaiting partner callback
Recommended actions:
• Check Disbursement Status API
• Treat callback as final confirmation
References:
• Checking Disbursement Status
https://docs.onebrick.io/docs/get-payment-out-transaction-status
• Disbursement Callback
https://docs.onebrick.io/reference/disbursement-async
4. Retry Rules
Q: Can I retry a failed disbursement?
Yes, but:
• Use a new reference ID
• Ensure the failure cause has been resolved
Reference:
• API Response Structure
https://docs.onebrick.io/reference/api-response-structure
5. Ledger & Reconciliation (BrickFast)
Q: Why does my dashboard balance differ from Ledger API?
• Dashboard shows available balance
• Ledger API shows transaction movements
Pending or reversed transactions may cause differences.
Reference:
• Transactions History and Ledger API
https://docs.onebrick.io/docs/ledger-api-and-transactions-history
Q: How should finance teams reconcile disbursement transactions?
Use:
• Ledger API
• Dashboard transaction history
• Transfer Proof API
References:
• Ledger API
https://docs.onebrick.io/reference/ledger-api
• Download Transfer Proof
https://docs.onebrick.io/reference/download-transfer-proof-api
Acceptance
1. Virtual Account (VA)
Q: What is the difference between Open VA and Closed VA?
• Open VA: reusable, flexible amount
• Closed VA: one-time use, fixed amount
Reference:
• Virtual Account Overview
https://docs.onebrick.io/docs/virtual-account
Q: Why is my VA payment not reflected yet?
Possible causes:
• Bank settlement delay
• Callback not delivered yet
Recommended actions:
• Listen to VA callback
• Use VA Status API as fallback
References:
• VA Callback
https://docs.onebrick.io/reference/callback-e-wallet-payment-copy
• VA Status API
https://docs.onebrick.io/reference/status-of-open-va
Q: Why did my Closed VA payment fail?
Most common reason:
• Paid amount does not match the fixed VA amount
Reference:
• Generate Closed VA
https://docs.onebrick.io/reference/generate-closed-va
2. QRIS
Q: Why can’t I generate QRIS?
Possible reasons:
• Merchant not registered or approved
• QRIS not activated
• Invalid SNAP token or signature
QRIS requires merchant approval before usage.
References:
• QRIS Overview
https://docs.onebrick.io/docs/qris
• Registering for QRIS
https://docs.onebrick.io/docs/merchant-creation
Q: What’s the difference between Static and Dynamic QRIS?
• Static QRIS: reusable QR
• Dynamic QRIS: generated per transaction with fixed amount
Reference:
• Generate Dynamic QRIS
https://docs.onebrick.io/reference/generate-dynamic-qris
Q: Why is QRIS payment successful but not updated in my system?
Possible causes:
• Callback not processed
• Signature verification failed
Always treat callback as the final status.
Reference:
• QRIS Callback
https://docs.onebrick.io/reference/qris-callback-dynamic-qris
3. Payment Link
Q: Why does my payment link show “expired”?
Possible causes:
• Link has passed its expiration time
• Payment already completed or canceled
Generate a new payment link for retry.
References:
• Payment Link Overview
https://docs.onebrick.io/docs/payment-link
• Cancel Payment Link
https://docs.onebrick.io/reference/cancel-payment-link
Q: Can a payment link be reused?
No.
Each payment link is tied to a single transaction lifecycle.
Reference:
• Generate Payment Link
https://docs.onebrick.io/reference/generate-open-va-via-payment-link
4. E-Wallet Acceptance
Q: E-wallet redirect opens but payment fails—why?
Possible causes:
• User closes app mid-flow
• E-wallet service downtime
• Amount mismatch
Recommended actions:
• Check Status E-wallet API
• Rely on callback result
References:
• Status E-wallet Payment
https://docs.onebrick.io/reference/status-ewallet-payment
• Callback E-wallet Payment
https://docs.onebrick.io/reference/callback-payment-ewallet
