APIs
Seamless
Integration
API Preview
{
"trnx_id": "1234567890",
"total_tax_value": 150,
"total_value": 1150,
"tax_payer_tin": "7777788993",
"info": {
"ItemList": [
{
"ItemCode": "1111",
"ProductDescription": "item1",
"PreTaxValue": 1000,
"TaxAmount": 150
}
]
}
}Example of the data structure provided by our public API. Includes transaction IDs, tax totals, and detailed itemization for smooth backend integration.
Authentication
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/authenticate -u adc_erp_api:kJTFH+l?vjC34qfY -H "Content-Type: application/json" -d '{
"tin_no": "0026716178",
"client": "ERP"
}'
Response (important fields):
{
"status": 0,
"message": "success",
"data": {
"access_token": "5072763a-879b-426c-bcac...",
"expires_in": 3600
}
}Retrieve a bearer token for the taxpayer TIN so subsequent transaction requests can be authenticated securely.
Registration
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/receive_request -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"tax_payer_tin": "0026716178",
"client": "ERP",
"trnx_id": "TRNXPORTAL0003",
"device_id": "0964400970",
"Type": "INV",
"Date": "29-03-2026T13:04:00",
"Mode": "CASH",
"TransactionType": "B2C",
"info": {
"ItemList": [{ ... }],
"ValueDetails": { ... }
}
}'
Response (important fields):
{
"statusCode": 200,
"message": "SUCCESS",
"body": {
"irn": "test93d00...",
"status": "A",
"documentNumber": "893",
"signedInvoice": "[base64 signature]"
}
}Invoice registration without buyer details for B2C transactions. The response returns the IRN, document number, and signed invoice payload.
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/receive_request -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"tax_payer_tin": "0026716178",
"client": "ERP",
"trnx_id": "TRNXPORTALB2B1",
"device_id": "0964400970",
"Type": "INV",
"Date": "28-03-2026T11:13:00",
"Mode": "CASH",
"TransactionType": "B2B",
"info": {
"ItemList": [{ ... }],
"ValueDetails": { ... },
"BuyerDetails": { ... }
}
}'
Response (important fields):
{
"statusCode": 200,
"message": "SUCCESS",
"body": {
"irn": "test93d00...",
"status": "A",
"documentNumber": "893",
"signedInvoice": "[base64 signature]"
}
}Invoice registration with buyer detail payload for B2B transactions. This includes the buyer identity block in the request body.
Credit note without buyer details
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/receive_request -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"Type": "CRE",
"RelatedDocument": "<previous_irn>",
"TransactionType": "B2C",
"info": { "ItemList": [{ ... }], "ValueDetails": { ... } }
}'
Response (important fields):
{
"statusCode": 200,
"message": "SUCCESS",
"body": {
"irn": "test6fd89...",
"status": "A",
"documentNumber": "4335",
"signedInvoice": "[base64 signature]"
}
}Credit note registration links back to the original document and returns a new IRN for the reversal entry.
Credit note with buyer details
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/receive_request -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"Type": "CRE",
"RelatedDocument": "<previous_irn>",
"TransactionType": "B2B",
"info": {
"ItemList": [{ ... }],
"ValueDetails": { ... },
"BuyerDetails": { ... }
}
}'
Response (important fields):
{
"statusCode": 200,
"message": "SUCCESS",
"body": {
"irn": "test6fd89...",
"status": "A",
"documentNumber": "4335",
"signedInvoice": "[base64 signature]"
}
}Same credit-note flow as above, but with a buyer details block included for B2B processing.
Debit note without buyer details
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/receive_request -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"Type": "DEB",
"RelatedDocument": "<previous_irn>",
"TransactionType": "B2C",
"info": { "ItemList": [{ ... }], "ValueDetails": { ... } }
}'
Response (important fields):
{
"statusCode": 200,
"message": "SUCCESS",
"body": {
"irn": "testcdc0e...",
"status": "A",
"documentNumber": "682",
"signedInvoice": "[base64 signature]"
}
}Debit note registration creates a linked adjustment document for the referenced invoice.
Debit note with buyer details
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/receive_request -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"Type": "DEB",
"RelatedDocument": "<previous_irn>",
"TransactionType": "B2B",
"info": {
"ItemList": [{ ... }],
"ValueDetails": { ... },
"BuyerDetails": { ... }
}
}'
Response (important fields):
{
"statusCode": 200,
"message": "SUCCESS",
"body": {
"irn": "testcdc0e...",
"status": "A",
"documentNumber": "682",
"signedInvoice": "[base64 signature]"
}
}The debit-note request can also carry buyer details so both B2B and B2C adjustments are supported.
Cancellation & Receipts
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/cancel -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"invoice_irn": "<registered_irn>",
"trnx_id": "TRNXCAN0001",
"Date": "2025-12-24",
"Mode": "CASH",
"document_no": 1,
"TransactionType": "B2B",
"invoice_type": "invoice"
}'
Response (important fields):
{
"statusCode": 200,
"message": "Success",
"body": {
"cancellationDate": "Fri Jan 09 08:38:30 GMT 2026"
}
}Cancel a registered invoice using its IRN and document number. The response confirms the cancellation timestamp.
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/sales_receipt -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"InvoicePaidAmount": 1000,
"trnx_id": "TRNXREC000001",
"ReceiptDate": "2025-12-24",
"invoice_document_no": "1",
"invoice_total_amount": 1150,
"InvoiceIRN": "<registered_irn>",
"PaymentCoverage": "FULL",
"RemainingAmount": 0,
"TransactionType": "B2B"
}'
Response (important fields):
{
"statusCode": 200,
"message": "Success",
"body": {
"status": "A",
"rrn": "test372b8...",
"qr": "[encoded qr payload]"
}
}Record a sales receipt against a previously registered invoice and receive an RRN and QR payload for the receipt.
curl -X POST --insecure https://trcp-2.adc.com.et/trcp_test/withholding -H "Content-Type: application/json" -H "Authorization: Bearer <access_token>" -d '{
"tax_payer_tin": "0026716178",
"client": "ERP",
"device_id": "0964400970",
"trnx_id": "TRNXWTH00001",
"invoice_buyer_tin": "0026716178",
"invoice_date": "2025-12-24",
"PreTaxAmount": 10000,
"WithholdingAmount": 3000,
"invoice_irn": "<registered_irn>"
}'
Response (important fields):
{
"statusCode": 200,
"message": "Success",
"body": {
"status": "A",
"rrn": "testdb87...",
"qr": "[encoded qr payload]"
}
}Submit withholding details for the referenced invoice and receive the resulting receipt reference and QR code.