Manage reverse invoices (supplier-side invoice reversals) in eTIMS. Reverse invoices handle scenarios where a supplier issues a corrected or cancelled invoice that your business needs to acknowledge.
| Scope | Description |
|---|---|
etims:read |
List and view reverse invoices |
etims:write |
Submit reverse invoices |
| Method | Endpoint | Description | Scope |
|---|---|---|---|
POST |
/api/etims/reverse-invoices/submit |
Submit a reverse invoice | etims:write |
GET |
/api/etims/reverse-invoices |
List all reverse invoices | etims:read |
GET |
/api/etims/reverse-invoices/{id} |
Get reverse invoice details | etims:read |
A reverse invoice (also called a debit note from the supplier's perspective) is generated when:
Unlike credit notes (which you issue for your own sales), reverse invoices are for purchase-side corrections from suppliers.
Submit a reverse invoice to acknowledge a supplier's invoice correction.
Endpoint: POST /api/etims/reverse-invoices/submit
Required Scope: etims:write
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
invc_no |
integer | No | KRA invoice number (if known) |
trd_invc_no |
string | Yes | Trade/supplier invoice number |
spplr_tin |
string | Yes | Supplier's KRA PIN/TIN |
spplr_nm |
string | Yes | Supplier name |
spplr_bhf_id |
string | No | Supplier's branch ID (default: 00) |
rcpt_ty_cd |
string | No | Receipt type code (default: R) |
pmt_ty_cd |
string | No | Payment type code |
auth_type |
string | No | Authorization type (default: IMPLICIT) |
sales_dt |
string | No | Original sale date (YYYY-MM-DD) |
remark |
string | No | Additional remarks |
items |
array | Yes | Items being reversed |
| Field | Type | Required | Description |
|---|---|---|---|
item_seq |
integer | Yes | Line item sequence |
item_code |
string | Yes | Item code |
item_name |
string | Yes | Item name |
quantity |
number | Yes | Quantity being reversed |
unit_price |
number | Yes | Unit price |
tax_type |
string | Yes | Tax type code |
Request:
curl -X POST \
https://yourtenant.salami.dgl.co.ke/api/etims/reverse-invoices/submit \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"trd_invc_no": "SUP-INV-2026-001",
"spplr_tin": "P051234567B",
"spplr_nm": "Premium Furniture Suppliers Ltd",
"auth_type": "IMPLICIT",
"sales_dt": "2026-03-25",
"remark": "Supplier corrected pricing error on original invoice",
"items": [
{
"item_seq": 1,
"item_code": "RAW001",
"item_name": "Raw Material A",
"quantity": 10,
"unit_price": 800.00,
"tax_type": "B"
}
]
}'
Response:
{
"success": true,
"data": {
"id": 78,
"invc_no": null,
"trd_invc_no": "SUP-INV-2026-001",
"spplr_tin": "P051234567B",
"spplr_nm": "Premium Furniture Suppliers Ltd",
"auth_type": "IMPLICIT",
"total_items": 1,
"total_taxable_amount": 6896.55,
"total_tax_amount": 1103.45,
"total_amount": 8000.00,
"status": "submitted",
"submitted_at": "2026-03-29T17:00:00Z"
},
"message": "Reverse invoice submitted successfully"
}
Retrieve all reverse invoices.
Endpoint: GET /api/etims/reverse-invoices
Required Scope: etims:read
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
spplr_tin |
string | No | Filter by supplier TIN |
status |
string | No | Filter by status |
start_date |
string | No | Filter from date |
end_date |
string | No | Filter to date |
page |
integer | No | Page number |
per_page |
integer | No | Results per page |
Request:
curl -X GET \
'https://yourtenant.salami.dgl.co.ke/api/etims/reverse-invoices?spplr_tin=P051234567B' \
-H 'Authorization: Bearer YOUR_API_TOKEN'
Response:
{
"success": true,
"data": [
{
"id": 78,
"trd_invc_no": "SUP-INV-2026-001",
"spplr_tin": "P051234567B",
"spplr_nm": "Premium Furniture Suppliers Ltd",
"total_amount": 8000.00,
"total_tax_amount": 1103.45,
"auth_type": "IMPLICIT",
"status": "submitted",
"submitted_at": "2026-03-29T17:00:00Z"
}
],
"pagination": {
"total": 1,
"per_page": 50,
"current_page": 1,
"last_page": 1
}
}
Retrieve details of a specific reverse invoice.
Endpoint: GET /api/etims/reverse-invoices/{id}
Required Scope: etims:read
Request:
curl -X GET \
https://yourtenant.salami.dgl.co.ke/api/etims/reverse-invoices/78 \
-H 'Authorization: Bearer YOUR_API_TOKEN'
Response:
{
"success": true,
"data": {
"id": 78,
"invc_no": null,
"trd_invc_no": "SUP-INV-2026-001",
"spplr_tin": "P051234567B",
"spplr_nm": "Premium Furniture Suppliers Ltd",
"spplr_bhf_id": "00",
"rcpt_ty_cd": "R",
"pmt_ty_cd": "02",
"auth_type": "IMPLICIT",
"sales_dt": "2026-03-25",
"total_items": 1,
"tax_breakdown": {
"A": {"taxable": 0, "tax": 0},
"B": {"taxable": 6896.55, "tax": 1103.45},
"C": {"taxable": 0, "tax": 0},
"D": {"taxable": 0, "tax": 0},
"E": {"taxable": 0, "tax": 0}
},
"total_taxable_amount": 6896.55,
"total_tax_amount": 1103.45,
"total_amount": 8000.00,
"remark": "Supplier corrected pricing error on original invoice",
"status": "submitted",
"submitted_at": "2026-03-29T17:00:00Z",
"confirmed_at": null
}
}
Reverse invoices can use two authorization modes:
| Type | Description | Use Case |
|---|---|---|
IMPLICIT |
Automatically authorized | Standard reversals; no additional approval needed |
EXPLICIT |
Requires explicit authorization | High-value reversals; requires manual confirmation |
pending statusWhen to use EXPLICIT:
| Code | Description |
|---|---|
200 |
Success |
401 |
Invalid Salami token |
403 |
Token lacks required scope |
404 |
Reverse invoice not found |
422 |
Validation error |
502 |
KRA eTIMS server error |
Back to: eTIMS Credit Notes | eTIMS Verification