Patron Codes
A Patron Code is an alternative to presenting a QR code where that option isn’t available
Contents
Models
Patron Code EXPERIMENTAL
Fields
Field | Type | Description |
---|---|---|
id | String | The Patron Code’s unique identifier. |
barcode | String | ✩ Field to display in barcode format. |
createdAt | Timestamp | Date when the Patron Code was created. |
expiresAt | Timestamp | Date when the Patron Code will expire. |
appName | String Optional | The app used to create the Patron Code. DEPRECATED |
accountId | String | The account id of the creator of the patron code. |
testScenarioName | String Optional | The Test Scenario Name of the Patron Code. |
✩ Barcode is a 16 digit number. The first 6 digits are a Centrapay defined prefix, then a 9 digit code, then a luhn checksum digit.
9 9 9 0 0 0 1 2 3 4 5 6 7 8 9 5 ❖ complete barcode
9 9 9 0 0 0 - - - - - - - - - - ❖ centrapay prefix
- - - - - - 1 2 3 4 5 6 7 8 9 - ❖ code
- - - - - - - - - - - - - - - 5 ❖ luhn checksum
The Centrapay Prefix may present any of the following prefixes:
- 121921
- 123000
- 282828
- 293000
- 321000
- 321123
- 636863
- 713131
- 765432
- 777000
- 839234
- 848484
- 888444
- 929394
- 987600
- 999000
Test Scenario Name
This field is used to inject behavior into a Payment Request when the generated barcode is supplied on creation. If a Test Scenario Name is defined on a Patron Code, it is considered a test resource and can only be used with Payment Requests that will have a liveness of ‘test’. The Asset Type centrapay.nzd.test
is required to run test scenarios.
name | description |
---|---|
force-condition-check-photo-id | The Payment Request will have a required Merchant Condition to check photo id. |
Operations
Creating a Patron Code EXPERIMENTAL
POST /
curl -X POST https://service.centrapay.com/api/patron-codes \
-H "Authorization: $jwt"
Example Response Payload
{
"id": "V17FByEP9gm1shSG6a1Zzx",
"accountId": "Jaim1Cu1Q55uooxSens6yk",
"barcode": "9990001234567895",
"createdAt": "2021-06-08T22:55:00.000Z",
"expiresAt": "2021-06-08T23:00:00.000Z",
"appName": "centrapay"
}
You can find payment request information attached to a Patron Code by polling for the Payment Request using the transacting APIs.
Retrieving a Patron Code
GET /
curl https://service.centrapay.com/api/patron-codes/V17FByEP9gm1shSG6a1Zzx \
-H "Authorization: $jwt"
Example Response Payload
{
"id": "V17FByEP9gm1shSG6a1Zzx",
"accountId": "Jaim1Cu1Q55uooxSens6yk",
"barcode": "9990001234567895",
"createdAt": "2021-06-08T22:55:00.000Z",
"expiresAt": "2021-06-08T23:00:00.000Z",
"appName": "centrapay"
}
Retrieving a Patron Code by Barcode
GET /
curl https://service.centrapay.com/api/patron-codes/barcode/9990001234567895 \
-H "X-Api-Key: $api_key"
Example Response Payload
{
"id": "V17FByEP9gm1shSG6a1Zzx",
"accountId": "Jaim1Cu1Q55uooxSens6yk",
"barcode": "9990001234567895",
"createdAt": "2021-06-08T22:55:00.000Z",
"expiresAt": "2021-06-08T23:00:00.000Z",
"appName": "centrapay"
}
Error Responses
Status | Code | Description |
---|---|---|
400 | CHECKSUM_ | Luhn checksum digit doesn’t pass. |
403 | PATRON_ | Patron Code doesn’t exist or it has expired. |