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.
Key Differences Between Steps
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).
x-vfi-api-idempotencykey is required for both Affirm initiation and completion requests. It is also required when processing a refund for an 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.
A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.
63bbc548-d2de-4546-b106-880a5018461cThe identifier of payment provider contract you want to process the transaction request with.
30b8bec8-5042-4e67-939c-5453fbe41711The Phone Number registered with Vipps Mobile APP.
+31-6-11223344Checkout Redirect URL which will be used by Vipps on Payment Completion.
Flag to identify the transaction originated from APP or Browser.
falseExample: falseAmount 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.
150Flags a payment request for either pre-authorization or final authorization.
PRE_AUTHis used when the authorized amount is unknown and can be adjusted later.FINAL_AUTHis used when a final authorized amount is known and the transaction will definitely be captured in whole.
FINAL_AUTHPossible values: Whether auto-capture or not. Setting the value to 'false' will only authorize the transaction.
trueExample: falseThe ID of a customer.
0a57b387-2ba7-4f65-be2f-e176bb49d2ceThe IP Address of the customer where the transaction was initiated.
127.0.0.1A short descriptor to be shown on bank statement of the customer. Please refer to the integration guide for the format requirements.
A reference specified by the merchant to identify the transaction.
7a1db7a8-6f24-4bc5-a51b-cef33fc05140The full user agent string of the device the customer used to submit the transaction.
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
Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to ISO 4217.
Please note that Klarna only supports Norwegian krone (NOK).
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.
WALLETPossible values: 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
The Vipps Payment Initiation Response.
Bad Request
Error timestamp
1596467016700Indicates to the API client if a technical reversal has been completed by Verifone.
NONEPossible values: 400Example: 400Possible values: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Example: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Possible values: Unauthorised Request
Forbidden Request
Not Found Request
Internal Error
POST /oidc/api/v2/transactions/vipps HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 872
{
"payment_provider_contract": "30b8bec8-5042-4e67-939c-5453fbe41711",
"threed_secure": {
"eci_flag": "00",
"enrolled": "text",
"cavv": "text",
"cavv_algorithm": "text",
"pares_status": "text",
"xid": "text",
"ds_transaction_id": "text",
"threeds_version": "1.0.2"
},
"app_phone_number": "+31-6-11223344",
"redirect_url": "text",
"is_app": false,
"amount": 150,
"auth_type": "FINAL_AUTH",
"capture_now": false,
"customer": "0a57b387-2ba7-4f65-be2f-e176bb49d2ce",
"customer_ip": "127.0.0.1",
"dynamic_descriptor": "text",
"merchant_reference": "7a1db7a8-6f24-4bc5-a51b-cef33fc05140",
"shipping_information": {
"address": "3732 Metz Lane",
"city": "West Roxbury",
"country": "US",
"postal_code": "1114",
"email": "name@gmail.com",
"first_name": "Thelma",
"last_name": "Tatro",
"phone": 8577532706,
"state": "MA"
},
"user_agent": "text",
"sales_description": "text",
"currency_code": "NOK",
"sca_compliance_level": "WALLET",
"sca_exemption": "1"
}{
"details": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"timestamp": 1596467016700,
"reversal_status": "NONE",
"code": 400,
"message": "At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."
}MobilePay
MobilePay follows the same redirect pattern as Vipps.
Initiate a MobilePay payment.
A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.
63bbc548-d2de-4546-b106-880a5018461cThe identifier of payment provider contract you want to process the transaction request with.
30b8bec8-5042-4e67-939c-5453fbe41711Checkout Redirect URL which will be used by MobilePay on Payment Completion.
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.
0Flags a payment request for either pre-authorization or final authorization.
PRE_AUTHis used when the authorized amount is unknown and can be adjusted later.FINAL_AUTHis used when a final authorized amount is known and the transaction will definitely be captured in whole.
FINAL_AUTHPossible values: Whether auto-capture or not. Setting the value to 'false' will only authorize the transaction.
trueExample: falseThe ID of a customer.
0a57b387-2ba7-4f65-be2f-e176bb49d2ceThe IP Address of the customer where the transaction was initiated.
127.0.0.1A short descriptor to be shown on bank statement of the customer. Please refer to the integration guide for the format requirements.
A reference specified by the merchant to identify the transaction.
7a1db7a8-6f24-4bc5-a51b-cef33fc05140The full user agent string of the device the customer used to submit the transaction.
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
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).
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.
WALLETPossible values: 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
The MobilePay Payment Initiation Response.
Bad Request
Error timestamp
1596467016700Indicates to the API client if a technical reversal has been completed by Verifone.
NONEPossible values: 400Example: 400Possible values: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Example: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Possible values: Unauthorised Request
Forbidden Request
Not Found Request
Internal Error
POST /oidc/api/v2/transactions/mobilepay HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 819
{
"payment_provider_contract": "30b8bec8-5042-4e67-939c-5453fbe41711",
"threed_secure": {
"eci_flag": "00",
"enrolled": "text",
"cavv": "text",
"cavv_algorithm": "text",
"pares_status": "text",
"xid": "text",
"ds_transaction_id": "text",
"threeds_version": "1.0.2"
},
"redirect_url": "text",
"amount": 0,
"auth_type": "FINAL_AUTH",
"capture_now": false,
"customer": "0a57b387-2ba7-4f65-be2f-e176bb49d2ce",
"customer_ip": "127.0.0.1",
"dynamic_descriptor": "text",
"merchant_reference": "7a1db7a8-6f24-4bc5-a51b-cef33fc05140",
"shipping_information": {
"address": "3732 Metz Lane",
"city": "West Roxbury",
"country": "US",
"postal_code": "1114",
"email": "name@gmail.com",
"first_name": "Thelma",
"last_name": "Tatro",
"phone": 8577532706,
"state": "MA"
},
"user_agent": "text",
"sales_description": "text",
"currency_code": "EUR",
"sca_compliance_level": "WALLET",
"sca_exemption": "1"
}{
"details": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"timestamp": 1596467016700,
"reversal_status": "NONE",
"code": 400,
"message": "At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."
}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.
A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.
63bbc548-d2de-4546-b106-880a5018461cThe 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)
30b8bec8-5042-4e67-939c-5453fbe41711The Phone Number registered with Swish Mobile APP. This field is required for ECommerce flow, not needed MCommerce flow.
+31-6-11223344Amount 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.
150The ID of a customer.
0a57b387-2ba7-4f65-be2f-e176bb49d2ceThe IP Address of the customer where the transaction was initiated.
127.0.0.1A 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
A reference specified by the merchant to identify the transaction.
7a1db7a8-6f24-4bc5-a51b-cef33fc05140The full user agent string of the device the customer used to submit the transaction.
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
Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to ISO 4217.
Please note that Swish only supports Swedish krona (SEK).
The Swish Payment Initiation Response.
Bad Request
Error timestamp
1596467016700Indicates to the API client if a technical reversal has been completed by Verifone.
NONEPossible values: 400Example: 400Possible values: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Example: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Possible values: Unauthorised Request
Forbidden Request
Not Found Request
Internal Error
POST /oidc/api/v2/transactions/swish HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 544
{
"entity_id": "30b8bec8-5042-4e67-939c-5453fbe41711",
"app_phone_number": "+31-6-11223344",
"amount": 150,
"customer": "0a57b387-2ba7-4f65-be2f-e176bb49d2ce",
"customer_ip": "127.0.0.1",
"dynamic_descriptor": "text",
"merchant_reference": "7a1db7a8-6f24-4bc5-a51b-cef33fc05140",
"shipping_information": {
"address": "3732 Metz Lane",
"city": "West Roxbury",
"country": "US",
"postal_code": "1114",
"email": "name@gmail.com",
"first_name": "Thelma",
"last_name": "Tatro",
"phone": 8577532706,
"state": "MA"
},
"user_agent": "text",
"sales_description": "text",
"currency_code": "SEK"
}{
"details": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"timestamp": 1596467016700,
"reversal_status": "NONE",
"code": 400,
"message": "At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."
}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.
The OP Online Payment list of Banks Response.
Bad Request
Error timestamp
1596467016700Indicates to the API client if a technical reversal has been completed by Verifone.
NONEPossible values: 400Example: 400Possible values: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Example: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Possible values: Unauthorised Request
Forbidden Request
Not Found Request
Internal Error
GET /oidc/api/v2/get-op-banks HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"details": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"timestamp": 1596467016700,
"reversal_status": "NONE",
"code": 400,
"message": "At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."
}Initiate OP Online Payment
Initiate a OP Online payment.
A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.
63bbc548-d2de-4546-b106-880a5018461cThe identifier of payment provider contract you want to process the transaction request with.
30b8bec8-5042-4e67-939c-5453fbe41711OP bank ID for the bank to be used
Bank name for the selected Bank
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.
150The ID of a customer.
0a57b387-2ba7-4f65-be2f-e176bb49d2ceA short descriptor to be shown on the invoice of the customer. Please refer to the integration guide for the format requirements.
A reference specified by the merchant to identify the transaction.
7a1db7a8-6f24-4bc5-a51b-cef33fc05140The full user agent string of the device the customer used to submit the transaction.
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).
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
es-419this message will be shown on OP's payment list
redirect url for successful payments
redirect url for cancelled payments
redirect url for rejected payments
A settlement reference specified by the merchant to identify the transaction including checksum digit.
12345678912345680000Pattern: ^[0-9]{4,20}$The OP Online Payment Initiation Response.
Bad Request
Error timestamp
1596467016700Indicates to the API client if a technical reversal has been completed by Verifone.
NONEPossible values: 400Example: 400Possible values: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Example: At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL.Possible values: Unauthorised Request
Forbidden Request
Not Found Request
Internal Error
POST /oidc/api/v2/transactions/op-online-payment HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 680
{
"payment_provider_contract": "30b8bec8-5042-4e67-939c-5453fbe41711",
"bank_id": "text",
"bank_name": "text",
"amount": 150,
"customer": "0a57b387-2ba7-4f65-be2f-e176bb49d2ce",
"dynamic_descriptor": "text",
"line_items": [
{
"image_url": "text",
"name": "text",
"quantity": 1,
"unit_price": 1,
"unit_price_tax": 1,
"tax_rate": 15.1,
"discount_amount": 1,
"total_tax_amount": 1,
"total_amount": 1,
"sku": "text",
"description": "text",
"category": "DIGITAL_GOODS"
}
],
"merchant_reference": "7a1db7a8-6f24-4bc5-a51b-cef33fc05140",
"user_agent": "text",
"currency_code": "AED",
"language": "es-419",
"message_to_customer": "text",
"return_url": "text",
"cancel_url": "text",
"reject_url": "text",
"payout_reference": "12345678912345680000"
}{
"details": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"timestamp": 1596467016700,
"reversal_status": "NONE",
"code": 400,
"message": "At least one parameter is invalid. Examine the details property for more information. Invalid parameters are listed and prefixed accordingly: body for parameters submitted in the requests body, query for parameters appended to the requests URL, and params for templated parameters of the requests URL."
}Was this helpful?
