Server API version 1.0
Java

Results for

icon-search-large No search results yet
Enter your search query above

Get payment products

GET https://{domainname}/v1/{merchantId}/products

Products

Products is your entry on all things related to payment products. You will be able to retrieve all relevant payment products, based on your configuration and provided filters, their associated fields and potential directories. You can retrieve all of the information in one call or do calls on individual payment products. The data returned is designed to give you all the required information to build up your interface towards your consumers in a dynamic fashion. By doing it like that you know that you will be ready for future changes and new payment products without much effort.

Request

By providing additional details on the transaction the list of payment products can be limited. This allows you to not have payment products returned that don't support recurring transactions when you are setting your user up for a recurring payment. To reduce the data that is returned even more you can have us hide certain elements from the response. This is done using the hide field and allows you to not have us return the list of fields associated with each of the payment products.

By submitting the locale you can benefit from the server side language packs if our application does not have this or if you are using the JavaScript SDK. Note however that the values returned will be based on our default language packs and not on any modifications that you might have made through the Configuration Center. Our iOS and Android SDKs have language packs included that allow you to manage them easily.

Query parameters

Query parameters for this method

  Property Type Required Repeat Description
countryCode string yes no
ISO 3166-1 alpha-2 country code
currencyCode string yes no
Three-letter ISO currency code representing the currency for the amount
locale string no no
Locale used in the GUI towards the consumer. Please make sure that a language pack is configured for the locale you are submitting. If you submit a locale that is not setup on your account we will use the default language pack for your account. You can easily upload additional language packs and set the default language pack in the Configuration Center.
amount integer no no
Amount in cents and always having 2 decimals
isRecurring boolean no no
This allows you to filter payment products based on their support for recurring or not
  • true
  • false
If this is omitted all payment products are returned.
hide string no yes
Allows you to hide elements from the response, reducing the amount of data that needs to be returned to your client. Possible options are:
  • fields - This will not return any data on fields per payment product

Request example

SDK: Java

This scenario you will probably use the most

  • FindProductsParams query = new FindProductsParams();
    query.setCountryCode("US");
    query.setCurrencyCode("USD");
    query.setLocale("en_US");
    query.setAmount(1000L);
    query.setIsRecurring(true);
    query.addHide("fields");
    
    PaymentProducts response = client.merchant("merchantId").products().find(query);
    

Responses

Please find below an overview of the possible responses.

Response 200 - OKPaymentProducts

The response contains an array of payment products that match the filters supplied in the request.

             Property Type Required Description
array no
Array containing payment products and their characteristics
object no SDK object type: PaymentProduct
array no
List of tokens for that payment product
object no SDK object type: AccountOnFile
array no
Array containing the details of the stored token
object no SDK object type: AccountOnFileAttribute
key string no

Name of the key or field

mustWriteReason enum no

The reason why the status is MUST_WRITE. Currently only "IN_THE_PAST" is possible as value (for expiry date), but this can be extended with new values in the future.

status enum no

Possible values:
  • READ_ONLY - attribute cannot be updated and should be presented in that way to the user
  • CAN_WRITE - attribute can be updated and should be presented as an editable field, for example an expiration date that will expire very soon
  • MUST_WRITE - attribute should be updated and must be presented as an editable field, for example an expiration date that has already expired
Any updated values that are entered for CAN_WRITE or MUST_WRITE will be used to update the values stored in the token.

value string no

Value of the key or field

object no SDK object type: AccountOnFileDisplayHints
Object containing information for the client on how best to display this field
array no
Array of attribute keys and their mask
object no SDK object type: LabelTemplateElement
attributeKey string no

Name of the attribute that is shown to the consumer on selection pages or screens

mask string no

Regular mask for the attributeKey
Note: The mask is optional as not every field has a mask

logo string no

Partial URL that you can reference for the image of this payment product. You can use our server-side resize functionality by appending '?size={{width}}x{{height}}' to the full URL, where width and height are specified in pixels. The resized image will always keep its correct aspect ratio.

id integer no

ID of the account on file record

paymentProductId integer no

Payment product identifier
Please see payment products for a full overview of possible values.

allowsRecurring boolean no

Indicates if the product supports recurring payments
  • true - This payment product supports recurring payments
  • false - This payment product does not support recurring transactions and can only be used for one-off payments

allowsTokenization boolean no

Indicates if the payment details can be tokenized for future re-use
  • true - Payment details from payments done with this payment product can be tokenized for future re-use
  • false - Payment details from payments done with this payment product can not be tokenized

object no SDK object type: AuthenticationIndicator
Indicates if the payment product supports 3D Security (mandatory, optional or not needed).
name string no

The name of the indicator as to how it is mapped in the response.

value string no

The value of the indicator as to how it is mapped in the response.

autoTokenized boolean no

Indicates if the payment details can be automatically tokenized for future re-use
  • true - Payment details from payments done with this payment product can be automatically tokenized for future re-use
  • false - Payment details from payments done with this payment product can not be automatically tokenized

canBeIframed boolean no

This field is only relevant for payment products that use third party redirects. This field indicates if the third party disallows their payment pages to be embedded in an iframe using the X-Frame-Options header.
  • true - the third party allows their payment pages to be embedded in an iframe.
  • false - the third party disallows their payment pages to be embedded in an iframe.

deviceFingerprintEnabled boolean no

Indicates if device fingerprint is enabled for the product
  • true
  • false

object no SDK object type: PaymentProductDisplayHints
Object containing display hints like the order in which the product should be shown, the name of the product and the logo
displayOrder integer no

Determines the order in which the payment products and groups should be shown (sorted ascending)

label string no

Name of the field based on the locale that was included in the request

logo string no

Partial URL that you can reference for the image of this payment product. You can use our server-side resize functionality by appending '?size={{width}}x{{height}}' to the full URL, where width and height are specified in pixels. The resized image will always keep its correct aspect ratio.

array no
Object containing all the fields and their details that are associated with this payment product. If you are not interested in the data on the fields you should have us filter them our (using filter=fields in the query-string)
object no SDK object type: PaymentProductField
object no SDK object type: PaymentProductFieldDataRestrictions
Object containing data restrictions that apply to this field, like minimum and/or maximum length
isRequired boolean no

  • true - Indicates that this field is required
  • false - Indicates that this field is optional

object no SDK object type: PaymentProductFieldValidators
Object containing the details of the validations on the field
object no SDK object type: BoletoBancarioRequirednessValidator
Indicates the requiredness of the field based on the fiscalnumber for Boleto Bancario
fiscalNumberLength integer no

When performing a payment with Boleto Bancario, some values are only required when the fiscalnumber has a specific length. The length the fiscalnumber has to have to make the field required is defined here. For example the CompanyName is required when the fiscalnumber is a CNPJ. The firstname and surname are required when the fiscalnumber is a CPF.

emailAddress object no SDK object type: EmptyValidator
Indicates that the content should be validated against the rules for an email address
expirationDate object no SDK object type: EmptyValidator
Indicates that the content should be validated against the rules for an expiration date (it should be in the future)
object no SDK object type: FixedListValidator
Indicates that content should be one of the, in this object, listed items
allowedValues array of string no
List of the allowed values that the field will be validated against
iban object no SDK object type: EmptyValidator
Indicates that the content of this (iban) field needs to validated against format checks and modulo check (as described in ISO 7064)
object no SDK object type: LengthValidator
Indicates that the content needs to be validated against length criteria defined in this object
maxLength integer no

The maximum allowed length

minLength integer no

The minimum allowed length

luhn object no SDK object type: EmptyValidator
Indicates that the content needs to be validated using a LUHN check
object no SDK object type: RangeValidator
Indicates that the content needs to be validated against a, in this object, defined range
maxValue integer no

Upper value of the range that is still valid

minValue integer no

Lower value of the range that is still valid

object no SDK object type: RegularExpressionValidator
A string representing the regular expression to check
regularExpression string no

Contains the regular expression that the value of the field needs to be validated against

termsAndConditions object no SDK object type: EmptyValidator
Indicates that the content should be validated as such that the consumer has accepted the field as if they were terms and conditions of a service
object no SDK object type: PaymentProductFieldDisplayHints
Object containing display hints for this field, like the order, mask, preferred keyboard
alwaysShow boolean no

  • true - Indicates that this field is advised to be captured to increase the success rates even-though it isn't marked as required. Please note that making the field required could hurt the success rates negatively. This boolean only indicates our advise to always show this field to the consumer.
  • false - Indicates that this field is not to be shown unless it is a required field.

displayOrder integer no

The order in which the fields should be shown (ascending)

object no SDK object type: PaymentProductFieldFormElement
Object detailing the type of form element that should be used to present the field
type string no

Type of form element to be used. The following types can be returned:
  • text - A normal text input field
  • list - A list of values that the consumer needs to choose from, is detailed in the valueMapping array
  • currency - Currency fields should be split into two fields, with the second one being specifically for the cents
  • boolean - Boolean fields should offer the consumer a choice, like accepting the terms and conditions of a product.
  • date - let the consumer pick a date.

array no
An array of values and displayNames that should be used to populate the list object in the GUI
object no SDK object type: ValueMappingElement
array no
List of extra data of the value.
object no SDK object type: PaymentProductFieldDisplayElement
id string no

The ID of the display element.

type enum no

The type of the display element. Indicates how the value should be presented. Possible values are:
  • STRING - as plain text
  • CURRENCY - as an amount in cents displayed with a decimal separator and the currency of the payment
  • PERCENTAGE - as a number with a percentage sign
  • INTEGER - as an integer
  • URI - as a link

value string no

the value of the display element.

displayName string no

Deprecated: use displayElement with ID 'displayName' instead.
Key name

value string no

Value corresponding to the key

label string no

Label/Name of the field to be used in the user interface

link string no

Link that should be used to replace the '{link}' variable in the label.

mask string no

A mask that can be used in the input field. You can use it to inject additional characters to provide a better user experience and to restrict the accepted character set (illegal characters to be ignored during typing).
* is used for wildcards (and also chars)
9 is used for numbers
Everything outside {{ and }} is used as-is.

obfuscate boolean no

  • true - The data in this field should be obfuscated as it is entered, just like a password field
  • false - The data in this field does not need to be obfuscated

placeholderLabel string no

A placeholder value for the form element

preferredInputType string no

The type of keyboard that can best be used to fill out the value of this field. Possible values are:
  • PhoneNumberKeyboard - Keyboard that is normally used to enter phone numbers
  • StringKeyboard - Keyboard that is used to enter strings
  • IntegerKeyboard - Keyboard that is used to enter only numerical values
  • EmailAddressKeyboard - Keyboard that allows easier entry of email addresses

object no SDK object type: PaymentProductFieldTooltip
Object that contains an optional tooltip to assist the consumer
image string no

Relative URL that can be used to retrieve an image for the tooltip image. You can use our server-side resize functionality by appending '?size={{width}}x{{height}}' to the full URL, where width and height are specified in pixels. The resized image will always keep its correct aspect ratio.

label string no

A text explaining the field in more detail. This is meant to be used for displaying to the consumer.

id string no

The ID of the field

type enum no

The type of field, possible values are:
  • string - Any UTF-8 chracters
  • numericstring - A string that consisting only of numbers. Note that you should strip out anything that is not a digit, but leading zeros are allowed
  • date - Date in the format DDMMYYYY
  • expirydate - Expiration date in the format MMYY
  • integer - An integer
  • boolean - A boolean

usedForLookup boolean no

Indicates that the product can be used in a get customer details call and that when that call is done the field should be supplied as (one of the) key(s) with a valid value.

fieldsWarning string no

If one or more of the payment product fields could not be constructed, no payment product fields will be returned and a message will be present in this field stating why.

id integer yes

The ID of the payment product in our system

maxAmount integer no

Maximum amount in EUR cents (using 2 decimals, so 1 EUR becomes 100 cents) for transactions done with this payment product

minAmount integer no

Minimum amount in EUR cents (using 2 decimals, so 1 EUR becomes 100 cents) for transactions done with this payment product

mobileIntegrationLevel string no

This provides insight into the level of support for payments using a device with a smaller screen size. You can for instance use this to rank payment products differently on devices with a smaller screen. Possible values are:
  • NO_SUPPORT - The payment product does not work at all on a mobile device
  • BASIC_SUPPORT - The payment product has not optimized its user experience for devices with smaller screens
  • OPTIMISED_SUPPORT - The payment product offers a user experience that has been optimized for devices with smaller screens

paymentMethod string no

Indicates which payment method will be used for this payment product. Payment method is one of:
  • bankTransfer
  • card
  • cash
  • directDebit
  • eInvoice
  • invoice
  • redirect

paymentProductGroup string no

The payment product group that has this payment product, if there is any. Not populated otherwise. Currently only one payment product group is supported:
  • cards

usesRedirectionTo3rdParty boolean no

Indicates whether the payment product requires redirection to a third party to complete the payment. You can use this to filter out products that require a redirect if you don't want to support that.
  • true - Redirection is required
  • false - No redirection is required

Response example

SDK: Java

This scenario you will probably use the most

  • {
        "paymentProducts" : [
            {
                "allowsRecurring" : true,
                "allowsTokenization" : true,
                "displayHints" : {
                    "displayOrder" : 20,
                    "label" : "Visa",
                    "logo" : "templates/master/global/css/img/ppimages/pp_logo_1_v1.png"
                },
                "id" : 1,
                "maxAmount" : 1000000,
                "mobileIntegrationLevel" : "OPTIMISED_SUPPORT",
                "paymentMethod" : "card",
                "paymentProductGroup" : "cards"
            },
            {
                "allowsRecurring" : true,
                "allowsTokenization" : true,
                "displayHints" : {
                    "displayOrder" : 19,
                    "label" : "American Express",
                    "logo" : "templates/master/global/css/img/ppimages/pp_logo_2_v1.png"
                },
                "id" : 2,
                "maxAmount" : 1000000,
                "mobileIntegrationLevel" : "OPTIMISED_SUPPORT",
                "paymentMethod" : "card",
                "paymentProductGroup" : "cards"
            },
            {
                "allowsRecurring" : true,
                "allowsTokenization" : true,
                "displayHints" : {
                    "displayOrder" : 18,
                    "label" : "MasterCard",
                    "logo" : "templates/master/global/css/img/ppimages/pp_logo_3_v1.png"
                },
                "id" : 3,
                "maxAmount" : 1000000,
                "mobileIntegrationLevel" : "OPTIMISED_SUPPORT",
                "paymentMethod" : "card",
                "paymentProductGroup" : "cards"
            }
        ]
    }
    

Response 400 - Bad requestErrorResponse

     Property Type Required Description
errorId string yes

Unique reference, for debugging purposes, of this error response

array yes
List of one or more errors
object no SDK object type: APIError
category string no

Category the error belongs to. The category should give an indication of the type of error you are dealing with. Possible values:
  • CONNECT_PLATFORM_ERROR - indicating that a functional error has occurred in the Connect platform.
  • PAYMENT_PLATFORM_ERROR - indicating that a functional error has occurred in the Payment platform.
  • IO_ERROR - indicating that a technical error has occurred within the Connect platform or between Connect and any of the payment platforms or third party systems.

code string yes

Error code

httpStatusCode integer no

HTTP status code for this error that can be used to determine the type of error

id string no

ID of the error. This is a short human-readable message that briefly describes the error.

message string no

Human-readable error message that is not meant to be relayed to consumer as it might tip off people who are trying to commit fraud

propertyName string no

Returned only if the error relates to a value that was missing or incorrect.
Contains a location path to the value as a JSonata query.
Some common examples:
  • a.b selects the value of property b of root property a,
  • a[1] selects the first element of the array in root property a,
  • a[b='some value'] selects all elements of the array in root property a that have a property b with value 'some value'.

requestId string no

ID of the request that can be used for debugging purposes

Response example

SDK: Java

This scenario you will probably use the most

  • {
        "errorId" : "15eabcd5-30b3-479b-ae03-67bb351c07e6-00000092",
        "errors" : [
            {
                "code" : "20000000",
                "propertyName" : "bankAccountBban.accountNumber",
                "message" : "PARAMETER_NOT_FOUND_IN_REQUEST"
            }
        ]
    }
    
icon_top_1