Skip to main content

CVM Signature Check Integration

When utilising the CVM Signature integration, you will need to update axept® PRO of the outcome of a CVM Signature Check as and when one is required, you do so by using a POST/ProcessDecision request.

Best Practice

The POST/ProcessDecision request is used in conjunction with the posSignatureCheck query parameter being enabled within a transaction, i.e. when the integrated POS is responsible for handling CVM signature checks; this request is used to update axept® PRO on the signature check result and whether the conclude or reverse the transaction.

If you are omitting the posSignatureCheck parameter from transaction requests, or including but setting to false then you should not use this feature.

Transaction Requirements

In order to utilise the CVM Signature integration feature you will need to set the posSignatureCheck parameter in the initial transaction request so that axept® PRO will know it will receive signature decisions from the integrated POS system rather than displaying prompts on the device screen.

Below are the parameter(s) that need to be enabled:

POST /transaction - Body Parameters required for CVM Signature Integration
Field NameStateData TypeDescription
posSignatureCheckOptionalBooleanDefault = false. Setting this to true will enable the posSignatureCheck to update, if required, based on whether a CVM Signature Check is required.

Example

Postman Request
POST /Transaction HTTP/1.1
Content-Type: application/json
Authorization: Bearer [hashed]
User-Agent: PostmanRuntime/7.51.1
Accept: */*
Postman-Token: 8a40ee39-af49-427b-b6d2-1866918b0bdb
Host: optomany-axeptconnectcloudmerchant-ppe.azurewebsites.net
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 317

{
"uti": "56a46547-10da-4ddf-ae60-3bd189c26012",
"expirationDate": "2026-02-26T12:22:03.498Z",
"tid":"1853195101",
"transType": "SALE",
"amountTrans": 3000,
"amountGratuity": 0,
"posSignatureCheck": true, // Integrated POS will handle CVM Signature Decisions
"language": "en-GB",
"disablePrinting": true,
"reference": "Test"
}

POS Monitoring

If the CVM Signature Check integration feature is being used then the integrated POS system needs to be monitoring the device for scenarios where a signature will be prompted, in such instances the GET/transaction response body will display a posActionStatus of 1.

Example

{
"uti": "56a46547-10da-4ddf-ae60-3bd189c26012",
"transType": "SALE",
"transApproved": false,
"transPartiallyApproved": false,
"transCancelled": false,
"amountTrans": 150,
"amountGratuity": 0,
"amountCashback": 0,
"cvmSignatureRequired": false,
"cvmPinVerified": false,
"reference": "Test",
"createdDateTime": "2026-02-26T08:10:25.5168273Z",
"merchantStoreId": 14759,
"status": "InProgress",
"posActionStatus": 1 // Signature Required
}

If a GET/transaction response body contains "posActionStatus": 1 this means axept® PRO is waiting on a signature decision from the integrated POS, you should program the POS system to print a merchant signature reciept and provide an on screen prompt for the EPOS user.

further reading

You can get a rundown of the posActionStatus and all its potential values in the GET/transaction Response table of values here.

POST/ProcessDecision

In the event of a signature requirement and axept® PRO waiting on a decision from the integrated POS, the axept® Connect integration can be used to send an updated posActionStatus that will inform axept® PRO on what to do next.

Below are the URL's you need to utilise:

The main request body needs only the following parameter:

POST /ProcessDecision - Body Parameters required for CVM Signature Decision
Field NameStateData TypeDescription
posActionStatusMandatoryIntegerField needs to contain one of the following values:
2Signature accepted.
3Signature refused.

Example

Postman Request
POST /transaction/eea86a36-d2e4-4e3a-998e-f8cd97c6bcd8/ProcessDecision HTTP/1.1
Content-Type: application/json
Authorization: Bearer [hashed]
User-Agent: PostmanRuntime/7.51.1
Accept: */*
Postman-Token: 0d20d22e-5f35-4524-a6f8-e29205fe81c3
Host: optomany-axeptconnectcloudmerchant-ppe.azurewebsites.net
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 27
Cookie: ARRAffinity=29d8c3f38164feebdbfcbd1240d27c77d80e112106541885ec16b5405c801270; ARRAffinitySameSite=29d8c3f38164feebdbfcbd1240d27c77d80e112106541885ec16b5405c801270

{
"posActionStatus": 2 // Accept Signature
}
Postman Request
POST /transaction/eea86a36-d2e4-4e3a-998e-f8cd97c6bcd8/ProcessDecision HTTP/1.1
Content-Type: application/json
Authorization: Bearer [hashed]
User-Agent: PostmanRuntime/7.51.1
Accept: */*
Postman-Token: 0d20d22e-5f35-4524-a6f8-e29205fe81c3
Host: optomany-axeptconnectcloudmerchant-ppe.azurewebsites.net
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 27
Cookie: ARRAffinity=29d8c3f38164feebdbfcbd1240d27c77d80e112106541885ec16b5405c801270; ARRAffinitySameSite=29d8c3f38164feebdbfcbd1240d27c77d80e112106541885ec16b5405c801270

{
"posActionStatus": 3 // Refuse Signature
}

This should update the status of the transaction on axept® PRO and proceed to either finalisation (approval) or reversal (refused signature), the new status should also be reflected in the GET/transaction response body.

Example

{
"uti": "56a46547-10da-4ddf-ae60-3bd189c26012",
"transType": "SALE",
"transApproved": false,
"transPartiallyApproved": false,
"transCancelled": false,
"amountTrans": 150,
"amountGratuity": 0,
"amountCashback": 0,
"cvmSignatureRequired": false,
"cvmPinVerified": false,
"reference": "Test",
"createdDateTime": "2026-02-26T08:10:25.5168273Z",
"merchantStoreId": 14759,
"status": "InProgress",
"posActionStatus": 2 // Signature Accepted
}
{
"uti": "56a46547-10da-4ddf-ae60-3bd189c26012",
"transType": "SALE",
"transApproved": false,
"transPartiallyApproved": false,
"transCancelled": false,
"amountTrans": 150,
"amountGratuity": 0,
"amountCashback": 0,
"cvmSignatureRequired": false,
"cvmPinVerified": false,
"reference": "Test",
"createdDateTime": "2026-02-26T08:10:25.5168273Z",
"merchantStoreId": 14759,
"status": "InProgress",
"posActionStatus": 2 // Signature Refused
}