Patron Codes

A Patron Code is an alternative to presenting a QR code where that option isn’t available.

Attributes

  • 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

    stringdeprecated

    The app used to create the Patron Code.

  • accountId

    string

    The account id of the creator of the patron code.

  • testScenarioName

    string

    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.

Barcode Breakdown
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  API  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  API  centrapay.nzd.test is required to run test scenarios.

NameDescription
force-condition-check-photo-idThe Payment Request will have a required Merchant Condition  API  to check photo id.

POST/api/patron-codes

This endpoint allows you to create a Patron Code. You can find payment request information attached to a Patron Code by polling for the Payment Request  API  using the transacting APIs.

Request
POST/api/patron-codes
curl -X POST \
 https://service.centrapay.com/api/patron-codes \
 -H 'authorization: <TOKEN>'
Response
{
  "id": "V17FByEP9gm1shSG6a1Zzx",
  "accountId": "Jaim1Cu1Q55uooxSens6yk",
  "barcode": "9990001234567895",
  "createdAt": "2021-06-08T22:55:00.000Z",
  "expiresAt": "2021-06-08T23:00:00.000Z",
  "appName": "centrapay"
}

GET/api/patron-codes/{patronCodeId}

This endpoint allows you to retrieve a Patron Code by id.

Request
GET/api/patron-codes/V17FByEP9gm1shSG6a1Zzx
curl -X GET \
 https://service.centrapay.com/api/patron-codes/V17FByEP9gm1shSG6a1Zzx \
 -H 'x-api-key: <TOKEN>'
Response
{
  "id": "V17FByEP9gm1shSG6a1Zzx",
  "accountId": "Jaim1Cu1Q55uooxSens6yk",
  "barcode": "9990001234567895",
  "createdAt": "2021-06-08T22:55:00.000Z",
  "expiresAt": "2021-06-08T23:00:00.000Z",
  "appName": "centrapay"
}

GET/api/patron-codes/barcode/{barcode}

This endpoint allows you to retrieve a Patron Code by barcode.

Errors

  • CHECKSUM_FAILED

    400

    Luhn checksum digit doesn’t pass.

  • PATRON_CODE_INVALID

    403

    Patron Code doesn’t exist or it has expired.

Request
GET/api/patron-codes/barcode/9990001234567895
curl -X GET \
 https://service.centrapay.com/api/patron-codes/barcode/9990001234567895 \
 -H 'x-api-key: <TOKEN>'
Response
{
  "id": "V17FByEP9gm1shSG6a1Zzx",
  "accountId": "Jaim1Cu1Q55uooxSens6yk",
  "barcode": "9990001234567895",
  "createdAt": "2021-06-08T22:55:00.000Z",
  "expiresAt": "2021-06-08T23:00:00.000Z",
  "appName": "centrapay"
}