FAQ

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:


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: