Links

Tokenisation Link

Use the Tokenisation Link API to collect card details through a pre built Tokenisation page
Create a Tokenisation Link to securely collect sensitive card data using a pre built tokenisation page hosted by PCI Proxy. Simply send one API request and we take care of the rest.
The link can be shared through various channels such as email, live chat, text messages, social media or even displayed as a QR code in your system. It allows you to customise the tokenisation page and comes with in built 3D Secure 2 logic to apply strong customer authentication when required.

How it works

Endpoints

Create a new Tokenisation Link by calling the following endpoint from your server.
To process 3D authentications, submitting amount, currency and at least one of the card brand object (VIS, ECA, AMX) is required.
Please also ensure your account is activated and configured for 3D authentications.

Example

Request
Response
Request w/3D
Response w/3D
curl --location --request POST 'https://api.link.sandbox.pci-proxy.com/v1/links'
--header 'pci-proxy-api-key: {API Key}' \
--header 'content-type: application/json' \
--data-raw '{
"reference": "234923490",
"successUrl": "https://example.org/success",
"webhookEndpoint": "https://example.org/webhook",
"context": {
"Test Card": "true",
"First Name": "Jon",
"Last Name": "Doe"
}
}'
{
"id": "C7A177DF-E9BA-482B-9CC1-047A2DFC9F19",
"link": "https://link.sandbox.pci-proxy.com/C7A177DF-E9BA-482B-9CC1-047A2DFC9F19"
}
curl --location --request POST 'https://api.link.sandbox.pci-proxy.com/v1/links'
--header 'Content-Type: application/json' \
--header 'pci-proxy-api-key: {API Key}' \
--data-raw '{
"reference": "234923490",
"successUrl": "https://example.org/success",
"webhookEndpoint": "https://example.com/webhook",
"context": {
"Test Card": "true",
"First Name": "Jon",
"Last Name": "Doe"
},
"amount": 1000,
"currency": "EUR",
"VIS": {
"3D": {
"acquirer": {
"acquirerBin": "33333333",
"acquirerMerchantId": "33333333"
},
"merchant": {
"mcc": "4722",
"merchantName": "Example Travel Ltd."
}
}
},
"ECA": {
"3D": {
"acquirer": {
"acquirerBin": "22222222",
"acquirerMerchantId": "22222222"
},
"merchant": {
"mcc": "4722",
"merchantName": "Example Travel Ltd."
}
}
},
"AMX": {
"3D": {
"acquirer": {
"acquirerBin": "1111111",
"acquirerMerchantId": "1111111"
},
"merchant": {
"mcc": "4722",
"merchantName": "Example Travel Ltd."
}
}
}
}'
{
"id": "2BA76D13-20C1-4CDB-9753-21C084C96C2F",
"link": "https://link.sandbox.pci-proxy.com/2BA76D13-20C1-4CDB-9753-21C084C96C2F"
}
A Tokenisation Link can only be consumed once. However, it doesn't expire when not used.

2. Redirect user

Share the link URL received in the response from /v1/links with your user. It redirects to a Tokenisation page hosted by PCI Proxy where the card details can be entered.
The styling of the hosted Tokenisation page can be adjusted to your look and feel. See the styling guides for more details.
If your merchantId is enabled for processing 3D-Secure and acquiring data were submitted in the initial request, 3D Secure gets automatically triggered in the background. In case a challenge is required by the issuing bank, the user will be redirected to the ACS URL of the issuing bank to complete the challenge.
After completing the credit card fields and submitting the request, a pre built confirmation page hosted by PCI Proxy will be displayed to the user with a hint that the process is finished and the window can be closed. In case a successUrl has been submitted in the initial request, the user will be redirected to it automatically with a 5 second delay.
As a next step, call the Status API to retrieve tokenised card data, 3D authentication information and other card meta data.
If a webhookEndpoint URL has been submitted in the initial call, a notification will be sent to it after a successful tokenisation took place.
To obtain tokenised card data, 3D authentication values or to simply keep track and check the latest state of a Tokenisation Link call the status API anytime.
A Tokenisation Link can have the following status:
Status
Description
PENDING
A Tokenisation Link has been created but not yet completed by a user.
SUCCESS
Credit card data successfully received and tokenised. Card, CVV tokens, 3D authentication data and additional card meta data are returned.
ERROR
Something unexpected happened.
get
https://api.link.sandbox.pci-proxy.com
/v1/links/{id}
Status endpoint

Example (success case)

Request
Response
Response w/3D
curl --location --request GET 'https://api.link.sandbox.pci-proxy.com/v1/links/{id}'
--header 'Content-Type: application/json'
--header 'pci-proxy-api-key: {API Key}'
{
"status": "SUCCESS",
"reference": "1362a010-3aa7-4aff-b556-de217705991c",
"link": "https://link.sandbox.pci-proxy.com/77AC96tGxyKz3YjxUNypHF",
"paymentMethod": "VIS",
"card": {
"alias": "7LHXscqwAAEAAAGE4x0wQt24fppOAJeH",
"fingerprint": "F-dV5V8dE0SZLoTurWbq2HZp",
"masked": "424242xxxxxx4242",
"aliasCVV": "v1QMX4gXQAWzvvw3tWyU4D4f",
"expiryMonth": "06",
"expiryYear": "25",
"info": {
"brand": "VISA CREDIT",
"type": "credit",
"usage": "consumer",
"country": "GB",
"issuer": "DATATRANS"
}
},
"history": []
}
{
"status": "SUCCESS",
"reference": "234923490",
"paymentMethod": "VIS",
"card": {
"alias": "7LHXscqwAAEAAAGC-UIBqxCY1SodANWt",
"fingerprint": "F-fj8CDwhx2OS2MEL8WK_W7e",
"masked": "400000xxxxxx0026",
"aliasCVV": "7VJu5IQjROiW8MSmwYTFzYxU",
"expiryMonth": "12",
"expiryYear": "26",
"info": {
"brand": "VISA",
"type": "credit",
"usage": "consumer",
"country": "US",
"issuer": "DATATRANS"
},
"3D": {
"eci": "05",
"xid": "0e0b4423-c8ec-4851-b239-f7858222a177",
"threeDSTransactionId": "a9e4b589-ad94-41f0-a339-9de18da9aedd",
"cavv": "MAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"threeDSVersion": "2.2.0",
"directoryResponse": "C",
"authenticationResponse": "Y",
"transStatusReason": "15"
}
},
"history": [
{
"action": "authenticate",
"amount": 1000,
"source": "secure_fields",
"date": "2022-09-01T13:33:55Z",
"success": true,
"ip": "21.101.125.184"
}
],
"currency": "EUR",
"detail": {
"authorize": {
"amount": 1000
}
}
}
Delete a Tokenisation Link. It can not be reactivated anymore.
delete
https://api.link.sandbox.pci-proxy.com
/v1/links/{id}
Delete endpoint

Example

Request
Response
curl --location --request DELETE 'https://api.link.sandbox.pci-proxy.com/v1/links/C7A177DF-E9BA-482B-9CC1-047A2DFC9F19' \
--header 'pci-proxy-api-key: {API Key}' \
--header 'Content-Type: application/json'
{
"state": "DELETED"
}

Postman collection

Download our Postman collection to play around with the Link APIs here: