Payments

Payments

Money in or out, against a party. Always send an Idempotency-Key.

GET/payments/payments/

List payments received or paid.

Filters

directionstatuspartypayment_methodsessioncheque_statusdate_fromdate_tosearch

Combine any of these as query parameters. Also accepts cursor and page_size.

Fields on each result

id
integer
payment_no
string
payment_direction
string
party
integer
party_name
string
payment_method
integer
method_name
string
amount
decimal
currency_code
string
payment_date
datetime
status
string
cheque_status
string
reference_no
string
created_at
datetime

Errors

401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl https://api.tajirpoint.com/api/v1/payments/payments/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f"
Response · 200
{
  "next": "https://api.tajirpoint.com/api/v1/payments/payments/?cursor=cD0yMDI2LTA3LTExVDA5MTQyMlomcD00Mg",
  "previous": null,
  "results": [
    {
      "id": 42,
      "payment_no": "PAY-00131",
      "payment_direction": "payment direction",
      "party": 1,
      "party_name": "Bilal Traders",
      "payment_method": 1,
      "method_name": "Main Store",
      "amount": "2450.00",
      "currency_code": "PKR",
      "payment_date": "2026-07-11T09:14:21Z",
      "status": "active",
      "cheque_status": "cheque status",
      "reference_no": "DOC-00001",
      "created_at": "2026-07-11T09:14:22Z"
    }
  ]
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
POST/payments/payments/

Record a payment against a party. Money in from a customer, or out to a supplier — `direction` decides. Send an Idempotency-Key.

Body parameters

partyRequired
integer
payment_methodRequired
integer
amountRequired
decimal
payment_directionRequired
enum(in, out)* `in` - Inbound * `out` - Outbound
payment_dateRequired
datetime
reference_noOptional
string
cheque_noOptional
string
cheque_bankOptional
string
cheque_issue_dateOptional
string
notesOptional
string
gateway_transaction_idOptional
string
gateway_payment_intent_idOptional
string
wht_amountOptional
decimal
wht_certificate_noOptional
string
currency_codeOptional
string
exchange_rateOptional
decimal
sessionOptional
integerPOS session this payment was collected during (required for distribution-register reconciliation).
purchaseOptional
integerOptional Purchase ID — when set, the payment is allocated to that purchase and updates its paid_amount / balance_due / payment_status.
saleOptional
integerOptional Sale ID — when set, the payment is allocated to that sale and updates its paid_amount / balance_due / payment_status.
allocationsOptional
array of objectOptional list of explicit allocations to settle multiple documents from this single payment. Each item must reference a `sale` OR `purchase` id (belonging to this shop) plus an `amount`. When supplied, PaymentAllocation rows are created and each target document's paid_amount / balance_due / payment_status is advanced. References to nonexistent or foreign documents are rejected with 400.

Response fields

party
integer
payment_method
integer
amount
decimal
payment_direction
enum(in, out)* `in` - Inbound * `out` - Outbound
payment_date
datetime
reference_no
string
cheque_no
string
cheque_bank
string
cheque_issue_date
string
notes
string
gateway_transaction_id
string
gateway_payment_intent_id
string
wht_amount
decimal
wht_certificate_no
string
currency_code
string
exchange_rate
decimal
session
integerPOS session this payment was collected during (required for distribution-register reconciliation).
purchase
integerOptional Purchase ID — when set, the payment is allocated to that purchase and updates its paid_amount / balance_due / payment_status.
sale
integerOptional Sale ID — when set, the payment is allocated to that sale and updates its paid_amount / balance_due / payment_status.
allocations
array of objectOptional list of explicit allocations to settle multiple documents from this single payment. Each item must reference a `sale` OR `purchase` id (belonging to this shop) plus an `amount`. When supplied, PaymentAllocation rows are created and each target document's paid_amount / balance_due / payment_status is advanced. References to nonexistent or foreign documents are rejected with 400.

Errors

400Validation failed. `details` names the offending fields.
401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl -X POST https://api.tajirpoint.com/api/v1/payments/payments/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "party": 1,
    "payment_method": 1,
    "amount": "2450.00",
    "payment_direction": "in",
    "payment_date": "2026-07-11T09:14:21Z",
    "reference_no": "DOC-00001",
    "cheque_no": "DOC-00001",
    "cheque_bank": "Meezan Bank",
    "cheque_issue_date": "2026-07-11T09:14:22Z",
    "notes": ""
  }'
Response · 200 · 6 more fields below
{
  "party": 1,
  "payment_method": 1,
  "amount": "2450.00",
  "payment_direction": "in",
  "payment_date": "2026-07-11T09:14:21Z",
  "reference_no": "DOC-00001",
  "cheque_no": "DOC-00001",
  "cheque_bank": "Meezan Bank",
  "cheque_issue_date": "2026-07-11T09:14:22Z",
  "notes": "",
  "gateway_transaction_id": "ext_9f3b6c5d",
  "gateway_payment_intent_id": "ext_9f3b6c5d",
  "wht_amount": "0.00",
  "wht_certificate_no": "DOC-00001"
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
GET/payments/methods/

The payment methods this shop accepts — cash, card, bank transfer, wallet. You need a method id to record a payment.

Filters

directionstatuspartypayment_methodsessioncheque_statusdate_fromdate_tosearch

Combine any of these as query parameters. Also accepts cursor and page_size.

Fields on each result

id
integer
name
string
method_type
enum(cash, card, wallet, bank, online_gateway, cheque)* `cash` - Cash * `card` - Card * `wallet` - Wallet * `bank` - Bank * `online_gateway` - Online Gateway * `cheque` - Cheque
gateway_provider
string
config
string
is_active
boolean
requires_reference
boolean
sort_order
integer
created_at
datetime
updated_at
datetime

Errors

401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl https://api.tajirpoint.com/api/v1/payments/methods/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f"
Response · 200
{
  "next": "https://api.tajirpoint.com/api/v1/payments/methods/?cursor=cD0yMDI2LTA3LTExVDA5MTQyMlomcD00Mg",
  "previous": null,
  "results": [
    {
      "id": 42,
      "name": "Nescafé Classic 200g",
      "method_type": "cash",
      "gateway_provider": "gateway provider",
      "config": "config",
      "is_active": true,
      "requires_reference": false,
      "sort_order": 1,
      "created_at": "2026-07-11T09:14:22Z",
      "updated_at": "2026-07-11T09:14:22Z"
    }
  ]
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}