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_tosearchCombine any of these as query parameters. Also accepts cursor and page_size.
Fields on each result
FieldType & description
idinteger
payment_nostring
payment_directionstring
partyinteger
party_namestring
payment_methodinteger
method_namestring
amountdecimal
currency_codestring
payment_datedatetime
statusstring
cheque_statusstring
reference_nostring
created_atdatetime
Errors
CodeWhen it happens
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
FieldType & description
partyRequiredinteger
payment_methodRequiredinteger
amountRequireddecimal
payment_directionRequiredenum(in, out)* `in` - Inbound
* `out` - Outbound
payment_dateRequireddatetime
reference_noOptionalstring
cheque_noOptionalstring
cheque_bankOptionalstring
cheque_issue_dateOptionalstring
notesOptionalstring
gateway_transaction_idOptionalstring
gateway_payment_intent_idOptionalstring
wht_amountOptionaldecimal
wht_certificate_noOptionalstring
currency_codeOptionalstring
exchange_rateOptionaldecimal
sessionOptionalintegerPOS session this payment was collected during (required for distribution-register reconciliation).
purchaseOptionalintegerOptional Purchase ID — when set, the payment is allocated to that purchase and updates its paid_amount / balance_due / payment_status.
saleOptionalintegerOptional Sale ID — when set, the payment is allocated to that sale and updates its paid_amount / balance_due / payment_status.
allocationsOptionalarray 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
FieldType & description
partyinteger
payment_methodinteger
amountdecimal
payment_directionenum(in, out)* `in` - Inbound
* `out` - Outbound
payment_datedatetime
reference_nostring
cheque_nostring
cheque_bankstring
cheque_issue_datestring
notesstring
gateway_transaction_idstring
gateway_payment_intent_idstring
wht_amountdecimal
wht_certificate_nostring
currency_codestring
exchange_ratedecimal
sessionintegerPOS session this payment was collected during (required for distribution-register reconciliation).
purchaseintegerOptional Purchase ID — when set, the payment is allocated to that purchase and updates its paid_amount / balance_due / payment_status.
saleintegerOptional Sale ID — when set, the payment is allocated to that sale and updates its paid_amount / balance_due / payment_status.
allocationsarray 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
CodeWhen it happens
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_tosearchCombine any of these as query parameters. Also accepts cursor and page_size.
Fields on each result
FieldType & description
idinteger
namestring
method_typeenum(cash, card, wallet, bank, online_gateway, cheque)* `cash` - Cash
* `card` - Card
* `wallet` - Wallet
* `bank` - Bank
* `online_gateway` - Online Gateway
* `cheque` - Cheque
gateway_providerstring
configstring
is_activeboolean
requires_referenceboolean
sort_orderinteger
created_atdatetime
updated_atdatetime
Errors
CodeWhen it happens
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."]
}
}
}