1. E-Invoice Creation
Qorpy
  • Getting Started: Qorpy API and NRS E-Invoice
  • Frequently Asked Questions
  • Qorpy API Onboarding
    • Request Business Key
      POST
    • Regenerate Business Key
      POST
    • Business Settings - Update
      POST
    • Business Settings - Read
      GET
  • E-Invoicing Lifecycle
    • E-Invoice Creation
      • Create Invoice
        POST
      • Get Invoice QR Code
        GET
      • Update Invoice Payment Status
        POST
      • Get Sent Invoices
        GET
      • Get Sent Invoice Details
        GET
    • E-Invoice Reversal
      • Invoice Reversal
    • E-Invoice Receipt
      • Fetch Received Invoices
  • Resources
    • Get NRS Invoice Quantity Codes
      GET
    • Get NRS Currencies
      GET
    • Get NRS States
      GET
    • Get NRS LGAs
      GET
    • Get NRS Countries
      GET
    • Get NRS Invoice Types
      GET
    • Get NRS Payment Means
      GET
    • Get NRS Product Codes
      GET
    • Get NRS Service Codes
      GET
    • Get NRS Tax Categories
      GET
  1. E-Invoice Creation

Update Invoice Payment Status

POST
{{baseUrl}}/{{stage}}/external/businesses/{{businessId}}/invoices/update-payment/{{invoiceIrn}}
Update the payment status of an existing invoice to PENDING, PAID, or REJECTED.
POST {{baseUrl}}/{{stage}}/external/businesses/{{businessId}}/invoices/update-payment/{{invoiceIrn}}?invoiceStatus={{status}}

Request#

Headers#

HeaderValueRequired
Content-Typeapplication/json or */*Yes
Acceptapplication/json or */*Yes
X-Business-KeybusinessKeyYes

Path Parameters#

ParameterTypeRequiredDescription
businessIdstring (UUID)YesYour business FIRS ID
invoiceIrnstringYesInvoice Reference Number

Query Parameters#

ParameterTypeRequiredAllowed Values
invoiceStatusstringYesPENDING, PAID, REJECTED
Payment Status Values:
PENDING - Invoice awaiting payment
PAID - Invoice fully paid
REJECTED - Payment declined or rejected

Response#

Success (200)#

{
  "responseCode": "00",
  "responseMessage": "Success"
}
FieldDescription
responseCode"00" = success
responseMessageStatus update confirmation

Errors#

404 - Invoice Not Found
{
  "responseCode": "404",
  "responseMessage": "Invoice not found with IRN: INV999-INVALID"
}
→ Verify invoiceIrn exists and belongs to businessId
400 - Invalid Status
{
  "responseCode": "400",
  "responseMessage": "Invalid status value"
}
→ Use only PENDING, PAID, or REJECTED
403 - Unauthorized
{
  "responseCode": "403",
  "responseMessage": "Unauthorized: Business ID doesn't match invoice owner"
}
→ Ensure correct businessId matches invoice owner
422 - Invalid Transition
{
  "responseCode": "422",
  "responseMessage": "Status change not permitted"
}
→ Check current invoice status and business rules

Example Requests#

Mark as Paid:
Mark as Pending:
Mark as Rejected:

Status Transitions#

Typical Flow:
PENDING → PAID (payment received)
PENDING → REJECTED (payment declined)
REJECTED → PENDING (retry payment)
Note: Changing PAID back to PENDING may require special permissions

Common Issues#

"Invoice not found"
→ Verify IRN format and business ownership
"Status change not permitted"
→ Cannot change PAID invoices back to PENDING without authorization
Status not updating
→ Check invoice is not cancelled or in final state

Best Practices#

✅ Log updates - Maintain audit trail of status changes
✅ Verify first - Check invoice exists before updating
✅ Handle errors - Implement proper error handling for failed updates
✅ Reconcile regularly - Match payment status with actual payment records

Security Notes#

⚠️ Validate business ownership before status updates
⚠️ Maintain audit logs of who updated status and when
⚠️ Implement rate limiting to prevent abuse

Request

Query Params

Header Params

Responses

🟢200Success
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --globoff --request POST '{{baseUrl}}/{{stage}}/external/businesses/{{businessId}}/invoices/update-payment/{{invoiceIrn}}?invoiceStatus=PAID&invoiceStatus={{status}}' \
--header 'X-Business-Key: BK-26EDE24BAC50475FAACC5EA6339F0863-DEV-B2Z6QCEHI3X9' \
--header 'Accept: */*' \
--header 'Content-Type: application/json'
Response Response Example
{}
Modified at 2026-08-21 08:50:04
Previous
Get Invoice QR Code
Next
Get Sent Invoices
Built with