Iβve recently seen a few posts relating to the Payment Method Type Object and finding the required fields within each payment method of a given country.
List Payment Methods By Country
Lists the full payment methods for a given country. It will include information including the payment category (ewallet, card, cash, bank transfer, bank redirect, etc), currencies, if itβs expireable, and more fields described on the reference page.
Get Payment Method Required Fields
Includes a larger response and descriptions for a specific payment method in a country. For example the response to a JCB Debit Card used in Singapore sg_debit_jcb_card
shows the following.
Response
{
"status": {
"error_code": "",
"status": "SUCCESS",
"message": "",
"response_code": "",
"operation_id": "8ce804ed-e6e9-4928-a3e2-58ae2a345b61"
},
"data": {
"type": "sg_debit_jcb_card",
"fields": [
{
"name": "name",
"type": "string",
"regex": "",
"is_required": true,
"instructions": "card holder name"
},
{
"name": "number",
"type": "string",
"regex": "",
"is_required": true,
"instructions": "card number"
},
{
"name": "expiration_month",
"type": "string",
"regex": "",
"is_required": true,
"instructions": "expiration month as string, 01-12"
},
{
"name": "expiration_year",
"type": "string",
"regex": "",
"is_required": true,
"instructions": "expiration year in to digits as string, 18-99"
},
{
"name": "cvv",
"type": "string",
"regex": "",
"is_required": true,
"instructions": "card cvv"
}
],
"payment_method_options": [
{
"name": "3d_required",
"type": "boolean",
"regex": "",
"description": "Allows the client to determine whether the customer is required to complete 3DS authentication for the transaction",
"is_required": false,
"is_updatable": false
}
],
"payment_options": [
{
"name": "capture",
"type": "boolean",
"regex": "",
"description": "Determines when the payment is processed for capture.",
"is_required": false,
"is_updatable": false
},
{
"name": "complete_payment_url",
"type": "string",
"regex": "",
"description": "the complete_payment_url field must be filled in.",
"is_required": true,
"is_updatable": false
},
{
"name": "error_payment_url",
"type": "string",
"regex": "",
"description": "the error_payment_url field must be filled in.",
"is_required": true,
"is_updatable": false
},
{
"name": "statement_descriptor",
"type": "string",
"regex": "/^[a-zA-Z0-9]{0,22}/",
"description": "A text description suitable for a customer's payment statement. Limited to 22 characters.",
"is_required": false,
"is_updatable": false
}
],
"minimum_expiration_seconds": 0,
"maximum_expiration_seconds": 604800
}
}
You can see a number of fields are required for a payment including the cardholders name, number, exp month and year, the cvv, a URL for when the payment is complete and one for when there is an error. This is marked by "is_required": true,
These will be required when passing the information via API or adding the card to the customer.