Submit invoices to the Punjab Revenue Authority through one canonical TaxBridge API. Sandbox, production, authentication, error handling and logs — without studying the PRA API directly.
PRA covers sales tax on services in Punjab.
curl -X POST https://taxbridge.themetasum.com/api/v1/invoices \
-H "Authorization: Bearer tbk_test_9f3a21c7b4d6e8f0_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 0b6d1c4e-7f9a-4a51-8d3c-2e5f7a91b204" \
-H "X-Tax-Authority: PRA" \
-d '{
"invoiceNumber": "INV-10001",
"invoiceDate": "2026-08-10T10:30:00",
"invoiceType": "Sale",
"currency": "PKR",
"paymentMode": "Cash",
"customer": { "name": "Walk-in Customer" },
"items": [{
"description": "Chicken Karahi Full", "hsCode": "11001010",
"quantity": 1, "unitPrice": 1500.00,
"taxRate": 16, "taxAmount": 240.00, "total": 1740.00
}],
"subTotal": 1500.00, "tax": 240.00, "total": 1740.00
}'PRA API integration connects your software to the Punjab Revenue Authority fiscal system so that every sales invoice is submitted electronically and returns a verifiable PRA invoice number and QR value. With TaxBridge you integrate once against a canonical invoice API and TaxBridge handles the PRA-specific format, credentials and success codes.
PRA in one call
You send TaxBridge one canonical invoice. TaxBridge applies PRA’s field names, casing, money identity and success rules, then returns a single normalized result.
| Authority | Punjab Revenue Authority |
| Jurisdiction | Punjab |
| Covers | Sales tax on services |
| Header | X-Tax-Authority: PRA |
| Registration | reg.pra.punjab.gov.pk |
curl -X POST https://taxbridge.themetasum.com/api/v1/invoices \
-H "Authorization: Bearer tbk_test_9f3a21c7b4d6e8f0_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 0b6d1c4e-7f9a-4a51-8d3c-2e5f7a91b204" \
-H "X-Tax-Authority: PRA" \
-d '{
"invoiceNumber": "INV-10001",
"invoiceDate": "2026-08-10T10:30:00",
"invoiceType": "Sale",
"currency": "PKR",
"paymentMode": "Cash",
"customer": { "name": "Walk-in Customer" },
"items": [{
"description": "Chicken Karahi Full", "hsCode": "11001010",
"quantity": 1, "unitPrice": 1500.00,
"taxRate": 16, "taxAmount": 240.00, "total": 1740.00
}],
"subTotal": 1500.00, "tax": 240.00, "total": 1740.00
}'Four steps from account to your first approved PRA invoice.
Create your TaxBridge company and verify your email. An admin approves the company for production access.
Pick a plan for PRA and fill the credential form. For PRA: Your own numeric POS ID (required in both sandbox and production) plus a production Bearer token. The sandbox Bearer token is a shared public value TaxBridge already holds.
Generate a test or live key, optionally pinned to PRA. The full key is shown once and stored only as a hash.
Send your canonical invoice with X-Tax-Authority: PRA. Print the returned qrCode and keep the submissionId.
PRA has no shared sandbox POS ID — you generate your own on the PRA portal. A non-numeric POS ID is reported as a configuration error naming the exact field. Buyer PNTN is carried on the payload.
Your PRA credentials are AES-256-GCM encrypted at rest and never returned to your app.
Test PRA end-to-end before you hold production credentials.
PRA rejections come back as a single status with a readable authorityMessage.
Every PRA submission is logged with request, response and status for debugging.
Run many outlets under one company — each branch’s PRA submissions are tracked separately.
A repeated Idempotency-Key replays the stored PRA result with no double submission.
| HTTP | Meaning | What your code does |
|---|---|---|
201 | Approved by the authority | Print qrCode, store submissionId |
200 | Idempotent replay (duplicate:true) | Treat like the original — no quota consumed |
400 INVALID_INVOICE | Normalizer rejected it; details[] lists every problem | Fix and resubmit — no quota consumed |
402 QUOTA_EXCEEDED | Plan limit hit or subscription expired | Upgrade or renew |
409 DUPLICATE_INVOICE | Invoice number already approved for this authority + environment | Do not resubmit |
422 | Authority rejected it (status:"REJECTED") | Read authorityMessage, fix the data |
429 | Rate limit or sandbox soft cap | Honour Retry-After |
502 / 504 | Authority errored or timed out | Retry with the same Idempotency-Key |
Also integrating another province? See FBR · SRB · KPRA or the unified tax API.
Create a sandbox, store your PRA credentials and post a test invoice in minutes. Move to production when your data is verified.
Just register your business with Sum Cloud POS — it already files fiscal invoices to FBR, PRA, SRB and KPRA for you. No API, no development, nothing to connect or maintain. Start selling with compliant invoices out of the box.