Pyxis Transaction IDs
The system uses unique transaction IDs to track each transaction and to allow voids, refund, settlements and exceptions (chargebacks, declines, reversals, etc.) to refer to a previous transaction. The inclusion of a transaction ID in the request to the service is optional.
If a transaction ID is passed in as part of a request then that ID must be unique for the requesting POS terminal; the service will check to ensure uniqueness. If a transaction ID is not present in the request, a unique ID will be generated by the service. In both cases, the transaction ID (either passed in or generated) will be returned as part of the response.
It would be best to choose either to provide transaction IDs or to let the service generate them and to not mix the two modes. Doing so will avoid problems with potential (but rare) conflicts of IDs.
External Transaction IDs
Usually, the systems that are utilizing the Pyxis API keep track of the transactions they create. Although Pyxis will send back a globally unique transaction Id, the user systems may want to have an Id of their own. In the API request payloads, there is an element called “externalTransactionId”. This is a 64-character alpha-numeric string field that is simply echoed back to the caller.
This string will not only come back in the API response payload, but will also be returned when querying transaction or settlement information. This will allow the caller to tie the response back to a transaction using an Id of its choosing.