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

Request Business Key

POST
{{baseUrl}}/{{stage}}/external/request-business-key
The Qorpy API enables businesses to integrate with Nigeria's National Revenue Service (NRS) eInvoicing system. This documentation covers the business onboarding process, which is the first step in your integration journey.
POST {{baseURL}}/{{stage}}/external/request-business-key

Integration Workflow#

Screenshot 2026-02-12 at 16.04.31.png

Purpose#

This endpoint registers your business with Qorpy's eInvoicing system and generates a unique Business Key that serves as your authentication credential for all subsequent API operations. You must complete this onboarding step before submitting e-Invoices.

Prerequisites#

Before calling this endpoint, ensure you have:
✅ Registered your business with FIRS (Federal Inland Revenue Service)
Screenshot 2026-02-12 at 16.33.55.png
✅ Selected Qucoon Limited as your preferred Access Point
image (5).png
✅ Obtained your business FIRS Entity ID and FIRS Business ID
image (4).png

Authentication#

This endpoint does not require authentication. It is publicly accessible to allow new businesses to onboard. However, all fields are validated against FIRS records, and fraudulent requests will be rejected.

Request Specification#

HTTP Headers#

HeaderValueRequiredDescription
Content-Typeapplication/json✅Indicates JSON request body
Acceptapplication/json or */*✅Specifies acceptable response format

Request Body Parameters#

ParameterTypeRequiredMax LengthValidationDescription
businessAddressstring✅200Non-emptyComplete business address including building number/name
businessAddressLgstring✅50Must match valid LGALocal Government Area (LGA) where business is located, refer to resources folder
businessAddressStreetNamestring✅100Non-emptyStreet name of the business address
businessCitystring✅50Non-emptyCity/Town where business operates
businessCountrystring✅2ISO 3166-1 alpha-2Country code, refer to resources folder
businessFirsIdstring✅36UUID v4 formatFIRS-issued business ID
businessPostalCodestring✅106-digit numericNigerian postal code (e.g., "101241")
businessStatestring✅50Must match valid stateNigerian state where business is registered
contactEmailstring✅100Valid email formatPrimary contact email for API notifications and business key delivery
entityFirsIdstring✅50Alphanumeric + hyphensFIRS-issued entity ID

Response Specification#

Success Response (HTTP 200)#

{
    "responseCode": "00",
    "responseMessage": "Business successfully registered for external API access.",
    "businessKey": "BK-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-DEV-XXXXXXXXXXXX",
    "businessFirsId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX"
}

Response Fields#

FieldTypeDescription
businessFirsIdstringEcho of your business FIRS ID for confirmation
businessKeystringYour unique API authentication key - Store this securely!
responseCodestringApplication-level status code (see codes below)
responseMessagestringHuman-readable description of the result

Response Codes#

CodeMeaningAction Required
00SuccessBusiness key generated successfully. Store the key securely.
01SuccessBusiness taxpayer ID not found in FIRS system.
02Duplicate RequestBusiness already registered. Use existing business key.
106FIRS Verification FailedProvided FIRS credentials don't match FIRS records.
Important: The responseCode is separate from HTTP status codes. A 200 OK HTTP response can still contain error details in the responseCode field.

Error Responses#

HTTP 400 - Bad Request#

Cause: Invalid or missing required parameters
{
  "responseCode": "106",
  "responseMessage": "Validation failed: businessFirsId must be a valid format"
}
Common Validation Errors:
Invalid email format in contactEmail
Inaccurate businessFirsId
businessState not matching valid Nigerian states
businessPostalCode not a 6-digit number
businessCountry not "NG"

HTTP 401 - Unauthorized#

Cause: FIRS credentials verification failed
{
    "responseCode": "04",
    "responseMessage": "Requested business ID not found under this taxpayer account",
    "businessKey": null,
    "businessFirsId": null
}
Resolution Steps:
1.
Verify your businessFirsId matches your FIRS Tax Identification Number
2.
Confirm your entityFirsId matches your CAC registration with FIRS
3.
Contact FIRS if credentials are correct but still failing
4.
Ensure your business registration is active and not suspended

HTTP 500 - Internal Server Error#

Cause: Server-side processing error
{
  "responseCode": "99",
  "responseMessage": "An internal error occurred while processing your request",
  "requestId": "req_7h3k9m2p4s6v8x1z",
  "timestamp": "2026-02-12T10:30:45Z"
}
Resolution:
1.
Retry the request after 2-3 minutes
2.
If error persists after 3 attempts, contact support with the requestId

HTTP 503 - Service Unavailable#

Cause: API maintenance or service unavailable
{
  "responseCode": "99",
  "responseMessage": "Service temporarily unavailable. Please try again later.",
  "retryAfter": 300,
  "timestamp": "2026-02-12T10:30:45Z"
}
Resolution:
Wait for the duration specified in retryAfter (in seconds)

Using Your Business Key#

Once you receive your business key, use it for authentication in all subsequent API requests.
Security Best Practices:
✅ Store business key in environment variables or secure vault (e.g., AWS Secrets Manager, Azure Key Vault)
✅ Never commit business keys to version control

Test Credentials#

Use your FIRS test values in the development environment:

Troubleshooting Guide#

Issue: "FIRS verification failed"#

Problem: Credentials don't match FIRS records
Checklist:
Is your business registration active with FIRS?
Have you selected Qucoon as your preferred Access Point on FIRS ?
Have you recently updated business details with FIRS? (Allow 48 hours for sync)
Is the entityFirsId accurate ?
Did you use the correct businessFirsId?

Compliance & Legal#

Data Privacy#

Your business information is:
Encrypted in transit (TLS 1.3) and at rest (AES-256)
Stored in Nigerian data centers compliant with NDPR (Nigeria Data Protection Regulation)
Shared only with FIRS for verification purposes

Terms of Use#

By using this API, you agree to:
Provide accurate business information
Use business keys only for legitimate tax reporting
Not share or transfer business keys to unauthorized parties
Comply with all NRS eInvoicing regulations

Document Version: 1.2.0
Last Updated: February 12, 2026
API Version: v1

Request

Query Params

Body Params application/json

Examples

Responses

🟢200OK
application/json
Bodyapplication/json

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --globoff '{{baseUrl}}/{{stage}}/external/request-business-key?stage={{stage}}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "businessFirsId": "your-business-id-from-FIRS-here",
  "entityFirsId": "your-entity-id-from-FIRS-here",
  "contactEmail": "info@example.com",
  "businessAddress": "123 Commerce Plaza",
  "businessAddressLg": "NG-LA-EOS",
  "businessAddressStreetName": "Adeola Odeku Street",
  "businessCity": "Victoria Island",
  "businessState": "NG-LA",
  "businessCountry": "NG",
  "businessPostalCode": "101241"
}'
Response Response Example
{
    "responseCode": "00",
    "responseMessage": "Business successfully registered for external API access.",
    "businessKey": "BK-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-DEV-XXXXXXXXXXXX",
    "businessFirsId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX"
}
Modified at 2026-02-18 12:22:26
Previous
Frequently Asked Questions
Next
Regenerate Business Key
Built with