Receipts

Receipts are POS-style documents. A SHORT receipt can be issued immediately at point-of-sale. If the buyer provides tax identification, it can later be converted to a FULL receipt (which generates a full tax invoice).

Receipt Types and Statuses

TypeStatusesDescription
SHORTSHORT_ACTIVE, SHORT_CANCELLEDIssued at POS without buyer tax ID
FULLFULL_PENDINGFULL_SUBMITTINGFULL_ACKNOWLEDGED / FULL_FAILEDFull tax receipt with buyer info

POST /api/v1/receipts

Create a new receipt (SHORT or FULL).

POST /api/v1/receipts

Headers

HeaderRequiredDescription
X-API-KeyYour API key
X-Idempotency-KeyUnique key per request
Content-Typeapplication/json

Request Body

FieldTypeRequiredNotes
sourceIdstringYour source code
receiptTypeenumSHORT or FULL
receiptDatestringYYYY-MM-DD
receiptNostringAuto-generated if omitted
sellerobjectSee Seller fields
buyerobjectFULL onlyRequired when receiptType=FULL
amountExVatnumberAmount excluding VAT
vatAmountnumberVAT amount
totalAmountnumberMust equal amountExVat + vatAmount + shippingCost - discountAmount
discountAmountnumberDefault: 0
shippingCostnumberDefault: 0
itemsarrayLine items (name, quantity, unitPrice, lineTotal)
paymentReceivednumberAmount tendered
changeAmountnumberMust equal paymentReceived - totalAmount
metadataobjectFree-form key-value

Seller fields: taxId (13-digit), name, branchCode (5-digit), address, phone?, email?

Buyer fields (FULL): taxId (13-digit), name, branchCode (5-digit), address

Example — SHORT Receipt

curl -X POST https://dev-etax.siamprop.app/api/v1/receipts \
  -H "X-API-Key: sk_etax_your_key" \
  -H "X-Idempotency-Key: idem-rcpt-2026-001" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceId": "TESTSRC",
    "receiptType": "SHORT",
    "receiptDate": "2026-03-09",
    "seller": {
      "taxId": "0101234567890",
      "name": "ACME Co., Ltd.",
      "branchCode": "00000",
      "address": "99 Sukhumvit Rd, Bangkok 10110"
    },
    "amountExVat": 1000,
    "vatAmount": 70,
    "totalAmount": 1070,
    "items": [
      { "name": "Product A", "quantity": 1, "unitPrice": 1000, "lineTotal": 1000 }
    ]
  }'

Response — 201 Created

{
  "id": "01KK9PJC7M9QZJF4X5R2Y59MSM",
  "receiptType": "SHORT",
  "receiptNo": "RCPT-20260309-0001",
  "status": "SHORT_ACTIVE"
}

GET /api/v1/receipts/:id

GET /api/v1/receipts/{receiptId}?sourceId=TESTSRC

Query Parameters

ParameterRequiredDescription
sourceIdYour source code

Example

curl "https://dev-etax.siamprop.app/api/v1/receipts/01KK9PJC7M9QZJF4X5R2Y59MSM?sourceId=TESTSRC" \
  -H "X-API-Key: sk_etax_your_key"

GET /api/v1/receipts

List receipts.

GET /api/v1/receipts?sourceId=TESTSRC&page=1&limit=20
ParameterRequiredDefaultDescription
sourceIdYour source code
receiptTypeallSHORT or FULL
statusallFilter by status
receiptNoFilter by receipt number
fromDateYYYY-MM-DD
toDateYYYY-MM-DD
page1
limit20Max 100

POST /api/v1/receipts/:id/convert-to-full

Convert a SHORT receipt to a FULL receipt by providing buyer tax information.

POST /api/v1/receipts/{receiptId}/convert-to-full

Request Body

FieldTypeRequiredNotes
sourceIdstringYour source code
buyerobjectBuyer tax info (taxId, name, branchCode, address). buyer.taxId is required to generate a full tax invoice.
fullReceiptDatestringOverride receipt date (YYYY-MM-DD)

Example

curl -X POST "https://dev-etax.siamprop.app/api/v1/receipts/01KK9PJC7M9QZJF4X5R2Y59MSM/convert-to-full" \
  -H "X-API-Key: sk_etax_your_key" \
  -H "X-Idempotency-Key: idem-conv-2026-001" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceId": "TESTSRC",
    "fullReceiptDate": "2026-03-09",
    "buyer": {
      "taxId": "0109876543210",
      "name": "Beta Corp Co., Ltd.",
      "branchCode": "00001",
      "address": "55 Silom Rd, Bangkok 10500"
    }
  }'

Error Cases

errorCodeHTTPCause
RECEIPT_NOT_SHORT422Receipt is not in SHORT_ACTIVE status
RECEIPT_ALREADY_CONVERTED422Already converted to full
RECEIPT_BUYER_TAX_INFO_REQUIRED422Buyer tax ID required
DUPLICATE_RECEIPT409Idempotency key conflict