Verify a payslip barcode payload
const url = 'https://verify.verifiabl.io/v1/verifications/payload';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"barcode":"2|n5waC35dPCoRtMXW5_gJqw|JVSWY3DPO5XXE3DE"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://verify.verifiabl.io/v1/verifications/payload \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "barcode": "2|n5waC35dPCoRtMXW5_gJqw|JVSWY3DPO5XXE3DE" }'Authenticates, decrypts, and verifies a supported barcode representation.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Examples
Barcode or PDF metadata text
{ "barcode": "2|n5waC35dPCoRtMXW5_gJqw|JVSWY3DPO5XXE3DE"}Pre-parsed payload
{ "verifiabl_reference": "n5waC35dPCoRtMXW5_gJqw", "ciphertext": "Q2lwaGVydGV4dA"}Responses
Section titled “ Responses ”The barcode was decrypted and verified.
object
object
object
Examples
Verified Australian payslip
{ "verified": true, "verifiabl_reference": "n5waC35dPCoRtMXW5_gJqw", "employee": { "employee_name": "Jane A. Doe", "position": "Senior Developer", "department": "Engineering", "employer_abn": "12345678901", "bsb": "062-000", "account_number": "12345678", "account_name": "Jane A. Doe", "address": "12 Example St, Sydney NSW 2000" }, "payslip": { "schema": "au.payslip.v1", "issued_at": "2026-04-04T00:00:00.000Z", "payslip_non_pii": { "period_start": "2026-03-21", "period_end": "2026-04-03", "payment_date": "2026-04-04", "currency": "AUD", "pay_frequency": "fortnightly", "gross_cents": 360000, "taxable_gross_cents": 340000, "paygw_cents": 75200, "net_cents": 268250, "ytd_gross_cents": 4320000, "ytd_paygw_cents": 902400, "earnings": [ { "type": "ordinary", "units": 76, "rate_cents": 4000, "amount_cents": 304000 }, { "type": "overtime", "units": 4, "rate_cents": 6000, "amount_cents": 24000 }, { "type": "allowance", "allowance_type": "tools", "amount_cents": 4000 }, { "type": "paid_leave", "leave_type": "other_paid_leave", "amount_cents": 28000 } ], "salary_sacrifice": [ { "type": "super", "amount_cents": 20000 } ], "deductions": [ { "type": "other_post_tax", "amount_cents": 4550 } ], "superannuation": [ { "contribution_type": "superannuation_guarantee", "amount_cents": 39840, "usi": "STA0100AU" }, { "contribution_type": "salary_sacrifice", "amount_cents": 20000, "usi": "STA0100AU" } ], "reimbursements_cents": 8000 } }, "decrypted_at": "2026-06-09T09:10:11.123Z"}The request is invalid, or the barcode ciphertext cannot be authenticated.
object
object
Examples
The request failed strict validation
{ "error": "Validation failed", "code": "VALIDATION_FAILED", "field_errors": [ { "path": "barcode", "message": "Unrecognised barcode format" } ]}The barcode ciphertext could not be authenticated
{ "error": "Decryption failed", "code": "DECRYPTION_FAILED"}The bearer token is missing or invalid.
object
object
Examples
The bearer token is missing or invalid.
{ "error": "Unauthorized", "code": "UNAUTHORIZED"}The authenticated principal cannot use this operation.
object
object
Examples
The authenticated principal cannot use this operation.
{ "error": "Forbidden", "code": "FORBIDDEN"}No record exists for the Verifiabl reference.
object
object
Examples
No record exists for the Verifiabl reference.
{ "error": "Record not found for the provided Verifiabl reference", "code": "VERIFIABL_REFERENCE_NOT_FOUND"}The JSON request body exceeds the route limit.
object
object
Examples
The JSON request body exceeds the route limit.
{ "error": "Request body too large", "code": "PAYLOAD_TOO_LARGE"}The request Content-Type is not supported.
object
object
Examples
The request Content-Type is not supported.
{ "error": "Unsupported media type", "code": "UNSUPPORTED_MEDIA_TYPE"}No live decryption key is available for the record.
object
object
Examples
No live decryption key is available for the record.
{ "error": "Decryption is not available for this record", "code": "KEY_VERSION_UNAVAILABLE", "detail": "Contact support."}The request exceeded an IP or client rate limit.
object
object
Examples
The request exceeded an IP or client rate limit.
{ "error": "Too many requests", "code": "RATE_LIMITED", "detail": "Retry after the rate limit resets."}Headers
Section titled “Headers”Seconds to wait before retrying.
Example
60An unexpected internal error occurred.
object
object
Examples
An unexpected internal error occurred.
{ "error": "Internal server error", "code": "INTERNAL_ERROR"}A required service dependency or configuration is unavailable.
object
object
Examples
A required service dependency or configuration is unavailable.
{ "error": "Service temporarily unavailable", "code": "SERVICE_UNAVAILABLE", "detail": "Please retry with exponential backoff."}Headers
Section titled “Headers”Seconds to wait before retrying.
Example
5