Salami Gateway

API Documentation
Back to Dashboard

eTIMS Reverse Invoices API

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.

Table of Contents

  1. Overview
  2. Submit Reverse Invoice
  3. List Reverse Invoices
  4. Get Reverse Invoice
  5. Authorization Types
  6. Status Codes

Overview

Required Scopes

Scope Description
etims:read List and view reverse invoices
etims:write Submit reverse invoices

Endpoint Summary

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

What Is a Reverse Invoice?

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 Reverse Invoice

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

Item Fields

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"
}

List Reverse Invoices

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
  }
}

Get Reverse Invoice

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
  }
}

Authorization Types

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

IMPLICIT Authorization

EXPLICIT Authorization

When to use EXPLICIT:

Status Codes

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

Best Practices

  1. Verify supplier TIN -- Ensure the supplier TIN matches the original purchase
  2. Match original invoice -- Reference the correct trade invoice number
  3. Use IMPLICIT for routine -- Only use EXPLICIT when policy requires it
  4. Document reasons -- Always provide clear remarks for audit trail
  5. Reconcile with purchases -- Update your purchase records after processing

Related Documentation


Back to: eTIMS Credit Notes | eTIMS Verification


Need help? Contact us at support@dgl.co.ke
© 2026 Deadan Group Limited. All rights reserved.
⚡ API Explorer
LIVE
// Response will appear here...