1. Qorpy API Onboarding
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
      • Get Invoice QR Code
      • Update Invoice Payment Status
      • Get Sent Invoices
      • Get Sent Invoice Details
    • 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. Qorpy API Onboarding

Business Settings - Update

POST
{{baseUrl}}/{{stage}}/external/businesses/{{businessID}}/settings

Update Business Settings#

POST {{baseUrl}}/{{stage}}/external/businesses/{{businessID}}/settings
Purpose: Configure business-level settings including webhook notifications, QR code generation parameters.

Request#

Headers#

HeaderValueRequired
X-Business-KeybusinessKey✅
Content-Typeapplication/json✅

Path Parameters#

ParameterTypeDescription
businessIDstringYour business NRS ID

Body Parameters#

All fields are optional. Only include fields you want to update.
ParameterTypeDescription
webhookUrlstringHTTPS URL to receive invoice notifications (B2B transmissions, status updates)
webhookAuthstringAuthentication token/header value for webhook requests
qrCodePublicKeystringPublic key for QR code validation on invoices
qrCodeCertificatestringCertificate for QR code generation

Field Details#

webhookUrl & webhookAuth
Used to receive real-time notifications when invoices are transmitted (B2B) or status changes occur
Webhook payloads will include IRN, invoice status, and party details
webhookAuth sent as Authorization header in webhook requests to your endpoint
qrCodePublicKey & qrCodeCertificate
The Nigeria Revenue Service (NRS) issues cryptographic key pairs to each taxpayer for invoice QR code generation.
Key File Contents#
The provided .txt file contains the following:
Public Key
Certificate

Retrieving Your Keys#
Follow the steps outlined in the provided guide (see referenced screenshots) to extract:
Public Key
Certificate
image (8).png

image (9).png#

API Configuration#
Once retrieved, include these values as parameters in the business-settings endpoint.

Response#

Success (200)#

{
    "responseCode": "00",
    "responseMessage": "Completed successfully"
}
FieldDescription
responseCode00 = success, 106 = validation failed
responseMessageSuccess / Failed response

Errors#

400 - Validation Failed
{
  "responseCode": "106",
  "responseMessage": "Validation failed: webhookUrl must be a valid HTTPS URL"
}
Common causes:
URLs not HTTPS
Invalid URL format
Certificate/key format invalid
Field exceeds max length
401 - Unauthorized
{
  "responseCode": "03",
  "responseMessage": "Invalid or expired business key"
}
→ Verify Authorization header format and business key validity
404 - Business Not Found
{
  "responseCode": "02",
  "responseMessage": "Business not found with ID: {businessID}"
}
→ Check businessID in URL matches your registered NRS ID
500 - Internal Server Error
{
  "responseCode": "99",
  "responseMessage": "An internal error occurred while updating settings",
  "requestId": "req_xyz123"
}
→ Retry after 2-3 minutes. Contact support with requestId if persistent.

Example Requests#

Webhook Settings:
All Settings:

Webhook Configuration#

When configured, receive notifications for:
Invoice transmitted (B2B)
Status changes (ACCEPTED, REJECTED, PAID)
Validation errors
Webhook Payload Example:
{
  "event": "invoice.transmitted",
  "data": {
    "invoiceIRN": "IRN_7H3K9M2P4S6V8X1Z",
    "status": "TRANSMITTED"
  }
}
Requirements: Accept POST, return 200 within 5 seconds, verify webhookAuth header

Common Issues#

"webhookUrl must be HTTPS" → Only HTTPS supported
"Invalid certificate" → Use PEM format with BEGIN/END markers
"Logo not displaying" → Verify URL is publicly accessible
Webhook not firing → Check endpoint returns 200 and auth is correct

Security Notes#

⚠️ Store webhookAuth securely, rotate regularly
⚠️ Protect private keys for QR certificates
⚠️ All URLs must use HTTPS
⚠️ Validate webhook payloads before processing

Request

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200Success
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --globoff '{{baseUrl}}/{{stage}}/external/businesses/{{businessID}}/settings' \
--header 'X-Business-Key: {{businessKey}}' \
--header 'Content-Type: application/json' \
--data '{
    "webhookUrl": "",
    "webhookAuth": "",
    "qrCodePublicKey": "",
    "qrCodeCertificate": ""
}'
Response Response Example
{}
Modified at 2026-08-21 08:48:10
Previous
Regenerate Business Key
Next
Business Settings - Read
Built with