PayXpert - User documentation
Concert V3
- 1 1) Dictionary of Tags used in the protocol
- 2 2) Examples
- 2.1 Debit (Cancellation, Refund or Duplicata) Transaction and no tickets in reponse
- 2.2 Debit (Cancelation, Refund/Credit or Duplicata) Transaction and only Customer ticket in response
- 2.3 Duplicata - Print a duplicata
- 2.4 Identification of the terminal - Ping request to terminal
- 2.5 Printing of a personalized ticket by the terminal
1) Dictionary of Tags used in the protocol
Naming rules
A* type Tags are terminal elements
B* type Tags are cash register elements
C* type Tags are cash register and terminal elements
Z* type Tags are constructed elements composed of A*, B*, and/or C tags
List of Tags in the protocol
Type | Length | Meaning | Protocol version |
---|---|---|---|
variable, max 64 | PAN | 0320 | |
fixed, 4 | Expiration date | 0320 | |
variable, max 10 | Authorization number | 0320 | |
fixed, 2 | Status of the action | 0320 | |
variable, 2-50 | Complementary value to the Status of the action | 0320 | |
variable, max 32 | Application ID (AID) of the card | 0320 | |
variable, max 900 | Ticket data | 0320 | |
fixed, 1 | Type of PAN | 0320 | |
fixed, 1 | Response delay | 0320 | |
fixed, 20 | Shopper’s phone number from cash register | 0320 | |
fixed, 256 | Shopper’s email from cash register | 0320 | |
fixed, 2 | Cash register number | 0320 | |
variable, 2-12 | Amount | 0320 | |
fixed, 1 | Type of action | 0320 | |
fixed, 3 | Currency code | 0320 | |
variable, 1-99 | This field is reserved for private use | 0320 | |
fixed, 1 | How card was read | 0320 | |
fixed, 12 | Cash Register Protocol identifier | 0320 | |
fixed, 3 | 'Print ticket?' selection | 0320 | |
fixed, 4 | Protocol Version used | 0320 | |
variable, max 999 | Constructed Tag for the ticket | 0320 |
Description of each Tag in detail
Tag AA - PAN
PAN | ||
---|---|---|
AA | Variable length. Max 64 | PAN (primary account number) of the card |
Processing on cash register side:
| ||
Processing on terminal side: | ||
Remarks: Transmission is not secure. | ||
Example - PAN is 0165017677122000674 | AA016***********0674 |
Tag AB - Expiration date
Expiration date | ||
---|---|---|
AB | Fixed length. 4 | Expiration date of the card |
Processing on cash register side:
| ||
Processing on terminal side: An application can return the expiration date of the card being used in the transaction (YYMM format). | ||
Remarks:
| ||
Example - Expiration date is 03/16 | AB0041603 |
Tag AC - Authorization number
Authorization number | ||
---|---|---|
AC | Variable length. Max 10 | Authorization number |
Processing on cash register side:
| ||
Processing on terminal side: PayXpress can return your bank’s identifier of the given authorization transaction. | ||
Remarks:
| ||
Example - Authorization nº is A00395 | AC006A00395 |
Tag AE - Status of the action
Status of the action | ||
---|---|---|
AE | Fixed length. 2 | Status of the action being performed on the terminal |
Processing on cash register side:
| ||
Processing on terminal side: ‘01’ = Operation not performed | ||
Remarks: 01: Operation not performed because of a network error, or PayXpress is busy. PayXpress can be busy if there is another process which is running / another transaction ongoing. This answer could also be given if the app is not in the foreground (but rather, it has been pushed to the background). | ||
Example - The operation has not been performed | AE00201 |
Tag AF - Complementary info to the status of the action
Complementary info to the status of the action | ||
---|---|---|
AF | Variable length. 2-50 | Additional information to the status |
Processing on cash register side:
| ||
Processing on terminal side: The terminal can provide additional information to the overall status of the action: ‘00’ - Unknown – If error is unknown by PayXpress. Could be a technical issue. Not a nominal scenario. | ||
Remarks: We send the response after processing the transaction. | ||
Example - Cancelled | AF00207 |
Tag AI - AID of the card
AID of the card | ||
---|---|---|
AI | Variable length. Max 32 | Application ID of the card |
Processing on cash register side:
| ||
Processing on terminal side: An application can send the AID of the card that performed the transaction. | ||
Remarks:
| ||
Example - An example AID | AI014A0000000041010 |
Tag AK - Ticket data
Ticket data | ||
---|---|---|
AK | Variable length. Max 900 | Generic data to include on ticket |
Processing on cash register side: Printing the ticket. | ||
Processing on terminal side: This Tag is included in the constructed Tag ZT. It is composed of the ticket data. | ||
Remarks: This Tag is a generic ticket data container. And may contain, depending on the case, merchant ticket data, cardholder ticket data, or another type of data. The format of the Tag CK that accompanies this Tag in the constructed Tag determines the type of data and its format. | ||
Example: See this example |
|
Tag AL - PAN type
PAN type | ||
---|---|---|
AL | Fixed length. 1 | Gives us the type of PAN returned by reading the card |
Processing on cash register side:
| ||
Processing on terminal side: Returned PAN type is always '1' = a Partial PAN. | ||
Remarks: This Tag is optional. | ||
Example - An example response: | AL0011 |
Tag BA - Response delay
Response delay | ||
---|---|---|
BA | Fixed length. 1 | Response delay |
Processing on cash register side: By default, set this field to 0 (response at the end of the transaction). | ||
Processing on terminal side: List of terminal response times:
| ||
Remarks: If this field is omitted, the default value is taken into account (Response at the end of the transaction). | ||
Example - The cash register needs an immediate response | BA0011 |
Tag BH - Shopper mobile phone from cash register
Shopper’s mobile phone number from cash register | ||
---|---|---|
BH | Variable length. 8-20 | Shopper’s mobile phone number |
Processing on cash register side: Mobile number with the possibility of transmitting an extension for international numbers. | ||
Processing on terminal side: | ||
Remarks:
| ||
Example | BH0100625698925 |
Tag BI - Shopper email address from cash register
Shopper’s email number from cash register | ||
---|---|---|
BI | Variable length. 6-256 | Shopper’s email address |
Processing on cash register side: The email address of the shopper as input or appearing on the cash register (x@x.xx). | ||
Processing on terminal side: | ||
Remarks:
| ||
Example | BI023LaurentDupont@gmail.com |
Tag CA - Cash register number
Cash register number | ||
---|---|---|
CA | Fixed length. 2 | Cash register nº. |
Processing on cash register side: The cash register indicates its own cash register number in this Tag. Field composed of numeric characters: ‘0’ to ‘9’ | ||
Processing on terminal side: | ||
Remarks: This Tag is managed exclusively by the cash register. This number is not intended to be printed on the transaction ticket. This value is stored in “MerchantIdentifier” in PayXpress. | ||
Example - The cash register number is 1 | CA00201 |
Tag CB - Amount
Amount | ||
---|---|---|
CB | Variable length. 2-12 | Transaction amount expressed in smallest way with 0’s to the left |
Processing on cash register side: Indicate an amount >= 0. | ||
Processing on terminal side: | ||
Remarks: This Tag is managed exclusively by the cash register. This number is not intended to be printed on the transaction ticket. | ||
Example - The amount = 1,50 Example - Amount = 235,70 | CB003150 CB00523570 |
Tag CD - Operation type
Operation type | ||
---|---|---|
CD | Fixed length. 1 | Defines the type of operation requested by the cash register |
Processing on cash register side:
| ||
Processing on terminal side:
List of types of Selection/Input Actions:
| ||
Remarks: If the type of operation cannot be carried out, the terminal responds with ‘Status: Operation not carried out’ and in the complementary info Tag AF ‘Type of action requested unknown’. In the case of printing a buffer (ASCII encoded base 64) sent by the cash register, the tag CD with type of action ‘P’ will be completed with a constructed Tag ZT containing the buffer to be printed. | ||
Example - Perform a debit. See example | CD0010 CD001C |
Tag CE - Currency code
Currency code | ||
---|---|---|
CE | Fixed length. 3 | Numerical code of the currency to be transacted |
Processing on cash register side: Indicate in three digits (ISO 4217) the currency code corresponding to the amount mentioned in the amount field. | ||
Processing on terminal side:
If the terminal does not support the requested currency, it responds with 'Operation not performed'. | ||
Remarks: This Tag is mandatory for all financial transactions. In response, the terminal indicates the currency actually used for the transaction (it may be different). | ||
Example - the amount is in EUR | CE003978 |
Tag CF - Field reserved for private use
Private field | ||
---|---|---|
CF | Variable length. 1-99 | Private data destined for PayXpress or to be sent back to the cash register in the response message |
Processing on cash register side: Indicate the data you want to transmit to PayXpress. | ||
Processing on terminal side: | ||
Remarks: | ||
Example | CF020TEST CONCERT CN 3.XX |
Tag CI - Payment mode
Payment mode | ||
---|---|---|
CI | Fixed length. 1 | The way that the card is read during the payment |
Processing on cash register side: The card-reading mode to use for the payment. | ||
Processing on terminal side: List of reading modes:
| ||
Remarks: By default the payment mode is indifferent. If the cash register transmits this Tag, it must be in line with all other selection modes, applications, the contract number, etc., otherwise the status of the action will be returned ‘Operation not carried out.’ | ||
Example - Only accept contact payments. | CI0011 |
Tag CJ - Cash register protocol version
Cash register protocol version | ||
---|---|---|
CJ | Fixed length. 12 | The version of the protocol that the cash register and/or terminal is using. |
Processing on cash register side: The version of the protocol the cash register is using. Sent in every message to terminal. | ||
Processing on terminal side: | ||
Remarks: By default we must always put the value 323540032810 in this Tag. | ||
Example | CJ012323540032810 |
Tag CK - Ticket on cash register side
Ticket on cash register side | ||
---|---|---|
CK | Fixed length. 3 | How the cash register handles the ticket. |
Processing on cash register side: Position 1:
Position 2:
Position 3:
| ||
Processing on terminal side: If this Tag is transmitted by the cash register with the value ‘1’ the transaction ticket(s) are transmitted to the cash register in the response message in accordance with the details of positions 2 and 3. For values ‘1’, ‘2’, as far as printing the merchant ticket on the cash register, check that the functionality is available on the terminal used. The base64 format is recommended for encoding non-alphanumeric data (in alphanumeric) to manage both carriage returns (line breaks) and small images. | ||
Remarks: | ||
Example |
|
Tag CZ - Protocol version to use
Protocol version to use | ||
---|---|---|
CZ | Fixed length. 4 | Tells the cash register and/or the terminal the version to use. |
Processing on cash register side: Tells the terminal what version the incoming communication is in. | ||
Processing on terminal side: | ||
Remarks: | ||
Example - “I am sending this message in protocol version 3.20” | CZ0040320 |
Tag ZT - Constructed Tag to handle ticket content
This constructed Tag is meant to handle Accounting department situations that require the tickets: for example, reprinting the ticket per file/schedule. This constructed Tag also allows you to send both the cardholder and merchant tickets when you want to print a duplicate.
The constructed tag ZT is composed of:
Tag CK: ticket management, and
Tag AK: ticket data.
It allows the sending of a standard ticket (without type specification). The CK Tag indicates whether it is a cardholder or merchant type ticket and specifies the format (ASCII or HTML); the base 64 format allows the sending of non-ASCII data such as small images (e.g. QR codes).
Several ZT Tags can be repeated in the response message, if both tickets are requested
(cardholder and merchant).
In addition, to simplify the integration, this constructed Tag allows the initial request to stay in the foreground. The cash register can thus issue contextualized requests, and will thus be able to process the responses without memorizing the context of the request.
Ticket | ||
---|---|---|
ZT | Variable length. Max 900 | Ticket sent by terminal |
Processing on cash register side: Reception following a request with a CK Tag in 1xx format requesting the cardholder and/or merchant tickets. | ||
Processing on terminal side:
| ||
Remarks: Several ZT Tags can be repeated in the response message, if both tickets are requested (cardholder and merchant). | ||
Example | CZ0040320CJ012322508084341CA00201CD001PZT833CK003100AK820ICAgICAgICAgU1lNT1RST05JQwo3NSBSdWUgRnJhbmNpcyBkZSBQcmVzc2Vuc2UKICAgICAgIFBBUkMgUkVQVUJMSVFVRQogICAgICA2OTEwMCBWSUxMRVVSQkFOTkUKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUVkEgSW50cmFjb20gRlIgMjkgNDA5IDA5NCAyNDAKU2lyZXQgNDA5IDA5NCAyNDAgMDAwMjgKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogdmVuZHJlZGkgMyBhdnJpbCAyMDIwIDEyOjU1CiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgIFRpY2tldCBWZW50ZQogICAgICAgIE4uIDAwMDAyNAoKUmVmLiAgIFEuIERlc2lnbmF0aW9uICAgICBQcml4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoyNDggICAgMSAgQmFkb2l0IC0gMC41TCAgIDEsNzQKMjc0ICAgIDEgIERhbmlvIE15cnRpbGxlICAxLDI0CjI1MiAgICAxICBQb3VsZXQgcm90aSAgICAgNiw3NAoKTW9kZSBkZSBSZWdsZW1lbnQ6IENCCk1vbnRhbnQgSFQ6ICAgICAgICAgOS4yMiBFVVIKTW9udGFudCBUVkE6ICAgICAgICAwLjUwIEVVUgpNb250YW50IFRUQzogICAgICAgIDkuNzIgRVVSCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIE1lcmNpIGRlIHZvdHJlIHZpc2l 0ZQog |
2) Examples
Debit (Cancellation, Refund or Duplicata) Transaction and no tickets in reponse
Cash register message demanding a sale (debit) of 25 EUR. No ticket is requested.
CZ0040320CJ012323540032810CA0011CB0042500CD0010CE003978
Debit Transaction Request (Cash register → Terminal)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Concert Protocol version | Configurable, 0320 by default | CZ0040320 |
CJ | Cash register protocol version | Configurable, 323540032810 by default. | CJ012323540032810 |
CA | Cash register number | Constant 1 | CA0011 |
CB | Amount | Amount in cents. 25,00€ | CB0042500 |
CD | Action type | Depends on what we want: | Debit: CD0010 Refund : CD0011 Cancellation: CD0012 Duplicata: CD0013 |
CE | Currency | Code for Euro. | CE003978 |
Debit Transaction Response (Terminal → Cash register)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Concert protocol version | Taken from the initial message sent by the cash register | CZ0040320 |
CJ | Cash register protocol version | Taken from the initial message sent by the cash register | CJ012323540032810 |
CA | Cash register number | Taken from the initial message sent by the cash register | CA0011 |
CB | Amount | Taken from the initial message sent by the cash register | CB0042500 |
CD | Action type | Taken from the initial message sent by the cash register | CD0010 |
CE | Currency | Taken from the initial message sent by the cash register | CE003978 |
AE | Status of the action | ‘01’ = Operation not performed | AE00210 |
AF | Complementary info to the Action status |
|
|
BA | POS response time | 0 = POS terminal will answer the cash register at the end of the transaction. | BA0010 |
CD | Action that was realized by the POS terminal | Either: | CD0010 |
CI | Card-reading mode (payment mode) that was used | ‘1’ contact | CI0012 |
AA | PAN of the card | The PAN will always be masked. | AA016XXXXXXXXXXXX2897 |
AB | Expiration date of the card used | Date format AAMM, for example: | AB0043005 |
AC | Authorization number | When a payment is accepted the authorization number is included. | AC006664845 |
AL | Type of PAN that was restituted in the message | 1 = Partial PAN (Masked) | AL0011 |
Debit (Cancelation, Refund/Credit or Duplicata) Transaction and only Customer ticket in response
Cash register message demanding a sale (debit) of 25 EUR. Merchant wants to retrieve the customer ticket only via the CK Tag.
CZ0040320CJ012323540032810CA0011CB0042500CD0010CE003978CK003100
Debit Transaction Request (Cash register → Terminal)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Concert protocol version | Configurable, 0320 by default | CZ0040320 |
CJ | Cash register protocol version | Configurable, 323540032810 by default. | CJ012323540032810 |
CA | Cash register number | Constant 1 | CA0011 |
CB | Amount | Amount in cents. 25,00€ | CB0042500 |
CD | Action type | Depends on what we want: | Debit : CD0010 Refund : CD0011 Cancellation: CD0012 Duplicata : CD0013 |
CE | Currency | Code for Euro. | CE003978 |
CK | Ticket management | Position 1:
Position 2:
Position 3:
| CK003100 |
Debit Transaction Response (Terminal → Cash register)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Concert protocol version | Taken from the initial message sent by the cash register | CZ0040320 |
CJ | Cash register protocol version | Taken from the initial message sent by the cash register | CJ012323540032810 |
CA | Cash register number | Taken from the initial message sent by the cash register | CA0011 |
CB | Amount | Taken from the initial message sent by the cash register | CB0042500 |
CD | Action type | Taken from the initial message sent by the cash register | CD0010 |
CE | Currency | Taken from the initial message sent by the cash register | CE003978 |
AA | Pan of the cardholder | PAN (primary account number) of the card | AA016***********0674 |
AB | Card expiration date | Expiration date of the card | AB0041603 |
AC | Authorization number | PayXpress can return your bank’s identifier of the given authorization transaction. | AC006A00395 |
AL | PAN type | Gives us the type of PAN returned by reading the card | AL0011 |
AE | Status of the action | ‘01’ = Operation not performed | AE00210 |
AF | Complementary info to the Action status |
| AF00201 |
CI | Card-reading mode (payment mode) | ‘1’ contact | CI0012 |
ZT | Ticket | Only the Customer Ticket is given in the response. | ZT617CK003100AK604VEFSSkVUQSBCQU5DQVJJQQpTSU4gQ09OVEFDVE8KQm9uam91ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQTAwMDAwMDAwNDEwMTAKRGViaXRvCiAyMS8xMC8yNCAtIDIzOjEyOjI0Ckc3IFRFU1QgICAgICAgICAgMjEgCkRJSk9OICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCjA4OTkwMTMKMjAwNDEKMzI0Mzc5ODY2MDAwMTkKWFhYWFhYWFhYWFhYMjg5NwpFQzNBRjY5QTE2QkI3NDM4CjY1NSAwMDIgMDAwMDA2ICAwMSAgQyAgQApOVU1FUk8gQVVUT1JJWkFDST9OOiA2NjQ4NDUKUkVGLiA6IDE5OTU1MjkwMTM0MTg3MzUKSU1QT1JURQoxLDAwP0VVUgpWRU5UQQpSRUNJQk8gUEFSQSBFTCBDTElFTlRFCkEgQ09OU0VSVkFSCkRVUExJQ0FETwpNZXJjaSwgYXUgcmV2b2lyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo= |
Duplicata - Print a duplicata
Duplicata Transaction Request (Cash register → Terminal )
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Concert protocol version | Configurable, 0320 by default | CZ0040320 |
CJ | Cash register protocol version | Configurable, 323540032810 by default. | CJ012323540032810 |
CA | Cash register number | Constant 1 | CA0011 |
CD | Action type | Depends on what we want : | Debit : CD0010 Refund : CD0011 Cancellation: CD0012 Duplicata : CD0013 |
CK | Ticket management | Position 1:
Position 2:
Position 3:
| CK003100 |
Duplicata Response (Terminal → Cash register)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Concert protocol version | Configurable, 0320 by default | CZ0040320 |
CJ | Cash register protocol version | Configurable, 323540032810 by default. | CJ012323540032810 |
CA | Cash register number | Constant 1 | CA0011 |
AE | Status of the action | ‘01’ = Operation not performed | AE00210 |
ZT | Ticket | Only the Customer Ticket is given in the response. | ZT617CK003100AK604VEFSSkVUQSBCQU5DQVJJQQpTSU4gQ09OVEFDVE8KQm9uam91ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQTAwMDAwMDAwNDEwMTAKRGViaXRvCiAyMS8xMC8yNCAtIDIzOjEyOjI0Ckc3IFRFU1QgICAgICAgICAgMjEgCkRJSk9OICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCjA4OTkwMTMKMjAwNDEKMzI0Mzc5ODY2MDAwMTkKWFhYWFhYWFhYWFhYMjg5NwpFQzNBRjY5QTE2QkI3NDM4CjY1NSAwMDIgMDAwMDA2ICAwMSAgQyAgQApOVU1FUk8gQVVUT1JJWkFDST9OOiA2NjQ4NDUKUkVGLiA6IDE5OTU1MjkwMTM0MTg3MzUKSU1QT1JURQoxLDAwP0VVUgpWRU5UQQpSRUNJQk8gUEFSQSBFTCBDTElFTlRFCkEgQ09OU0VSVkFSCkRVUExJQ0FETwpNZXJjaSwgYXUgcmV2b2lyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo= |
Identification of the terminal - Ping request to terminal
Allows you to validate the connection between the cash register and the POS terminal without triggering a transaction. Basically it allows you to confirm that the terminal is live.
This message can be implemented either with a regular polling frequency or before triggering a payment transaction.
Identification Request (Cash register → Terminal)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Concert Protocol version | Configurable, 0320 by default | CZ0040320 |
CJ | Cash register protocol version | Configurable, 323540032810 by default. | CJ012323540032810 |
CA | Cash register number | Constant 1 | CA0011 |
CD | Action type | I for Identification method | CD001I |
Identification Response (Terminal → Cash register)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Protocol version | Taken from the initial message sent by the cash register | CZ0040320 |
CJ | Cash register protocol version | Taken from the initial message sent by the cash register | CJ012323540032810 |
CA | Cash register number | Taken from the initial message sent by the cash register | CA0011 |
CD | Action type | Taken from the initial message sent by the cash register | CD001I |
AE | Status of the action | ‘01’ = Operation not performed | AE00210 |
Printing of a personalized ticket by the terminal
Allows a buffer (ASCII coded base 64) sent by the cash register to be printed on the terminal.
Print ticket Request (Cash register → Terminal)
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Protocol version | Configurable, 0320 by default | CZ0040320 |
CJ | Cash register protocol version | Configurable, 323540032810 by default. | CJ012323540032810 |
CA | Cash register number | Constant 1 | CA0011 |
CD | Action type | P for Print method | CD001P |
ZT | Constructed Tag composed of the data in CK and the (ASCII base64) buffer to print in AK |
| ZT0025CK003100AK0012Ym9uam91cg== |
CK | 'Print ticket?' selection | Position 1:
Position 2:
Position 3:
| CK003100 |
AK | Data to print | Base 64 encoding of the ticket to be printed, 900 max | AK0012Ym9uam91cg== |
Print ticket Response (Terminal → Cash register)
The terminal responds immediately to the cash register and then, afterwards, continues with what it was doing.
Tag | Meaning | Rule | Example |
---|---|---|---|
CZ | Protocol version | Taken from the initial message sent by the cash register | CZ0040320 |
CJ | Cash register protocol version | Taken from the initial message sent by the cash register | CJ012323540032810 |
CA | Cash register number | Taken from the initial message sent by the cash register | CA0011 |
CD | Action type | Taken from the initial message sent by the cash register | CD001P |
AE | Status of the action | ‘01’ = Operation not performed | AE00210 |
© PayXpert Services Ltd, 2025