Disbursements

Bank Transfer Disbursements

Send money to bank accounts

Send money directly to bank accounts across 35+ Tanzanian banks.

Supported Banks

Snippe supports transfers to all major Tanzanian banks including:

  • CRDB Bank
  • NMB Bank
  • NBC Bank
  • DTB Bank
  • Standard Chartered
  • Stanbic Bank
  • Exim Bank
  • Equity Bank
  • And many more...

Create Bank Transfer

Send money to any bank account.

POST https://api.snippe.sh/v1/payouts/send
Authorization: Bearer <api_key>
Content-Type: application/json
Idempotency-Key: unique-request-id-789

Request

{
  "amount": 500000,
  "channel": "bank",
  "recipient_name": "ABC Company Ltd",
  "recipient_bank": "CRDB",
  "recipient_account": "0150123456789",
  "narration": "Invoice payment INV-2026-001",
  "metadata": {
    "invoice_id": "INV-2026-001"
  }
}

Response

{
  "status": 201,
  "data": {
    "object": "payout",
    "api_version": "2026-01-25",
    "id": "550e8400-e29b-41d4-a716-446655440002",
    "reference": "po_x9y8z7w6v5u4",
    "status": "pending",
    "source": "api",
    "channel": {
      "type": "bank",
      "provider": "crdb"
    },
    "recipient": {
      "name": "ABC Company Ltd",
      "phone": null,
      "bank": "CRDB",
      "account": "0150123456789"
    },
    "amount": {
      "value": 500000,
      "currency": "TZS"
    },
    "fees": {
      "value": 1500,
      "currency": "TZS"
    },
    "total": {
      "value": 501500,
      "currency": "TZS"
    },
    "narration": "Invoice payment INV-2026-001",
    "metadata": {
      "invoice_id": "INV-2026-001"
    },
    "created_at": "2026-01-24T10:00:00Z"
  }
}

Request Parameters

Required Fields

FieldTypeDescription
amountintegerAmount in smallest currency unit (TZS)
channelstringMust be bank
recipient_namestringFull name or company name
recipient_bankstringBank code (e.g., CRDB, NMB)
recipient_accountstringBank account number
narrationstringDescription/reason for payout

Optional Fields

FieldTypeDescription
metadataobjectCustom key-value data

Get Payout Status

GET https://api.snippe.sh/v1/payouts/{reference}
Authorization: Bearer <api_key>

Response

{
  "status": 200,
  "data": {
    "object": "payout",
    "api_version": "2026-01-25",
    "id": "550e8400-e29b-41d4-a716-446655440002",
    "reference": "po_x9y8z7w6v5u4",
    "external_reference": "TBP-987654321",
    "status": "completed",
    "source": "api",
    "channel": {
      "type": "bank",
      "provider": "crdb"
    },
    "recipient": {
      "name": "ABC Company Ltd",
      "phone": null,
      "bank": "CRDB",
      "account": "0150123456789"
    },
    "amount": {
      "value": 500000,
      "currency": "TZS"
    },
    "fees": {
      "value": 1500,
      "currency": "TZS"
    },
    "total": {
      "value": 501500,
      "currency": "TZS"
    },
    "narration": "Invoice payment INV-2026-001",
    "failure_reason": null,
    "completed_at": "2026-01-24T10:15:00Z",
    "created_at": "2026-01-24T10:00:00Z"
  }
}

List Payouts

GET https://api.snippe.sh/v1/payouts?channel=bank&limit=20
Authorization: Bearer <api_key>

Query Parameters

ParameterTypeDefaultDescription
limitinteger20Items per page (max 100)
offsetinteger0Pagination offset
statusstring-Filter by status
channelstring-Filter by channel (bank)
startstring-Start date (YYYY-MM-DD)
endstring-End date (YYYY-MM-DD)

Calculate Fee

GET https://api.snippe.sh/v1/payouts/fee?amount=500000
Authorization: Bearer <api_key>

Response

{
  "status": 200,
  "data": {
    "amount": 500000,
    "fee_amount": 1500,
    "total_amount": 501500,
    "currency": "TZS"
  }
}

Error Handling

Insufficient Balance

{
  "status": 400,
  "error": {
    "code": "insufficient_balance",
    "message": "Insufficient balance to process payout"
  }
}

Invalid Bank Code

{
  "status": 400,
  "error": {
    "code": "validation_error",
    "message": "Invalid bank code"
  }
}

Invalid Account Number

{
  "status": 400,
  "error": {
    "code": "validation_error",
    "message": "Invalid bank account number"
  }
}

Provider Error

{
  "status": 502,
  "error": {
    "code": "provider_error",
    "message": "Payment provider temporarily unavailable"
  }
}

Webhook Events

EventDescription
payout.completedPayout successful
payout.failedPayout failed
payout.reversedPayout reversed

On this page