TaxStreem Logo
DOCS/FLUX/Vat Filing

Batch Filing

Submit multiple VAT transactions in a single request for processing and filing via the FLUX API. This endpoint is designed for high-volume or scheduled submissions, enabling efficient bulk processing.

Use this when:

  • You are filing VAT for multiple sales or invoices at once
  • You want to reduce API calls through aggregation
  • You are running scheduled or end-of-period filings

HTTP Request

POSThttps://api.taxstreem.com/v1/flux/vat-filing/batch

Request Body

The following parameters are required for this action.

ParameterTypeDescription
batchIdstringUnique identifier for the batch.
payloadarrayList of single filing objects (encryptedPayload, month, year, vatStatus, item, amount, narration, taxId, beneficiary).

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

PropertyValue
AlgorithmAES-256-GCM
Key DerivationSHA-256(sharedSecret)
IV (Nonce)12 bytes (96-bit) random
Auth Tag16 bytes (128-bit)
EncodingBase64

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/vat-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": [
           {
               "vatStatus": 1,
               "amount": 5000,
               "item": "Baby diapers",
               "narration": "Bought kisskid diaper",
               "taxId": "2345544-0001",
               "beneficiary": "Retail Customer"
           }
        ]
      }
          ]
     }
Example Response
202 Accepted
{
  "status": "accepted",
  "message": "schedule accepted successfully",
  "data": {
    "id": "xaee2ddf-effvkfes",
    "created_at": "2026-02-20T10:00:00Z"
  }
}