DOCS/FLUX/Wht Filing
Batch Filing
Submit multiple Withholding Tax (WHT) transactions in one request for processing and filing via the FLUX API. This endpoint is ideal for bulk vendor payments or periodic WHT remittance.
Use this when:
- You are filing WHT for multiple vendors or payments
- You are processing payroll, contracts, or bulk disbursements
- You want efficient, consolidated tax filing
HTTP Request
POSThttps://api.taxstreem.com/v1/flux/wht-filing/batch
Request Body
The following parameters are required for this action.
| Parameter | Type | Description |
|---|---|---|
| batchId | string | Unique identifier for the batch. |
| payload | array | List of single filing objects (encryptedPayload,month,year, beneficiaryName, beneficiaryTin, transactionDate, transactionDesc, transactionAmount, rate, taxAmount, scheduleReference). |
Encrypted Payload (In-Flight Encryption)
FLUX requires sensitive credentials to be encrypted at the application layer before transmission. This provides defense-in-depth on top of HTTPS.
The encryptedPayload field must contain a Base64-encoded AES-256-GCM encrypted JSON object.
Encryption Specification
| Property | Value |
|---|---|
| Algorithm | AES-256-GCM |
| Key Derivation | SHA-256(sharedSecret) |
| IV (Nonce) | 12 bytes (96-bit) random |
| Auth Tag | 16 bytes (128-bit) |
| Encoding | Base64 |
Payload Format
The final transmitted value must be:
Base64( IV[12] || Ciphertext || AuthTag[16] )
- IV is randomly generated per request
- Ciphertext is encrypted JSON
- AuthTag is automatically appended by GCM
Example Request
curl -X POST https://api.taxstreem.com/v1/flux/wht-filing/batch \
-H "x-api-key: txsm_test_SK489c..." \
-H "Content-Type: application/json" \
-d {
"batchId": "batch_123",
"payload": [
{
"encryptedPayload": 'encrypted_string_...',
"filingId": '123-abuiod-90',
"month": 1,
"year": 2024,
"data": [
{"beneficiaryName": "John Doe","beneficiaryTin": "2345544-0001","transactionDate": "2024-03-20","transactionDesc": "Consultancy Services","transactionAmount": 50000,"rate": 5,"taxAmount": 2500,"scheduleReference": "REF-123456"}
]
}
]
}
Example Response
202 Accepted
{
"status": "accepted",
"message": "schedule accepted successfully",
"data": {
"id": "xaee2ddf-effvkfes",
"created_at": "2026-02-20T10:00:00Z"
}
}