3DS Enabled Payment

On this page, you can explore how a payment with 3DS can be configured with MoneyHash when creating an intent.

The first thing to understand about 3DS configuration is that the provider that will handle the payment must support 3DS payments to the intent configuration to make a difference. If you enable the 3DS step and the provider does not support it, the payment will occur normally. You can find more about each provider on their respective page in MoneyHash's Dashboard.

Enabling 3D Security

For every option we will present, you need to start at the creation of the intent using the Create Intent endpoint:

POST
/api/v1.1/payments/intent/

When creating the intent above, you have three options to handle the 3DS configuration:

Provider's default cycle

To allow the provider to follow their default cycle, handling the payment and executing their default behaviour for each payment scenario, adding 3DS when they see fit, you can proceed with creating a payment process without adding any different data. This happens to a Basic Payment cycle, for example.

Enforce 3DS cycle

To enforce the 3D security step on a payment process, you need to add the threeds.enabled parameter as true to the intent's payload. This will enforce the 3DS cycle if the provider has a 3D security flow option.

PropertyTypeDescription
amountNumberThe amount to charge in the payment process.
amount_currencyStringThe currency of the amount is represented by a string of alphabetic codes from ISO 4217 Currency codes.
operationStringThe type of the current intent. It can be one of purchase, authorize, or capture.
webhook_urlStringA URL that the MoneyHash server will send a POST request to you when needed.
threedsObjectAn object with data relating to 3D security.
threeds.enabledBooleanA flag to inform MoneyHash and the provider if 3DS needs to be applied to the payment process being created.
{
  "amount": 50,
  "amount_currency": "USD",
  "payment_method": "CARD",
  "operation": "purchase",
  "threeds": {
    "enabled": true
  },
  "webhook_url": "https://webhook.site/b8954509-f628-4805-a4b4-58a0fb2be958"
}

Skip the 3DS cycle

To skip the 3D security step on a payment process, you need to add the threeds.enabled parameter as false to the intent's payload. This will skip the 3DS cycle even if it is the default flow of the provider.

PropertyTypeDescription
amountNumberThe amount to charge in the payment process.
amount_currencyStringThe currency of the amount is represented by a string of alphabetic codes from ISO 4217 Currency codes.
operationStringThe type of the current intent. It can be one of purchase, authorize, or capture.
webhook_urlStringA URL that the MoneyHash server will send a POST request to you when needed.
threedsObjectAn object with data relating to 3D security.
threeds.enabledBooleanA flag to inform MoneyHash and the provider if 3DS needs to be applied to the payment process being created.
{
  "amount": 50,
  "amount_currency": "USD",
  "payment_method": "CARD",
  "operation": "purchase",
  "threeds": {
    "enabled": false
  },
  "webhook_url": "https://webhook.site/b8954509-f628-4805-a4b4-58a0fb2be958"
}

From here, you are able to proceed with any integration except the HPP one.

Keep track of the webhook endpoint you sent within the request to see the progress of the payment process.