Stored invoices

List Stored Invoices

List STORED-mode invoices scoped to the authenticated parent and approved test/live state. Unknown or repeated query fields are rejected.

GET
/invoices
x-api-key<token>

The API key generated for your business in Duplo Dashboard. The credential's ipWhitelisted setting is enforced end to end on the customer-facing custom-domain Gateway routes in this public contract. A trusted edge overwrites the configured client-IP header and Gateway carries that verified address over its authenticated internal hop; caller-supplied X-Forwarded-For values are never trusted. An empty IP allowlist permits any source. When an allowlist is configured, a missing, malformed, or nonmatching verified client address is rejected with HTTP 403.

In: header

Query Parameters

page?integer
Default1
Range1 <= value <= 1000000
limit?integer
Default20
Range1 <= value <= 100
firsStatus?string

Optional exact regulator-processing status filter.

Value in"submitted" | "signed" | "approved" | "rejected" | "pending" | "validated"

Header Parameters

X-Request-ID?string

Optional caller correlation metadata. Gateway creates a new authoritative request ID, returns it in the response X-Request-ID header and Problem Details requestId, and propagates that generated value to its dependencies.

Match^[A-Za-z0-9][A-Za-z0-9._:-]*$
Length1 <= length <= 128

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/invoices" \  -H "X-Request-ID: erp-run-20260916-0042"
{
  "data": {
    "items": [
      {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "gatewaySubBusinessId": "string",
        "businessState": "test",
        "invoiceNumber": "string",
        "systemInvoiceNumber": "string",
        "invoiceReferenceNumber": "string",
        "invoiceType": "380",
        "billingReferences": [
          {
            "irn": "string",
            "issueDate": "2019-08-24"
          }
        ],
        "issueDate": "2019-08-24",
        "taxPointDate": "2019-08-24",
        "documentCurrency": "NGN",
        "taxCurrency": "NGN",
        "paymentStatus": "pending",
        "paymentDate": "2019-08-24",
        "customer": {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "reference": "string",
          "modules": [
            "string"
          ],
          "firstName": "string",
          "lastName": "string",
          "email": "string",
          "phone": "string",
          "tin": "string",
          "country": "string",
          "state": "string",
          "city": "string",
          "address": "string",
          "postcode": "string",
          "createdAt": "2019-08-24T14:15:22Z",
          "updatedAt": "2019-08-24T14:15:22Z"
        },
        "customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac",
        "supplierData": {
          "name": "string",
          "email": "user@example.com",
          "phoneNumber": "string",
          "tin": "string",
          "country": "string",
          "state": "string",
          "city": "string",
          "address": "string",
          "postcode": "string"
        },
        "payeeData": {
          "name": "string",
          "email": "user@example.com",
          "phoneNumber": "string",
          "tin": "string",
          "country": "string",
          "state": "string",
          "city": "string",
          "address": "string",
          "postcode": "string"
        },
        "taxRepresentativeData": {
          "name": "string",
          "email": "user@example.com",
          "phoneNumber": "string",
          "tin": "string",
          "country": "string",
          "state": "string",
          "city": "string",
          "address": "string",
          "postcode": "string"
        },
        "invoiceLineItems": [
          {
            "lineNumber": 1,
            "description": "string",
            "quantity": 0,
            "unitPrice": 0,
            "unit": "string",
            "itemAmount": 0,
            "productCategory": "string",
            "hsnCode": "string",
            "serviceCategory": "string",
            "isicCode": "string",
            "allowances": [
              {
                "id": "string",
                "kind": "allowance",
                "valueType": "fixed",
                "value": 0,
                "amount": 0,
                "description": "string"
              }
            ],
            "charges": [
              {
                "id": "string",
                "kind": "allowance",
                "valueType": "fixed",
                "value": 0,
                "amount": 0,
                "description": "string"
              }
            ],
            "allowanceTotal": 0,
            "chargeTotal": 0,
            "netAfterAllowance": 0,
            "taxes": [
              {
                "name": "string",
                "rate": 0,
                "amount": 0
              }
            ],
            "taxAmount": 0,
            "lineTotalExcludingTax": 0,
            "lineTotalIncludingTax": 0
          }
        ],
        "discountData": {
          "type": "percentage",
          "value": 0,
          "amount": 0
        },
        "subtotalAmount": 0,
        "taxTotal": 0,
        "allowanceTotal": 0,
        "chargeTotal": 0,
        "totalAmount": 0,
        "amountDue": 0,
        "status": "draft",
        "firsStatus": "submitted",
        "firsRejectionReason": "string",
        "qrCodeData": "string",
        "qrCodeImageUrl": "http://example.com",
        "direction": "outbound",
        "incomingAction": "pending",
        "incomingActionAt": "2019-08-24T14:15:22Z",
        "incomingRejectionReason": "string",
        "transmissionStatus": "not_sent",
        "notes": "string",
        "paymentTerms": "string",
        "paymentDetails": {
          "type": "local",
          "accountName": "string",
          "accountNumber": "string",
          "bankName": "string",
          "swiftCode": "string",
          "bankAddress": "string",
          "routingNumber": "string",
          "intermediaryBankName": "string",
          "intermediaryBankAddress": "string",
          "correspondentSwiftCode": "string",
          "correspondentBankName": "string",
          "additionalInformation": "string"
        },
        "createdAt": "2019-08-24T14:15:22Z",
        "updatedAt": "2019-08-24T14:15:22Z"
      }
    ],
    "meta": {
      "total": 0,
      "page": 1,
      "limit": 1,
      "count": 0,
      "previousPage": true,
      "nextPage": true,
      "pageCount": 0,
      "totalRecords": 0
    }
  },
  "statusCode": 200,
  "message": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 400,
  "detail": "string",
  "instance": "http://example.com",
  "code": "GW_REQUEST_INVALID_JSON",
  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",
  "timestamp": "2019-08-24T14:15:22Z",
  "action": {
    "code": "string",
    "description": "string",
    "documentation": "http://example.com"
  },
  "retry": {
    "strategy": "DO_NOT_RETRY",
    "sameIdempotencyKey": true,
    "afterSeconds": 0
  },
  "errors": [
    {
      "location": "header",
      "field": "string",
      "pointer": "string",
      "code": "REQUIRED",
      "detail": "string"
    }
  ],
  "operationId": "string",
  "message": "string",
  "statusCode": 0,
  "path": "string"
}

How is this guide?

Last updated on