Find answers to common Brick integration questions about setup, authentication, callbacks, environments, and troubleshooting.
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:
Q: Can I use production API before KYB is approved?
No. Production access is only enabled after KYB approval.
Reference:
2. Environment & Credentials
Q: What is the difference between Sandbox and Production?
- Sandbox: Testing only, simulated transactions
- Production: Real funds and real bank processing
Credentials are environment-specific and cannot be mixed.
References:
Q: Why am I getting 401 Unauthorized?
Common causes:
- Incorrect API Key or Secret
- Wrong environment base URL
- Expired JWT token
References:
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:
Q: Why does my JWT token keep failing?
JWT tokens:
- Expire after 5 minutes
- Are intended for short-lived usage
Always regenerate before retrying.
Reference:
4. Callbacks & Webhooks
Q: Why am I not receiving callbacks?
Check:
- Callback URL is publicly accessible (HTTPS)
- Valid SSL certificate
- No firewall restrictions
- Proper signature verification logic
References:
Q: Should I rely on API response or callback?
Always rely on callback.
API response only confirms that Brick received the request, not the final status.
References:
5. Reference ID Rules
Q: Can I reuse the same reference ID?
No. Each transaction must use a unique reference ID.
Reference:
6. Debugging & Support
Q: What should I provide when reporting an issue?
Include:
- Reference ID
- Timestamp
- API endpoint
- Environment
- Error response
Reference:
Disbursement
1. Disbursement Failure
Q: Why does my disbursement fail even though balance is sufficient?
Possible causes:
- Invalid bank details
- Bank downtime
- Sender detail not configured
- Account validation not performed
Best practice: Always call Account Validation API first.
References:
2. Disbursement Method
Q: What’s the difference between Regular and BIFAST?
- BIFAST: Real-time, lower cost, limited coverage
- Regular: Wider coverage, near real-time
References:
3. Disbursement Status
Q: Why is my disbursement stuck in PENDING?
Possible causes:
- Bank processing delay
- Awaiting partner callback
References:
- Check Disbursement Status
- BIFast / Regular Disbursement Callback
4. Ledger & Reconciliation
Q: Why does dashboard balance differ from Ledger API?
- Dashboard shows available balance
- Ledger API shows full transaction movement
Reference:
Receive Money
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:
Q: Why is my VA payment not reflected yet?
Possible causes:
- Bank settlement delay
- Callback not delivered
References:
2. QRIS
Q: Why can’t I generate QRIS?
Possible causes:
- Merchant not registered
- QRIS not activated
- Invalid SNAP token
References:
Q: What’s the difference between Static and Dynamic QRIS?
- Static: Reusable QR
- Dynamic: Generated per transaction
Reference:
3. Payment Link
Q: Why does my payment link show expired?
Possible causes:
- Link expiration reached
- Payment completed or canceled
References:
4. E-Wallet
Q: Why does e-wallet redirect open but payment fail?
Possible causes:
- User closes app mid-flow
- E-wallet downtime
- Amount mismatch
References:

