Testing Disbursements

Overview

Testing disbursements using the Sandbox can verify implementation functionality to ensure robustness when performing Disbursement Error Handling.

Disbursement Mock Responses

The Create Disbursement metadata field has special handling in the Sandbox environment depending on the value associated with a mock_response key at the top level. These Mock Response values are generated directly by Branch

Example Disbursement Request Body and associated Mock Response

{
  "worker_id": "123456",
  "external_id": "7de69037-c2ca-4214-99a7-fc76a73642c1",
  "type": "PAYCHECK",
  "amount": 500,
  "description": "Deposit Test",
  "metadata": {
    "mock_response": "LIKELY_MATCH_FOUND"
  }
}
{
  "worker_id": "123",
  "amount": 500,
  "external_id": "7de69037-c2ca-4214-99a7-fc76a73642c1",
  "type": "PAYCHECK",
  "worker_group": "Store #1",
  "description": "Deposit Test",
  "display_header_label": "Paycheck",
  "display_sub_label": "Pizza Delivery Company",
  "status": "SKIPPED",
  "reason_code": "LIKELY_MATCH_FOUND",
  "payout": {
    "id": "123",
    "payment_type": "WALLET",
    "amount": 500,
    "fee": 100,
    "org_paid_fee": 50,
    "time_completed": "2025-07-16T22:37:20.000Z"
  },
  "metadata": {
    "mock_response": "LIKELY_MATCH_FOUND"
  },
  "time_created": "2025-07-16T22:37:30.301Z",
  "time_modified": "2025-07-16T22:37:30.301Z"
}
mock_responseReason CodeStatusHTTP
AMOUNT_ZEROAMOUNT_ZEROCOMPLETED201
RETRY_PERIOD_ELAPSEDRETRY_PERIOD_ELAPSEDSKIPPED200
RETRY_LIMIT_EXCEEDEDRETRY_LIMIT_EXCEEDEDSKIPPED200
LIKELY_MATCH_FOUNDLIKELY_MATCH_FOUNDSKIPPED200
WORKER_NOT_FOUNDWORKER_NOT_FOUNDFAILED202
PAYMENT_PROFILE_NOT_FOUNDPAYMENT_PROFILE_NOT_FOUNDFAILED202
PAYMENT_PROFILE_SUSPENDEDPAYMENT_PROFILE_SUSPENDEDFAILED202
PAYMENT_PROFILE_NOT_ACTIVEPAYMENT_PROFILE_NOT_ACTIVEFAILED202
PAYMENT_PROFILE_FRAUDULENTPAYMENT_PROFILE_FRAUDULENTFAILED202
TRANSFER_FAILEDTRANSFER_FAILEDFAILED202
AMOUNT_EXCEEDS_ORG_
SINGLE_DISBURSEMENT_LIMIT
AMOUNT_EXCEEDS_ORG_
SINGLE_DISBURSEMENT_LIMIT
FAILED202
AMOUNT_EXCEEDS_ORG_
DAILY_DISBURSEMENT_LIMIT
AMOUNT_EXCEEDS_ORG_
DAILY_DISBURSEMENT_LIMIT
FAILED429
AMOUNT_EXCEEDS_WORKER_
DAILY_DISBURSEMENT_LIMIT
AMOUNT_EXCEEDS_WORKER_
DAILY_DISBURSEMENT_LIMIT
FAILED202
AMOUNT_DOES_NOT_
COVER_USER_FEES
AMOUNT_DOES_NOT_
COVER_USER_FEES
FAILED202
UNEXPECTED_ERRORUNEXPECTED_ERRORFAILED202
PAYOUT_PENDINGPAYOUT_PENDINGPENDING202
SCHEDULEDnullSCHEDULED201
DUPLICATE_SCHEDULEDnullSCHEDULED200
COMPLETEDnullCOMPLETED201
DUPLICATE_COMPLETEDnullCOMPLETED200
CANCELEDnullCANCELED200
BAD_REQUESTnullnull400
INTERNAL_SERVER_ERRORnullnull500

Branch Direct Sandbox Debit Card

When testing Disbursements to Branch Direct users in the Branch sandbox, the TabaPay sandbox debit card backend will generate different scenarios depending on the net amount disbursed. For more detailed information about this behavior, visit here.

Test Amount Calculation

The testing amounts which trigger the following scenarios are derived by subtracting the fee from the total Disbursement.

Test Case Amount = Total Disbursement - Fee
(e.g. $0.02 amount = $2.02 total - $2.00 fee)

Testing Scenarios

  • Amount $0.01 will return a transaction error
  • Amount $0.02 will return an unknown processing failure
  • Amounts $0.03 and $0.04 will complete after pending for up to 40 seconds
  • Amounts from $0.05 to $0.25 will succeed
  • Amounts greater than $0.25 will exceed the max transaction limit for testing
  • The daily limit for total testing amounts is $10.00 per test card