Payments via external MPI
Target most up-to-date API base URL
To allow you a smooth transition, previous API base URLs remain available until further notice.
1. Introduction
Depending on your business model, you might prefer working with an external Merchant Plug-In (MPI) to process 3-D Secure-proof payments.
We have designed our platform in a way that allows you to process the 3-D Secure authentication step with your external MPI and the subsequent payment via our platform
Make sure to check with your MPI provider that you meet both their technical and security requirements
To do so, add the following nested properties in object cardPaymentMethodSpecificInput.threeDSecure to a standard CreatePayment request.
Property | Description |
cavv | Required |
cavvAlgorithm | Only applicable for Carte Bancaire transactions |
eci | Required |
threeDSecureVersion | Required |
xid | - |
directoryServerTransactionId | Required |
schemeRiskScore |
Only applicable for Carte Bancaire transactions |
acsTransactionId | Required |
appliedExemption |
Only applicable for Carte Bancaire transactions |
flow |
Required If left out, our platform will populate this property with frictionless, which we will include in GetPaymentDetails responses. Therefore, to ensure our platform data matches the actual flow that took place, we strongly recommend sending this property |
2. Use test cases
Use this CreatePayment example to perform tests. A typical request / response looks like this:
Request:
{
"cardPaymentMethodSpecificInput": {
"card": {
"cvv": "451",
"cardNumber": "4012005616165343",
"expiryDate": "1223",
"cardholderName": "Wile E. Coyote"
},
"isRecurring": false,
"paymentProductId": 1,
"transactionChannel": "ECOMMERCE",
"threeDSecure": {
"externalCardholderAuthenticationData": {
"cavv" : "AAABBEg0VhI0VniQEjRWAAAAAAA=",
"cavvAlgorithm" : "X",
"directoryServerTransactionId" : "f25084f0-5b16-4c0a-ae5d-b24808a95e4b",
"eci" : "05",
"threeDSecureVersion" : "2.1.0",
"acsTransactionId" : "abcdefghijklmnopqrstuvwxyz0123456789",
"flow" : "challenge"
}
}
},
"order": {
"amountOfMoney": {
"currencyCode": "EUR",
"amount": 2980
},
"customer": {
"billingAddress": {
"countryCode": "NL"
}
},
"references": {
"merchantOrderId": "123456",
"merchantReference": "oGPc8xJURfpFitBa6ORrpkBuPoGpvD"
}
}
}
Response:
{
"creationOutput" : {
"additionalReference" : "VjM0O0U7BOE3brdOK0Ec",
"externalReference" : "VjM0O0U7BOE3brdOK0Ecik4VAuJlUJ"
},
"payment" : {
"id" : "000007041700000008210000100001",
"paymentOutput" : {
"amountOfMoney" : {
"amount" : 2980,
"currencyCode" : "EUR"
},
"references" : {
"merchantOrderId" : "123456",
"merchantReference" : "VjM0O0U7BOE3brdOK0Ecik4VAuJlUJ",
"paymentReference" : "0"
},
"paymentMethod" : "card",
"cardPaymentMethodSpecificOutput" : {
"paymentProductId" : 1,
"fraudResults" : {
"fraudServiceResult" : "no-advice",
"avsResult" : "0",
"cvvResult" : "0"
},
"threeDSecureResults" : {
"cavv" : "AAABBEg0VhI0VniQEjRWAAAAAAA=",
"eci" : "05",
"threeDSecureVersion" : "2.1.0"
},
"card" : {
"cardNumber" : "************5343",
"expiryDate" : "1223"
}
}
},
"status" : "PENDING_APPROVAL",
"statusOutput" : {
"isCancellable" : true,
"statusCategory" : "PENDING_MERCHANT",
"statusCode" : 600,
"statusCodeChangeDateTime" : "20190708195058",
"isAuthorized" : true,
"isRefundable" : false
}
}
}