TaxStreem Logo
DOCS/flux/wht-filing

Single WHT Filing

Authentication Required

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

The Single WHT Filing API remits Withholding Tax deducted from a single vendor payment. Use this endpoint when your system triggers one WHT deduction at a time โ€” for example, at the point of approving a vendor invoice.

Integration Flow

  1. 1Encrypt Credentials: Generate encryptedPayload with your TaxPromax credentials.
  2. 2Submit Payment Details: Include beneficiary info, gross amount, and the applicable WHT rate.
  3. 3Handle Result: Track the wht.filing.success webhook for the final state.

HTTP Request

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

Request Body

ParameterTypeRequiredDescription
encryptedPayloadstringRequiredAES-256-GCM encrypted TaxPromax credentials. See Encryption Guide.
filingIdstringRequiredUnique idempotency key for this WHT filing. Prevents duplicate remittances.
monthnumberRequiredNumeric month of the payment period. Valid values: 1โ€“12.
yearnumberRequired4-digit year for the payment period.
beneficiarystringRequiredFull legal name of the payee (vendor or contractor) from whom WHT was deducted.
taxIdstringRequiredBeneficiary's Tax Identification Number. Use "0" if the beneficiary is not registered.
amountnumberRequiredGross payment amount before WHT deduction.
withholdingTaxRatenumberRequiredWHT percentage applicable to the transaction (e.g. 5 for 5%, 10 for 10%).
natureOfTransactionstringRequiredNature of the payment (e.g. Consulting, Rent, Dividends, Commission).
narrationstringOptionalDetailed description of the payment for audit trail purposes.

Encrypted Payload

The encryptedPayload must contain a Base64-encoded AES-256-GCM encrypted JSON with your email and password.

Response

Returns 202 Accepted on success. The WHT remittance is processed asynchronously โ€” listen for the wht.filing.success or wht.filing.failed webhook event.

HTTP StatusError KeyCause & Resolution
400Bad RequestMissing fields or invalid WHT rate. Check the errors array.
401UnauthorizedMissing or invalid x-api-key.
429Too Many RequestsRate limit exceeded. Use exponential backoff.
Example Request
curl -X POST https://api.taxstreem.com/v1/wht/filing/single \
  -H "x-api-key: txsm_test_SK489c..." \
  -H "Content-Type: application/json" \
  -d '{
   "encryptedPayload": "encrypted_string_a1b2c3...",
   "filingId": "wht-123-abuiod-90",
   "month": 3,
   "year": 2024,
   "beneficiary": "Vendor Inc",
   "taxId": "1234567890123123",
   "amount": 50000,
   "withholdingTaxRate": 5,
   "natureOfTransaction": "Consulting",
   "narration": "Q1 consulting services payment"
}'
Example Response
202 Accepted
{
ย ย "status": "accepted",
ย ย "message": "schedule accepted successfully",
ย ย "data": {
ย ย ย ย "id": "wht-xaee2ddf-effvkfes",
ย ย ย ย "created_at": "2026-02-20T10:00:00Z"
ย ย }
}