Klarna Docs - Customer data requirements for authorize()
Customer data requirements for authorize()

This section describes the customer data we require to place an order, depending on the purchase country.

As we offer credit to your customers, we need to have enough data to do a proper risk and fraud assessment. This is only possible if we have high-quality customer data in a standardized format.

We also need to manage customer data to ensure the best customer experience in the order management process.

Ensure customer information is not sent before confirming the intention to pay with Klarna to remain GDPR compliant. This confirmation typically occurs at the time of authorization.

Klarna payments API can handle both billing and shipping addresses separately. If you don't provide a shipping address, we duplicate the billing address and use it as the shipping address in our customer data.

During our assessment, the fraud risk might be higher if:

  • The billing and shipping addresses are different.
  • The customer of the billing and shipping addresses is different.

The customer data you send us in later calls after authorize() is merged with the data you entered previously.

Keep in mind that data while points may have different requirement level (optional or mandatory) in previous operations performed (create_session, update), but if any field defined as mandatory on authorize() call is missing, you get an error message. You then need to collect all missing  authorize() mandatory data and perform a new attempt to complete the purchase.

Depending on the data standards of each country, we require different information per country market. To ensure a friendly customer experience, you need to properly provide the customer details in the mandatory fields.

street_address2 is only to add extra details to the address, such as the floor and the apartment number. Send the main address information in the regular street_address field.

The following Unicode blocks are supported for all markets except Greek

BASIC_LATIN
LATIN_1_SUPPLEMENT
LATIN_EXTENDED_A
PHONETIC_EXTENSIONS

The following Unicode blocks are supported for the Greek market

BASIC_LATIN
GREEK
GREEK_EXTENDED

Additionally, characters are also matched against the following Unicode categories

Li (Lower case characters)
Lu (Upper case characters)
Nd (Decimal digit number characters)

Note that any characters that don't belong to the categories above are considered special characters. The characters allowed in each field are listed in the market overview tables below.

The following table shows the meaning of the symbols you can see in the customer data tables.

SymbolMeaning
*Mandatory for authorize() operation
-Optional for authorize() operation
>Derived
!See notes
?Depending on the payment method. If not added, Klarna will collect the details in the purchase flow.
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
? national_identification_numberNecessary for all credit payment methods and Pay Now.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- care_ofTo address the order to another recipient. B2C purchases only.
* cityCity field according to the market.
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
> gender - from PNO
> date_of_birth - from PNO
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
- titleMr, Ms
? date_of_birthNecessary for all credit payment methods and Pay Now.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- street_address2Second address line.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
* cityCity field according to the market.
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
> genderDerived from title
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
- postal_code (eircode)Validation according to Universal Postal Union addressing systems
? date_of_birthNecessary for all credit payment methods and Pay Now.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- street_address2Second address line.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
* cityCity field according to the market.
- regionCounty, E.G "Antrim".
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
? date_of_birthNecessary for all credit payment methods.
- titlede:“Herr”, “Frau”; de_CH: “Herr, “Frau”; it_CH: “Sig.", “Sig.ra”; fr_CH: “M", “Mme”; nl: “Dhr.", “Mevr.”; nl_BE: “Dhr”, “Mevr”; fr_BE: “M", “Mme”
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- care_ofTo address the order to another recipient. B2C purchases only.
* cityCity field according to the market.
- phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
> genderDerived from title.
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
? date_of_birthNecessary for all credit payment methods.
? place_of_birthNecessary for all credit payment methods.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- street_address2Second address line.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
* cityCity field according to the market.
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
? date_of_birthNecessary for all credit payment methods.
? place_of_birthNecessary for all credit payment methods.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- street_address2Second address line.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
* cityCity field according to the market.
- regionProvince in 2 letter format e.g "AG".
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
This section only applies to:
Customer DetailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
? date_of_birthNecessary for all credit payment methods.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- street_address2Second address line.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
* cityCity field according to the market.
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
This section only applies to:
Customer DetailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
- postal_codeValidation according to Universal Postal Union addressing systems.
? date_of_birthNecessary for all credit payment methods.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
Letters with diacritics are allowed.
* family_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
Letters with diacritics are allowed.
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
Letters with diacritics are allowed.
- street_address2Street name and number.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
Letters with diacritics are allowed.
* cityCity field according to the market.
Letters with diacritics are allowed.
- regionPostal address region (or sector for addresses in Bucharest).
For example Cluj (region) or Sector 6 (sector).
Letters with diacritics are allowed.
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
? date_of_birthNecessary for all credit payment methods.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- street_address2Address line 2, apartment, suite, for example, apt 2.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
* regionFor US: Two-letter state code in ISO 3166-1 alpha-2 format. For example, “CA” for California
For Canada: Two-letter province code , for example, "ON" for Ontario.
For Mexico: Two/three-letter format (ISO 3166-1 alpha-2) for the state. For example, “CDMX” for Ciudad de Mexico, "JAL" for Jalisco, "NL" for Nuevo León.
* cityCity field according to the market.
* phoneFollow the standards defined inhttps://github.com/googlei18n/libphonenumber
This section only applies to:
Customer detailsComment
* emailMust include @ and domain.
Pattern: (?<local>^[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'+/=?^_`{|}~-]+)*)@(?<domain>(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?<tld>[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$))
* postal_codeValidation according to Universal Postal Union addressing systems.
? date_of_birthNecessary for all credit payment methods.
* given_nameCustomers given name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* family_nameCustomers family name in UTF-8 encoding.
Cannot be only numbers, must be more than 1 character.
Allowed special characters: -'’.°ºᵃª
* street_addressStreet name and number following Universal Postal Union addressing systems
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
- street_address2Second address line.
Allowed special characters: -'´`",.:;#&/()+@ °ºᵃª_ \
* regionFor AU: State code in ISO 3166-2 format, for example, “QLD” for Queensland, “WA” for “Western Australia”.
For NZ: Suburb e.g ​​"Avondale"
* cityCity field according to the market.
* phoneFollow the standards defined in https://github.com/googlei18n/libphonenumber
2.2: Get authorization
Now that your customer selected Klarna to pay, let's get the purchase authorized.