TaxStreem Logo
DOCS/flux/wht-filing

Batch WHT Filing

Authentication Required

Include your API key in the x-api-key header of every request.

The Batch WHT Filing API remits Withholding Tax deducted from multiple vendor payments in a single request. Ideal for accounts-payable workflows that accumulate many WHT deductions before a single monthly remittance run.

Integration Flow

  1. 1Encrypt Credentials: Generate one encryptedPayload for the entire batch.
  2. 2Assemble the Batch: Collect all WHT deduction records into the data array.
  3. 3Handle Result: Track the wht.filing.success webhook for final confirmation.

HTTP Request

POSThttps://api.taxstreem.com/v1/wht/filing/batch

Request Body

Top-level parameters for the batch request.

ParameterTypeRequiredDescription
encryptedPayloadstringRequiredAES-256-GCM encrypted credentials covering the entire batch. See Encryption Guide.
filingIdstringRequiredUnique idempotency key for this batch. Prevents duplicate remittances.
monthnumberRequiredNumeric month of the payment period. Valid values: 1โ€“12.
yearnumberRequired4-digit year for the payment period.
dataarrayRequiredArray of WHT deduction objects. Each object follows the single filing schema (see below).

data[ ] โ€” WHT Item Schema

FieldTypeRequiredDescription
beneficiarystringRequiredFull legal name of the payee.
taxIdstringRequiredBeneficiary's Tax ID. Use "0" if unregistered.
amountnumberRequiredGross payment amount before WHT deduction.
withholdingTaxRatenumberRequiredWHT percentage (e.g. 5 for 5%).
natureOfTransactionstringRequiredNature of payment (e.g. Consulting, Rent, Dividends).
narrationstringOptionalDetailed description for audit trail.

Encrypted Payload

One encryptedPayload covers all items in the batch.

Response

Returns 202 Accepted on success. Listen for the wht.filing.success webhook for final confirmation.

Example Request
curl -X POST https://api.taxstreem.com/v1/wht/filing/batch \
  -H "x-api-key: txsm_test_SK489c..." \
  -H "Content-Type: application/json" \
  -d '{
   "encryptedPayload": "encrypted_string_a1b2c3...",
   "filingId": "wht-batch-123-90",
   "month": 3,
   "year": 2024,
   "data": [
      {
         "beneficiary": "Vendor Inc",
         "taxId": "1234567890123123",
         "amount": 50000,
         "withholdingTaxRate": 5,
         "natureOfTransaction": "Consulting",
         "narration": "Q1 consulting"
      },
      {
         "beneficiary": "Acme Ltd",
         "taxId": "9876543210987654",
         "amount": 120000,
         "withholdingTaxRate": 10,
         "natureOfTransaction": "Rent",
         "narration": "Office rent March"
      }
   ]
}'
Example Response
202 Accepted
{
ย ย "status": "accepted",
ย ย "message": "schedule accepted successfully",
ย ย "data": {
ย ย ย ย "id": "wht-batch-xaee2ddf",
ย ย ย ย "created_at": "2026-02-20T10:00:00Z"
ย ย }
}