Card Acquisition
Overview and Usage
The Card Acquisition stage is a means of triggering the Pre Authorisation flow in a Semi-attended or Unattended environment, when utilised axept PRO will always be prompting the Present Card screen for an initial transAmount greater than zero. Once a card is presented and if the Card Acquisition returns a HTTPS response code of 200 then the POS can then decide whether to proceed using the cardToken and uti from the successful response or whether to not proceed.
This entire stage is optional and is not required to carry out a Pre Authorisation using the Simplified Flow, this stage is only required if you are wanting to utilise the Card Acquisition Pre Auth Flow, i.e. you are wanting to use Pre Authorisation in a Semi-attended or Unattended environment, or if wanting to accept MiFare Cards (see below).
If you wish to accept MiFare cards, this flow becomes MANDATORY as MiFare cards can only be captured during Card Acquisition.
This section will show you how to enter Card Acquisition mode, and poll for the status of Card Acquisition. Proceeding ahead is made via the Transaction Request URI in the Initiate Pre Authorisation section. It is assumed you'll be heading to Initiate Pre Authorisation knowing whether you wish to initiate a transaction or cancel the Card Acquisition process.

Card Acquisition Request
The Card Acquisition process starts with a POST/cardAquisition request to axept PRO, this will trigger the Present Card screen to display until either the screen times out (usually after 120 seconds by default) or until a card is presented. During this time the POS system should be polling a GET/cardAcquisition request until it detects the timed out request or until a cardToken is returned, indicating that a card was presented successfully.
If you are wanting axept PRO to be constantly requesting a Card Acquisition between card presentations then it is advised to utilise the GET/cardAcquition request moreso, if the GET request detects the screen has timed out then you could automate your POS to automatically trigger another POST/cardAcquisition request straight away.
We cover the Card Acquisition polling in the next section of this page.
POST Card Acquisition Request
| Query Parameters | ||
|---|---|---|
| tid | Enum | Your device serial number |
| Header Parameters | ||
| Authorization | String | Bearer 6945595921271780 |
| Body Parameters | ||
| amountTrans | Integer | "amountTrans":500 |
POST /POSitiveWebLink/1.2.0/rest/cardAcquisition?tid=1853195101
HTTP/1.1
Content-Type: application/json
disablePrinting: true
Authorization: Bearer 6945595921271780
User-Agent: PostmanRuntime/7.26.8
Accept: */*
Host: 192.168.0.75:8080
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 127
{
"amountTrans": 500
}
POST Card Acquisition Response
Please select one of the below HTTPS Response Codes:
- 201
- 206
- 400
- 403
- 408
- 500
| HTTP Response Code | Description |
|---|---|
| 201 | "Transaction Created" This indicates that axept® PRO has received the request and the Card Acquisition process has started on the payment device. |
HTTP/1.1 201 Transaction Created
Content-Type: application/json
Date: Wed, 3 Sep 2025 14:44:25 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
{
"amountTrans":500,
"uti":"419C6D76-EB3A-447B-9E22-5940F4B2B974"
}
| HTTP Response Code | Description |
|---|---|
| 400 | Details would be returned in a text description. Usually returned based on invalid parameters in the request. |
HTTP/1.1 400 Bad input parameter or invalid JSON
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:34:13 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Bad input parameter or invalid JSON
| HTTP Response Code | Description |
|---|---|
| 206 | "Card Acquisition In Progress" a new card acquisition cannot be started until the current one completes. If the uti for the “in-flight” card acquisition request is known, it is advised to poll (via GET/cardAcquisition) using that uti to determine when a card is presented. If the uti is not known, a DELETE/cardAcquisition request can be sent to return axept® PRO to an idle state so a new POST/cardAcquisition can be sent. |
HTTP/1.1 403 Card Acquisition In Progress
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:41:54 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Card Acquisition In Progress
| HTTP Response Code | Description |
|---|---|
| 403 | "Not Authorised" The request is not authorised to proceed, check that the Bearer is set to 6945595921271780 and that there are no typos in the bearer token. |
HTTP/1.1 403 Not Authorised
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:41:54 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Not Authorised
| HTTP Response Code | Description |
|---|---|
| 408 | "Request timeout" The request has failed to reach axept® PRO and has timed out. |
HTTP/1.1 408 Request timeout
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:41:54 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Request timeout
| HTTP Response Code | Description |
|---|---|
| 500 | "Internal Server Error" The request encountered an error and was unable to execute correctly. This is usually seen when a transaction request is made whilst a transaction is already in progress. |
HTTP/1.1 500 Internal Server Error
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:44:26 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Internal Server Error
Polling Card Acquisition Request
Polling for the status of a Card Acquisition can commence once a successful POST/cardAcquisition response has been received, this is done via a GET/cardAcquisition response containing the uti from the POST response (or request if the POS is generating the uti) within the query. This is how to determine when a card has been presented to axept® PRO and an offline cardToken generated, or if the POST request has timed out.
When a GET/CardAcquisition request is executed, you should receive a response from axept® PRO with a valid HTTPS response code and message. Upon Card Acquisition completion a GET response should return a 200 HTTPS response code with card data (including the offline cardToken).
GET Card Acquisition Request
| Query Parameters | ||
|---|---|---|
| tid | Enum | Your device serial number |
| uti | Enum | The uti from the current Pre Authorisation transaction in progress/completed. |
| Header Parameters | ||
| Authorization | String | Bearer 6945595921271780 |
GET /POSitiveWebLink/1.1.0/rest/cardAcquisition?tid=1853195101&uti=B6A54EA1-967E-403D-A432-8015C7554751
HTTP/1.1
Content-Type: application/json
Authorization: Bearer 6945595921271780
User-Agent: PostmanRuntime/7.45.0
Accept: */*
Postman-Token: 927bdc55-8790-4daf-ad89-0ef3794daf7e
Host: 192.168.0.201:8080
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
GET Card Acquisition Response
- 200
- 206
- 400
- 403
- 404
- 408
- 500
| HTTP response code | Description |
|---|---|
| 200 | axept® PRO can find a completed Card Acquisition that matches the provided criteria. The body of the response will provide the transaction data. |
HTTP/1.1 200
Content-Type: application/json
Date: Fri, 5 Sep 2025 14:42:16 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
{
"cardExpiryDate":"2212",
"cardPan":"************0215",
"cardScheme":"Visa Debit",
"cardToken":"tVobJ\/OglLJN75q11iFKavlRxSItypd1vXbwh41v80wfMQ==",
"cardType":"CTLS",
"errorCode":"",
"errorText":"",
"softwareVersion":"1.00.58-12189",
"uti":"968B3E69-D681-4032-87B7-8BF75BAF9652",
"DisplayData":[
{
"value":1,
"description":"Transaction started"
},
{
"value":13,
"description":"GetCard Screen Displayed"
},
{
"value":7,
"description":"Card Tapped"
},
{
"value":12,
"description":"Transaction Finished"
}
]
}
| HTTP response code | Description |
|---|---|
| 206 | "Transaction in progress" This indicates that axept® PRO has received the request and the Card Acquisition has started on the payment device. Session statues will be returned as an array of objects in the body. |
HTTP/1.1 206 Transaction in progress
Content-Type: application/json
Date: Fri, 5 Sep 2025 13:55:17 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
{
"DisplayData":[
{
"value":1,
"description":"Transaction started"
},
{
"value":13,
"description":"GetCard Screen Displayed"
}
]
}
| HTTP response code | Description |
|---|---|
| 400 | Details would be returned in a text description. Usually returned based on invalid parameters in the request. |
HTTP/1.1 400 Bad input parameter or invalid JSON
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:34:13 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Bad input parameter or invalid JSON
| HTTP response code | Description |
|---|---|
| 403 | "Not Authorised" The request is not authorised to proceed, check that the Bearer is set to 6945595921271780 and that there are no typos in the bearer token. |
HTTP/1.1 403 Not Authorised
Content-Type: text/plain
Date: Fri, 5 Sep 2025 14:32:08 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Not Authorised
| HTTP response code | Description |
|---|---|
| 404 | Session not found or status is not available |
HTTP/1.1 403 Not Authorised
Content-Type: text/plain
Date: Fri, 5 Sep 2025 14:32:08 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Not Authorised
| HTTP response code | Description |
|---|---|
| 408 | "Request timeout" The request has failed to reach axept® PRO and has timed out. |
HTTP/1.1 408 Request timeout
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:41:54 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Request timeout
| HTTP response code | Description |
|---|---|
| 500 | "Internal Server Error" The request encountered an error and was unable to execute correctly. |
HTTP/1.1 500 Internal Server Error
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:44:26 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Internal Server Error
You can use the HTTP response code to determine whether or not axept® PRO is still waiting for a card to be presented. Whilst a 206 is being returned in each GET/cardAcquisition response you will know that a card has not yet been presented and read.
Once a GET/cardAcquisition request has returned a 200 HTTPS response code the Card Acquisition is considered complete and axept® PRO will stay in a Please Wait state until the integrated client determines what to do next:
- Proceed with a Pre Authorisation
POST/transaction request. - Perform a Cancel via a
DELETE/transaction request.
We cover how to initiate a Pre Authorisation in the next chapter here
Please read on for how to cancel Card Acquisition requests correctly.
Cancel Card Acquisition Request
You can cancel a Card Acquisition at any time during the request process or even after an acquisition was successful, the approach for both is to use a DELETE request but the end points will be different depending on whether you are cancelling during or after the Card Acquisition process.
- If you want to cancel and the response you are getting from a
GET/cardAcquisition request is206then you need to run aDELETE/cardAcquisition request. - If you want to cancel and the response you are getting from a
GET/cardAcquisition request is200then you need to run aDELETE/transaction request.
When a Card Acquisition has returned a 200 HTTPS response code it is best to treat it as a completed transaction from this point when it comes to how you handle DELETE requests. When cancelling a successful Card Acquisition you must use a DELETE/transaction request with the uti from the original POST/cardAcquisition request. DELETE/cardAcqusition requests are only meant for Card Acquisitions that are returning a 206 HTTPS response code.
Cancelling During Acquisition
DELETE Card Acquisition Request
| Query Parameters | ||
|---|---|---|
| tid | Enum | Your device serial number |
| Header Parameters | ||
| Authorization | String | Bearer 6945595921271780 |
DELETE /POSitiveWebLink/1.1.0/rest/cardAcquisition?tid=1853195101
HTTP/1.1
Content-Type: application/json
Authorization: Bearer 6945595921271780
User-Agent: PostmanRuntime/7.45.0
Accept: */*
Postman-Token: 927bdc55-8790-4daf-ad89-0ef3794daf7e
Host: 192.168.0.201:8080
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
DELETE Card Acquisition Response
- 200
- 400
- 403
| HTTP response code | Description |
|---|---|
| 200 | axept® PRO successfully completed the cancellation request. |
HTTP/1.1 200
Content-Type: application/json
Date: Fri, 5 Sep 2025 14:42:16 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
{
"cardPan":"****************",
"cardScheme":"DEFAULT",
"cardType":"NONE",
"errorCode":"",
"errorText":"",
"softwareVersion":"1.00.59-12218",
"uti":"60FE8442-216C-431F-8741-D756F5556930",
"DisplayData":[
{
"value":1,
"description":"Transaction started"
},
{
"value":13,
"description":"GetCard Screen Displayed"
},
{
"value":97,
"description":"Remote Cancelled"
},
{
"value":10,
"description":"Transaction Cancelled"
}
]
}
| HTTP response code | Description |
|---|---|
| 400 | Details would be returned in a text description. Usually returned based on invalid parameters in the request. |
HTTP/1.1 400 Bad input parameter or invalid JSON
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:34:13 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Bad input parameter or invalid JSON
| HTTP response code | Description |
|---|---|
| 403 | "Not Authorised" The request is not authorised to proceed, check that the Bearer is set to 6945595921271780 and that there are no typos in the bearer token. |
HTTP/1.1 403 Not Authorised
Content-Type: text/plain
Date: Fri, 5 Sep 2025 14:32:08 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Not Authorised
Cancelling After Acquisition
DELETE Transaction Request
| Query Parameters | ||
|---|---|---|
| tid | Enum | Your device serial number |
| Header Parameters | ||
| Authorization | String | Bearer 6945595921271780 |
DELETE /POSitiveWebLink/1.1.0/rest/transaction?tid=1853195101
HTTP/1.1
Content-Type: application/json
Authorization: Bearer 6945595921271780
User-Agent: PostmanRuntime/7.45.0
Accept: */*
Postman-Token: 927bdc55-8790-4daf-ad89-0ef3794daf7e
Host: 192.168.0.201:8080
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
DELETE Transaction Response
- 200
- 400
- 403
| HTTP response code | Description |
|---|---|
| 200 | axept® PRO successfully completed the cancellation request. |
HTTP/1.1 200
Content-Type: application/json
Date: Fri, 5 Sep 2025 14:42:16 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
{
"cardPan":"****************",
"cardScheme":"DEFAULT",
"cardType":"NONE",
"errorCode":"",
"errorText":"",
"softwareVersion":"1.00.59-12218",
"uti":"60FE8442-216C-431F-8741-D756F5556930",
"DisplayData":[
{
"value":1,
"description":"Transaction started"
},
{
"value":13,
"description":"GetCard Screen Displayed"
},
{
"value":97,
"description":"Remote Cancelled"
},
{
"value":10,
"description":"Transaction Cancelled"
}
]
}
| HTTP response code | Description |
|---|---|
| 400 | Details would be returned in a text description. Usually returned based on invalid parameters in the request. |
HTTP/1.1 400 Bad input parameter or invalid JSON
Content-Type: text/plain
Date: Wed, 3 Sep 2025 14:34:13 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Bad input parameter or invalid JSON
| HTTP response code | Description |
|---|---|
| 403 | "Not Authorised" The request is not authorised to proceed, check that the Bearer is set to 6945595921271780 and that there are no typos in the bearer token. |
HTTP/1.1 403 Not Authorised
Content-Type: text/plain
Date: Fri, 5 Sep 2025 14:32:08 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
Access-Control-Allow-Headers: *
Allow: POST, GET, OPTIONS, DELETE
Connection: keep-alive
Content-Encoding: gzip
Transfer-Encoding: chunked
Not Authorised