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.
Sandbox
Production
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.
post
https://api.link.sandbox.pci-proxy.com
/v1/links
Create tokenisation link
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.
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
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
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"
}
Download our Postman collection to play around with the Link APIs here:
Last modified 5mo ago