You don't need to send additional fields for cards. To see optional fields that you can send for all payment methods, choose the endpoint you integrated:
If your integration uses iOS Components v5.0.0 or later, configure and create an instance of the cards Component:
//Create a payment method object for cards.
let paymentMethod = paymentMethods.paymentMethod(ofType: cardComponentPaymentMethod.self)
//Create a configuration object for the cards Component.
var cardComponentConfiguration = cardComponent.Configuration()
//Set additional parameters on the configuration object.
cardComponentConfiguration.localizationParameters = //Optional custom localization parameters.
There is no required cards specific integration for Components.
There is no required cards specific integration for Components.
Optional configuration
If your integration uses iOS Components v5.0.0 or later, you can optionally include the following when you configure the Component:
Parameter name
Description
Default
showsHolderNameField
Set to true to show the field for the cardholder name.
false
showsSecurityCodeField
Set to false to hide the security code (CVV/CVC) field.
Set to true to collect the shopper's billing address and mark the fields as required.
false
billingAddress.mode
Sets which billing address fields to show in the payment form. Possible values: - full: show all billing address fields. - none: don't show billing address fields. - postalCode: show only the postal code field.
none
billingAddress.countryCodes
Array of allowed country codes for the billing address. For example, ['US', 'CA', 'BR'].
nil: all country codes are supported.
koreanAuthenticationMode
For Korean cards, sets if security fields show in the payment form. Possible values: - show: show the fields. - hide: don't show the fields. - auto: the field appears for cards issued in South Korea.
auto
socialSecurityNumberMode
For Brazilian cards, sets if the CPF/CNPJ social security number field shows in the payment form. Possible values: - show: show the field. - hide: don't show the field. - auto: the field appears based on the detected card number.
auto
If your integration uses iOS Components v4.10.3 or earlier, you can optionally include the following when you configure the Component:
Parameter name
Description
Default
showsHolderNameField
Set to true to show the field for the cardholder name.
false
showsSecurityCodeField
Set to false to hide the security code (CVV/CVC) field.
Set to true to collect the shopper's billing address and mark the fields as required.
false
billingAddress.mode
Sets which billing address fields to show in the payment form. Possible values: - full: show all billing address fields. - none: don't show billing address fields. - postalCode: show only the postal code field.
none
billingAddress.countryCodes
Array of allowed country codes for the billing address. For example, ['US', 'CA', 'BR'].
nil: all country codes are supported.
koreanAuthenticationMode
For Korean cards, sets if security fields show in the payment form. Possible values: - show: show the fields. - hide: don't show the fields. - auto: the field appears for cards issued in South Korea.
auto
socialSecurityNumberMode
For Brazilian cards, sets if the CPF/CNPJ social security number field shows in the payment form. Possible values: - show: show the field. - hide: don't show the field. - auto: the field appears based on the detected card number.
auto
Showing debit and credit cards separately
Components can show separate payment forms for debit cards and credit cards. Here are example use cases for this feature:
In Brazil, Mexico, and Finland, many shoppers use combo cards that can make both debit or credit transactions. Separate forms for Debit Card and Credit Card lets the shopper choose the type of transaction.
To accept card payments in Sweden, local legislation requires you to show the debit card payment options before the credit card ones.
When you make a /sessions request from your server, include:
For debit transactions, we highly recommend using 3D Secure and Automatic Capture due to some issuers' restrictions.
Sweden
To comply with local legislation, set countryCode to SE in your request. Components shows the payment form for Debit Card before the one for Credit Card.
Card brand recognition
When the shopper is entering their card details, Components tries to recognize the card brand. When successful, Components renders the brand icon and the corresponding input field for the card security code (CVC, CVV, or CID).
Co-branded cards
Co-branded cards issued in Europe are rendered by Drop-in according to the European regulatory guidelines (EU IFR Regulation 2015/751 article 8). This means that Components renders all supported brands, and allows the cardholder to choose their preferred brand.
Stored card payments
Adyen's tokenization service allows you to securely store shopper's card details for payments. You first need to create a token.
Supported from Components v5.0.0 and later.
Creating a token
Include the storedPaymentMethodMode parameter in your /sessions request. Possible values:
Value
Description
disabled (default)
Don't store payment details.
askForConsent
If shopperReference is included in the request, display a checkbox in the payment form that the shopper can select to store their payment details.
enabled
If shopperReference is included in the request, store the shopper's payment details without asking them.
If you or the shopper chooses to store payment details, your instance of AdyenSession creates a token when the shopper pays.
Making a payment with a token
When the shopper pays, your instance of AdyenSession includes the shopper's stored card details. You can also use tokens to make shopper-not-present payments for subscriptions or contracts.
This is the default for Components v4.10.0 and earlier.
Create a token
When a shopper chooses to pay with card, the Component renders a switch for saving the card details for future payments.
If the shopper chooses to save their card details when making a payment, the didSubmit method from the Component will include data.storePaymentMethod. Pass this to your server.
To create a token, include in your /payments request:
storePaymentMethod: The data.storePaymentMethod from your client app.
shopperReference: Your unique identifier for the shopper.
If you don't want to show the switch for saving card details, set showsStorePaymentMethodField to false when adding the Card Component:
If you want to accept credit card installments, include in the /sessions request, include the installmentOptions object which includes the following fields:
Field
Required
Description
values
An array of the number of installments that the shopper can choose.
preselectedValue
The preselected number of installments in the payment form.
plans
An array that shows the types of installment plans that the shopper can choose. Possible values: regular and revolving. If not included, the default is regular.
If you want to accept credit card installments, initialize installment options and installment configuration:
monthValues: an array of unsigned integers for the number of installments offered. Must not be empty and must include integers greater than 1. For example, if you offer three, six, or nine installments, include [3, 6, 9].
maxInstallmentMonth: an unsigned integer for the maximum number of installments offered. The result is the option from 2 to the number you specify. The integer must be greater than 1. For example, if you include 4, the shopper can choose 1, 2, 3, or 4 installments.
Card-based options: offered based on card types. Create an installment configuration, providing the card-based options:
Card-based installment options
//Specify CardType. For example, for Visa, use [visa: installmentOptions].
let installmentConfiguration.init(cardBasedOptions: [CardType: installmentOptions])
installmentOptions: installmentConfiguration
If your client-side integration isn't ready, you can test API requests with encrypted card details by adding a test_ prefix to the test card details.
Before making live card payments:
Test your integration using our test card numbers. You can check the status of test payments in your Customer Area > Transactions > Payments.
Before you can start accepting card payments in the live environment, you need to assess your PCI DSS compliance and submit the required Self-Assessment Questionnaire A document.