Skip to content

Printable PDF slip

Every successful verification entitles you to unlimited printable slips at ₦0 per print. The platform exposes two server-rendered PDF variants you can stream back to the customer at any time.

GET /api/v1/verify/slip/{transaction_id} — Personal Info slip
GET /api/v1/verify/slip/premium/{transaction_id} — Premium NIN slip (front + back)

ParamTypeNotes
transaction_idstringThe identifier returned in the verify response. You can pass any of: data.transaction_id (NIMC’s 21-digit ID), data.reference_id (our REF-XXXXXXXX form), or our internal DB row id if you happen to have it. The endpoint resolves all three against the same record.
Terminal window
curl https://api.randaverify.com/api/v1/verify/slip/430542871707201461583 \
-H "Authorization: Bearer $TOKEN" \
-o personal-slip.pdf

A streaming application/pdf body. The Content-Disposition header sets attachment; filename=Personal_Slip_<tx>.pdf (or Premium_Slip_<tx>.pdf for the premium variant), so a browser would download rather than render inline — your backend should usually re-stream this to your customer with whatever filename or disposition you prefer.

₦0 — every time, forever. Generating a PDF slip does not debit your wallet. You can render the same transaction’s slip a thousand times and pay nothing — you only pay for the underlying verification.

PathVariantWhat it looks like
/api/v1/verify/slip/{tx_id}Personal Info SlipA4 portrait, full personal-info table layout, NIMC + Coat of Arms header. Best for archival / KYB packs.
/api/v1/verify/slip/premium/{tx_id}Premium NIN SlipID-card-sized landscape design with photo, QR code, and front/back layout. Best for handing to the cardholder.

The Regular and Improved slip variants visible in the officer portal are generated client-side at print time and are not currently exposed as server-rendered endpoints — open a feature request if you need them.

StatusWhenRecover by
400The transaction exists but has no usable data (e.g. an old record before normalisation)Re-query the verification first to refresh the stored data, then retry the slip endpoint.
401Token missing or expiredRe-authenticate.
404transaction_id does not match any verification on your orgVerify the ID. Slip endpoints are org-scoped — you cannot fetch another org’s slips.
500PDF rendering failed (typically a wkhtmltopdf issue on our side)Retry once. If persistent, contact support with the transaction ID.

The caller must have the IDENTITY role (the same role required to run a verification in the first place). Re-fetching your own org’s slips never requires special permissions.