FAQ

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)
Brick Dashboard Overview
API Introduction

Q: Can I use production API before KYB is approved?

No. Production access is only enabled after KYB approval.

Reference:
Verify Your Account (KYB)

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:
Authentication and Environment
Production Checklist

Q: Why am I getting 401 Unauthorized?

Common causes:
• Incorrect API Key or Secret
• Wrong environment base URL
• Expired JWT token

References:
API Introduction
Generate Public Access Token (JWT)

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
Security at Brick

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:
Generate Public Access Token (JWT)

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:
APIs Security
Error Handling

Q: Should I rely on API response or callback?

Always rely on callback.
API response only confirms request acceptance, not final status.

References:
Regular Disbursement Callback
Callback E-wallet Payment

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

6. Debugging & Support

Q: What should I provide when reporting an issue?

Include:
• Reference ID
• Timestamp
• API endpoint
• Environment
• Error response

Reference:
Error Handling

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:
Disbursement via API

•	[Sender Detail](https://onebrick.readme.io/reference/sender-details)

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:
BIFAST Disbursement API
Regular Disbursement

3. Disbursement Status

Q: Why is my disbursement stuck in PENDING?

Possible causes:
• Bank processing delay
• Awaiting partner callback

References:
Checking 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:
Ledger 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

Q: Why is my VA payment not reflected yet?

Possible causes:
• Bank settlement delay
• Callback not delivered

References:
Callback Virtual Account
Status of Open VA

2. QRIS

Q: Why can’t I generate QRIS?

Possible causes:
• Merchant not registered
• QRIS not activated
• Invalid SNAP token

References:
QRIS Overview
Registering for QRIS

Q: What’s the difference between Static and Dynamic QRIS?
• Static: Reusable QR
• Dynamic: Generated per transaction

Reference:
Generate Dynamic QRIS

3. Payment Link

Q: Why does my payment link show expired?

Possible causes:
• Link expiration reached
• Payment completed or canceled

References:
Payment Link
Cancel Payment Link

4. E-Wallet Acceptance

Q: Why does e-wallet redirect open but payment fail?

Possible causes:
• User closes app mid-flow
• E-wallet downtime
• Amount mismatch

References:
Status E-wallet Payment
Callback E-wallet Payment