For the complete documentation index, see llms.txt. This page is also available as Markdown.

Alternative Payment Methods

The APM endpoints follow a two-step pattern: Initiate creates the transaction and returns a redirect URL or client token, then the cardholder completes the flow externally. A second Complete call may be required to finalise the order.

Klarna

Klarna uses a two-step flow: initiate returns a client_token for the Klarna SDK; once the shopper completes checkout, call the complete endpoint with the authorization_token.

1

Initiate Klarna Payment

2

Complete Klarna Payment

Key Differences Between Steps

Step 1 — Initiate

  • entity_id ✅ Required

  • line_items ✅ Required

  • locale ✅ Required

  • Returns client_token for Klarna SDK

  • Returns payment_method_categories

Step 2 — Complete

  • id from Step 1 in path ✅ Required

  • authorization_token from Klarna SDK

  • Returns authorized_payment_method with payment_type and instalment details

Affirm

Affirm also requires a two-step flow. Initiation returns either a payment_url (REDIRECT mode) or a checkout_id and public_api_key (MODAL mode).

1

Initiate Affirm Payment

2

Complete Affirm Payment

Vipps

Vipps initiates and returns a redirect_url to which the cardholder is redirected to authenticate. No separate completion step is required — Vipps notifies Verifone of the outcome asynchronously.

Initiate a Vipps payment

post
/api/v2/transactions/vipps

Initiate a Vipps payment.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
x-vfi-api-idempotencykeystring · uuidOptional

A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.

Example: 63bbc548-d2de-4546-b106-880a5018461c
Body
payment_provider_contractstring · uuid-flexibleRequired

The identifier of payment provider contract you want to process the transaction request with.

Example: 30b8bec8-5042-4e67-939c-5453fbe41711
app_phone_numberstring · max: 18Optional

The Phone Number registered with Vipps Mobile APP.

Example: +31-6-11223344
redirect_urlstring · max: 2048Required

Checkout Redirect URL which will be used by Vipps on Payment Completion.

is_appbooleanOptional

Flag to identify the transaction originated from APP or Browser.

Default: falseExample: false
amountintegerRequired

Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details. For Account Verification transactions, provide 0 as value for this field.

Example: 150
auth_typestring · enumOptional

Flags a payment request for either pre-authorization or final authorization.

  • PRE_AUTH is used when the authorized amount is unknown and can be adjusted later.
  • FINAL_AUTH is used when a final authorized amount is known and the transaction will definitely be captured in whole.
Default: FINAL_AUTHPossible values:
capture_nowbooleanOptional

Whether auto-capture or not. Setting the value to 'false' will only authorize the transaction.

Default: trueExample: false
customerstring · uuid-flexibleRequired

The ID of a customer.

Example: 0a57b387-2ba7-4f65-be2f-e176bb49d2ce
customer_ipone of · max: 15Optional

The IP Address of the customer where the transaction was initiated.

Example: 127.0.0.1
string · ipv4Optional
or
string · ipv6Optional
dynamic_descriptorstring · max: 25Optional

A short descriptor to be shown on bank statement of the customer. Please refer to the integration guide for the format requirements.

merchant_referencestring · max: 50Required

A reference specified by the merchant to identify the transaction.

Example: 7a1db7a8-6f24-4bc5-a51b-cef33fc05140
user_agentstring · max: 256Optional

The full user agent string of the device the customer used to submit the transaction.

sales_descriptionstring · max: 200Optional

A reference used by the merchant to typically capture a description of the service provided. It could then be used by the merchant to help locate transactions. One could envision a situation where a merchant is trying to locate a transaction/ receipt but in speaking with the customer, the only (or at least a predominant) detail is what service was rendered

currency_codestring · enumRequired

Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to ISO 4217.

Please note that Klarna only supports Norwegian krone (NOK).

Possible values:
sca_compliance_levelstring · enumOptional
  • NONE: No SCA required.
  • WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not.
  • FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
Default: WALLETPossible values:
sca_exemptionstring · enumOptional

Use this field to request your transaction to be exempted from the application of the Strong Customer Authentication (SCA). Be advised that the use of this field may result to your liability in case of fraudulent transaction. Possible Values: 1 - Low value payment 2 - Acquirer Transaction Risk Analysis 3 - Trusted beneficiary exemption 4 - Secure Corporate Payment (SCP) exemption 5 - Merchant Initiated Transaction 6 - SCA Delegation.

NOTE: This only applies when sca_compliance_level = NONE

Possible values:
Responses
post
/api/v2/transactions/vipps

MobilePay

MobilePay follows the same redirect pattern as Vipps.

Initiate a MobilePay payment

post
/api/v2/transactions/mobilepay

Initiate a MobilePay payment.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
x-vfi-api-idempotencykeystring · uuidOptional

A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.

Example: 63bbc548-d2de-4546-b106-880a5018461c
Body
payment_provider_contractstring · uuid-flexibleRequired

The identifier of payment provider contract you want to process the transaction request with.

Example: 30b8bec8-5042-4e67-939c-5453fbe41711
redirect_urlstring · max: 2048Required

Checkout Redirect URL which will be used by MobilePay on Payment Completion.

amountintegerRequired

Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details. For Account Verification transactions, provide 0 as value for this field.

Example: 0
auth_typestring · enumOptional

Flags a payment request for either pre-authorization or final authorization.

  • PRE_AUTH is used when the authorized amount is unknown and can be adjusted later.
  • FINAL_AUTH is used when a final authorized amount is known and the transaction will definitely be captured in whole.
Default: FINAL_AUTHPossible values:
capture_nowbooleanOptional

Whether auto-capture or not. Setting the value to 'false' will only authorize the transaction.

Default: trueExample: false
customerstring · uuid-flexibleRequired

The ID of a customer.

Example: 0a57b387-2ba7-4f65-be2f-e176bb49d2ce
customer_ipone of · max: 15Optional

The IP Address of the customer where the transaction was initiated.

Example: 127.0.0.1
string · ipv4Optional
or
string · ipv6Optional
dynamic_descriptorstring · max: 25Optional

A short descriptor to be shown on bank statement of the customer. Please refer to the integration guide for the format requirements.

merchant_referencestring · max: 50Required

A reference specified by the merchant to identify the transaction.

Example: 7a1db7a8-6f24-4bc5-a51b-cef33fc05140
user_agentstring · max: 256Optional

The full user agent string of the device the customer used to submit the transaction.

sales_descriptionstring · max: 200Optional

A reference used by the merchant to typically capture a description of the service provided. It could then be used by the merchant to help locate transactions. One could envision a situation where a merchant is trying to locate a transaction/ receipt but in speaking with the customer, the only (or at least a predominant) detail is what service was rendered

currency_codestring · enumRequired

Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to ISO 4217.

Please note that Klarna only supports EURO (EUR) and Danish krone (DKK).

Possible values:
sca_compliance_levelstring · enumOptional
  • NONE: No SCA required.
  • WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not.
  • FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
Default: WALLETPossible values:
sca_exemptionstring · enumOptional

Use this field to request your transaction to be exempted from the application of the Strong Customer Authentication (SCA). Be advised that the use of this field may result to your liability in case of fraudulent transaction. Possible Values: 1 - Low value payment 2 - Acquirer Transaction Risk Analysis 3 - Trusted beneficiary exemption 4 - Secure Corporate Payment (SCP) exemption 5 - Merchant Initiated Transaction 6 - SCA Delegation.

NOTE: This only applies when sca_compliance_level = NONE

Possible values:
Responses
post
/api/v2/transactions/mobilepay

Swish

Swish supports both e-commerce (redirect) and m-commerce (in-app token) flows. For the m-commerce flow, omit app_phone_number — the response includes payment_request_token to open the Swish app directly.

Initiate a Swish payment

post
/api/v2/transactions/swish

Initiate a Swish payment.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
x-vfi-api-idempotencykeystring · uuidOptional

A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.

Example: 63bbc548-d2de-4546-b106-880a5018461c
Body
entity_idstring · uuid-flexibleOptional

The identifier of merchant entity you want to process the transaction request with. Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)

Example: 30b8bec8-5042-4e67-939c-5453fbe41711
app_phone_numberstring · max: 18Optional

The Phone Number registered with Swish Mobile APP. This field is required for ECommerce flow, not needed MCommerce flow.

Example: +31-6-11223344
amountintegerRequired

Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details. For Account Verification transactions, provide 0 as value for this field.

Example: 150
customerstring · uuid-flexibleOptional

The ID of a customer.

Example: 0a57b387-2ba7-4f65-be2f-e176bb49d2ce
customer_ipone of · max: 15Optional

The IP Address of the customer where the transaction was initiated.

Example: 127.0.0.1
string · ipv4Optional
or
string · ipv6Optional
dynamic_descriptorstring · max: 50Optional

A short descriptor to be shown on bank statement of the customer and also shown in the Swish application. Max 50 chars, allowed characters are the letters a-ö, A-Ö, the numbers 0-9 and the special characters :;.,?!()” and space

merchant_referencestring · max: 50Required

A reference specified by the merchant to identify the transaction.

Example: 7a1db7a8-6f24-4bc5-a51b-cef33fc05140
user_agentstring · max: 256Optional

The full user agent string of the device the customer used to submit the transaction.

sales_descriptionstring · max: 200Optional

A reference used by the merchant to typically capture a description of the service provided. It could then be used by the merchant to help locate transactions. One could envision a situation where a merchant is trying to locate a transaction/ receipt but in speaking with the customer, the only (or at least a predominant) detail is what service was rendered

currency_codestring · enumRequired

Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to ISO 4217.

Please note that Swish only supports Swedish krona (SEK).

Possible values:
Responses
post
/api/v2/transactions/swish

OP Online Payment

OP Online Payment requires selecting a bank before initiating the transaction. Use the banks list endpoint first.

Get Available Banks

Get a list of Banks supported by OP Online Payment

get
/api/v2/get-op-banks

Get a list of Banks supported by OP Online Payment.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
get
/api/v2/get-op-banks

Initiate OP Online Payment

Initiate a OP Online payment

post
/api/v2/transactions/op-online-payment

Initiate a OP Online payment.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
x-vfi-api-idempotencykeystring · uuidOptional

A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.

Example: 63bbc548-d2de-4546-b106-880a5018461c
Body
payment_provider_contractstring · uuid-flexibleRequired

The identifier of payment provider contract you want to process the transaction request with.

Example: 30b8bec8-5042-4e67-939c-5453fbe41711
bank_idstring · max: 40Required

OP bank ID for the bank to be used

bank_namestringOptional

Bank name for the selected Bank

amountintegerRequired

Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details. For Account Verification transactions, provide 0 as value for this field.

Example: 150
customerstring · uuid-flexibleOptional

The ID of a customer.

Example: 0a57b387-2ba7-4f65-be2f-e176bb49d2ce
dynamic_descriptorstring · max: 50Optional

A short descriptor to be shown on the invoice of the customer. Please refer to the integration guide for the format requirements.

merchant_referencestring · max: 50Required

A reference specified by the merchant to identify the transaction.

Example: 7a1db7a8-6f24-4bc5-a51b-cef33fc05140
user_agentstring · max: 256Optional

The full user agent string of the device the customer used to submit the transaction.

currency_codestring · enumRequired

Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to ISO 4217.

Deprecated: BYR (replaced by BYN), FRF (replaced by EUR), LTL (replaced by EUR), LVL (replaced by EUR), MRO (replaced by MRU), STD (replaced by STN), USS (no replacement), VEF (replaced by VES), ZMK (replaced by ZMV) and BTC (Bitcoin only supported as Crypto Amount).

Possible values:
languagestring · min: 2 · max: 11Optional

The BCP-47 language tag. Composed of:

  • The ISO-639 alpha-1 or ISO-639 alpha-2 language code
  • (Optional) The ISO-15924 script tag
  • The ISO-3166 alpha-2 country code

Example: es-419
message_to_customerstring · max: 500Optional

this message will be shown on OP's payment list

return_urlstringRequired

redirect url for successful payments

cancel_urlstringRequired

redirect url for cancelled payments

reject_urlstringRequired

redirect url for rejected payments

payout_referencestring · min: 4 · max: 20Optional

A settlement reference specified by the merchant to identify the transaction including checksum digit.

Example: 12345678912345680000Pattern: ^[0-9]{4,20}$
Responses
post
/api/v2/transactions/op-online-payment

Was this helpful?