Skip to main content

API-only Payment Authorization

POST 

/payment/authorize/

This method allows the merchant to perform a payment transaction by using payment option/authentication details previously obtained, depending on the payment method, in a one-step direct flow.

In the API-only flow, merchants can initiate prepayment transactions directly via API without using the SmartPay widget. This method allows full backend control over the transaction process. When a merchant triggers a prepayment through the API, they provide details such as the transaction amount, currency, customer details, billing address, etc. The API responds with an authorization and a unique reference (transactionReference), which the merchant includes on the buyer's invoice.

The buyer uses this reference (transactionReference) to complete the payment, ensuring that the payment is correctly associated with the transaction. This approach allows merchants to handle the entire payment process backend-only, streamlining operations without needing a frontend integration with the SmartPay widget.

For the API-only Prepayments and Pay Upon Invoice payment methods, the distinction between the two models is made using the type enumeration parameter, please refer below.

Name                             Description                           Type                             
paymentOptionDetails of the payment.Object
  - invoicePaymentDetails of the invoice.Object
    - - typeEither prepayment - PREPMNT,
or Pay Upon Invoice - PAYINVC.
String
info

This endpoint uses the SmartPay BaseURL and Authorization.

Request​

Header Parameters

    Content-Type stringrequired

    Must be application/json

    Accept-Language stringrequired

    Must be be en-US

    Origin stringrequired

    The origin of the request

    User-Agent stringrequired

    The client making the request

    Authorization stringrequired

    Basic M2lwN2Yx...OGU3Mg==

Bodyrequired

    billingAddress objectrequired

    Consumer's billing address data. See Address in Data model.

    addressLine1stringrequired

    Street name.

    Possible values: <= 60 characters

    Example: Max-Planck-Straße
    addressLine2string

    Apartment, suite, unit, building, floor or other secondary address information.

    Possible values: <= 60 characters

    addressLine3string

    Specific delivery instructions, department names, or additional floor information.

    Possible values: <= 60 characters

    citystringrequired

    The city or localitly of the address.

    Possible values: <= 50 characters

    Example: Berlin
    countryCodestringrequired

    ISO-3 code of the address country (e.g., DEU for Germany).

    Possible values: >= 3 characters and <= 3 characters

    Example: DEU
    numberstring

    The house or building number corresponding to the street address.

    Possible values: <= 10 characters

    Example: 30
    postCodestringrequired

    The postal or ZIP code of the address.

    Possible values: <= 10 characters

    Example: 14473
    statestring

    3-letter code of the address state. Mandatory when countryCode corresponds to Canada or USA.

    Possible values: <= 3 characters

    businessConsumer objectnullable

    Company data, in case the consumer is a business or a legal entity. See businessConsumer in Data model.
    Conditional. Can be present if consumer is missing from the request.

    companyNamestringrequired

    Name of the legal entity

    Possible values: <= 100 characters

    companyRegistrationCountryCodestring

    Company registration country ISO2 or ISO3 code

    Possible values: >= 2 characters and <= 3 characters

    companyRegistrationNumberstring

    Company registration number

    Possible values: <= 50 characters

    companyTypestringrequired

    Possible values: <= 100 characters

    culturestring

    Consists of ISO 639-1 language code and ISO 3166-1 alpha-2 country code separated by dash. If this value is not provided the browser culture is used. Default culture is English (e.g., en-de). This field is not case sensitive.

    Possible values: <= 5 characters

    Example: en-EN
    emailAddressstringrequired

    Customer email address for any notification

    Possible values: <= 255 characters

    taxIdstring

    Person's tax identification number

    Possible values: <= 30 characters

    consumer objectnullable

    Consumer's personal data, in case the consumer is a physical person. See consumer in Data model.
    Conditional. Can be present if businessConsumer is missing from the request.

    culturestring

    Consists of ISO 639-1 language code and ISO 3166-1 alpha-2 country code separated by dash. If this value is not provided the browser culture is used. Default culture is English (e.g., en-de). This field is not case sensitive.

    Possible values: <= 5 characters

    Example: en-EN
    dateOfBirthstring<date>

    Date of birth. Format - YYYY-MM-DD. Mandatory for payment option registration flow. Minimum date allowed is 1900-01-01

    Possible values: <= 10 characters, Value must match regular expression ^\d{4}-\d{2}-\d{2}$

    Example: 1989-11-08
    emailAddressstring<email>required

    Customer email address for any notification

    Possible values: <= 255 characters

    Example: john.doe@gmail.com
    firstNamestringrequired

    Person first name

    Possible values: <= 60 characters

    Example: John
    genderstring

    Person gender

    Possible values: <= 6 characters

    Example: Mr
    homePhonestring

    Person's home phone number (including the country code)

    Possible values: <= 30 characters

    Example: 496912345678
    lastNamestringrequired

    Person last name

    Possible values: <= 60 characters

    Example: Doe
    merchantCustomerIdstring

    Consumer/Customer Account Id in the merchant system. When provided into the Create Checkout API, SmartPay will request e-wallet account creation which will have external account reference equals to the given merchantCustomerId value.

    Possible values: <= 255 characters

    Example: abcd123
    middleNamestring

    The customer's middle name

    Possible values: <= 60 characters

    Example: Robert
    mobilePhonestring

    Person's mobile phone number (including the country code)

    Possible values: <= 30 characters

    Example: 496912345678
    taxIdstring

    Person's tax identification number

    Possible values: <= 30 characters

    Example: 123456789
    timezonestring

    Preferred timezone name

    Possible values: <= 50 characters

    Example: CET
    titlestring

    Person title

    Possible values: <= 3 characters

    Example: Mr
    workPhonestring

    Person's work phone number (including the country code)

    Possible values: <= 30 characters

    Example: 496912345678
    criteria object[]nullable

    List of custom key-value pairs that the merchant can submit.
    The names callBackUrl and redirectUrl will be disregarded.

  • Array [
  • namestringrequired

    name of the parameter. The value must be unique within the criteria array

    Possible values: <= 50 characters

    valuestringrequired

    value of the parameter

    Possible values: <= 100 characters

  • ]
  • customReferences objectnullable

    For external party usage. Please refer to Data Model for more details.

    custom1string

    generic custom reference

    Possible values: <= 255 characters

    custom2string

    generic custom reference

    Possible values: <= 255 characters

    custom3string

    generic custom reference

    Possible values: <= 255 characters

    customerAccountIdstringnullable

    Consumer's account identifier in the merchant's system. To be used as an external account reference. Disregarded when provided as a path parameter.

    Possible values: <= 255 characters

    Example: john-doe-27
    extraInfo objectnullable

    Payment extra information to define the product group, to display different set of payment options (Card, SEPA, PayPal...) for different products.

    customerGroupstring

    In case customer group rule is defined in channel configuration, this value is used for channel evaluation

    Possible values: <= 100 characters

    Example: SilverCustomers
    productGroupstring

    In case customer group rule is defined in channel configuration, this value is used for channel evaluation

    Possible values: <= 100 characters

    Example: tyres
    payment objectrequired

    The payment amount to be charged against the payment option.

    amountnumber<decimal>required

    Transaction modification amount

    Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$

    Example: 49.99
    currencyCodestringrequired

    Transaction modification currency. The 3-letter currency ISO-4217 code

    Possible values: >= 3 characters and <= 3 characters

    Example: EUR
    descriptionstringrequired

    A terse description of the good or service being sold i.e., the reason for the payment

    Possible values: <= 127 characters

    Example: windscreen wipers 4 pcs
    shopCountrystringnullable

    The ISO 3166-1 alpha-2 code of the shop country. Must match at least one of the countries configured for the merchant.

    Possible values: <= 2 characters

    Example: FR
    partnerReferencestringnullable

    Transaction identifier provided by the merchant. If provided must be unique (for that merchant)

    Possible values: <= 64 characters, Value must match regular expression ^[a-zA-Z0-9\-_\.:]+$

    Example: myReference_123
    paymentSplit objectnullable

    If passed, defines all related information for split payments. Not supported on Hosted Payment Page

    paymentSplitDestinations object[]required

    Possible values: >= 1

  • Array [
  • amountnumber<decimal>required

    Transaction modification amount

    Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$

    Example: 49.99
    currencyCodestringrequired

    Transaction modification currency. The 3-letter currency ISO-4217 code

    Possible values: >= 3 characters and <= 3 characters

    Example: EUR
    descriptionstringrequired

    A terse description of the good or service being sold i.e., the reason for the payment

    Possible values: <= 127 characters

    Example: windscreen wipers 4 pcs
    destinationReferencestringrequired

    Destination merchant account alias

    Possible values: <= 127 characters

    Example: destination-ref-1
  • ]
  • shippingAddress objectnullable
    addressLine1stringrequired

    Street name.

    Possible values: <= 60 characters

    Example: Max-Planck-Straße
    addressLine2string

    Apartment, suite, unit, building, floor or other secondary address information.

    Possible values: <= 60 characters

    addressLine3string

    Specific delivery instructions, department names, or additional floor information.

    Possible values: <= 60 characters

    citystringrequired

    The city or localitly of the address.

    Possible values: <= 50 characters

    Example: Berlin
    countryCodestringrequired

    ISO-3 code of the address country (e.g., DEU for Germany).

    Possible values: >= 3 characters and <= 3 characters

    Example: DEU
    numberstring

    The house or building number corresponding to the street address.

    Possible values: <= 10 characters

    Example: 30
    postCodestringrequired

    The postal or ZIP code of the address.

    Possible values: <= 10 characters

    Example: 14473
    statestring

    3-letter code of the address state. Mandatory when countryCode corresponds to Canada or USA.

    Possible values: <= 3 characters

    targetMerchantAccountReferencestringnullable

    Indicates the account number to be used instead of the main merchant account number of the channel.

    Possible values: <= 127 characters

    Example: abcd123
    paymentOption objectrequired

    The type of payment method and its details

    oneOf
    oneOf
    3DS objectrequired
    oneOf
    3DS2 object
    acsEcistringrequired

    Indicates the security level of the transaction.

    Possible values: >= 2 characters and <= 2 characters

    Example: 02
    acsTransactionIdstringrequired

    A unique transaction identifier assigned by the Access Control Server to identify the 3DS transaction.

    Possible values: <= 100 characters

    Example: 57f4e6a3-69a5-4693-b72f-61976e1d679a
    authenticationTokenstringrequired

    A unique identifier for the 3-D Secure authentication transaction.

    Possible values: >= 28 characters and <= 32 characters

    Example: kBIAAAAAqU20mQBkWBjZBpeBGqrD
    dsTransactionIdstringrequired

    A unique transaction identifier assigned by the scheme Directory Server to identify the 3DS transaction.

    Possible values: <= 100 characters

    Example: 118b60da-3c9f-4d97-b508-b84aa4e99646
    protocolVersionstringrequired

    The version of the EMV 3-D Secure protocol used to perform 3-D Secure authentication, in the format specified by EMVCo.

    Possible values: <= 6 characters

    Example: 2.1.0.
    transactionStatusstringrequired

    Indicates the result of payer authentication with the issuer. Possible values:

    • N - Transaction did not qualify as an authenticated transaction or account verification.
    • Y - The transaction qualified as an authenticated transaction.
    • C - 3DS version 2.2.0 only. Transaction requires a challenge.
    • R - 3DS version 2.2.0 only. A challenge is recommended for the transaction.
    • U - 3DS version 2.2.0 only. The transaction is unavailable for authentication.
    • A - 3DS version 2.2.0 only. The transaction is authenticated with a frictionless flow.

    Possible values: non-empty and <= 1 characters, [N, Y, C, R, U, A]

    Example: Y
    cardDetails objectrequired
    cardBrandstringrequired

    Card brand code. Please refer to Data Model.

    Possible values: <= 16 characters, [AMEX, BNKACCT, CRTBANCAIR, DISCOVER, GIROPAY, IDEAL, JCB, MSTRCRD, MSTRO, PAYPAL, PAYU, PAYUBLK, PAYUTWST, PAYUINST, PREPMNT, SEPADDB2B, SEPADDCORE, VISA, VISADBIT]

    cardExpiryMonthstringrequired

    Credit card expiration month in format "MM".

    Possible values: >= 2 characters and <= 2 characters

    Example: 09
    cardExpiryYearstringrequired

    Credit card expiration year in format "YY" or "YYYY"

    Possible values: >= 2 characters and <= 4 characters

    Example: 2029
    network-tokensstring

    Card holder's name as displayed on the card

    Possible values: <= 100 characters

    Example: JOHN DOE
    cardTokenstringrequired

    PAN token

    Possible values: <= 18 characters

    Example: LLVOXVAJINJWPDDPZA
    cvvTokenstringrequired

    CVV token

    Possible values: <= 18 characters

    Example: UHHTREDDFTTYUIOKMT

Responses​

Payment authorization successfully created

Schema
    reconciliationReferenceIdstringrequired

    External payment provider unique transaction identifier.
    Within SmartPay, each order on your side is represented by one checkout transactionID. You may use this transactionID to perform the initial checkout, retrieve an overall status or for later modifications, like manual capture or refunds.
    On the payment side, this may lead to multiple financial transactions, e.g., one payment transaction about the captured amount (which will be settled to your account), and later a refund transaction (which will be debited from your account / deducted from your payout).
    The reconciliationReferenceId has been introduced to allow you to keep track of those financial transactions, as it represents the financial transactionID, as you would see it in the payment provider's merchant portal (e.g., our Merchant Panel) or settlement files.

    Example: QixTLEO28YngDAUuaUEOi
    descriptionstringrequired

    Transaction description, as specified by you in the checkout API request.

    Example: 4 pcs windscreen wipers
    paymentStatusstringrequired

    Current payment status of the initial transaction. Please refer here for more information.

    Possible values: [CREATED, CAPTURED, AUTHORIZATION_PENDING, AUTHORIZATION_COMPLETED, FAILED, CAPTURE_PENDING, CANCELLATION_PENDING, EXPIRED, CANCELLED, SETTLED, CHARGEBACK]

    Example: CAPTURED
    creationDatestringrequired

    Transaction creation date and time.

    Example: 2020-12-15T14:38:59.150Z
    lastStatusDatestringrequired

    Transaction status changing date and time

    Example: 2020-12-15T14:40:25.008Z
    partnerReferencestring

    Transaction identifier provided by the merchant

    Example: GHssjkauhdaku658702
    transactionOverview objectrequired
    transactionIdstringrequired

    The unique identifier of the transaction generated on transaction creation.

    Possible values: <= 36 characters

    Example: 123e4567-e89b-12d3-a456-426614174000
    acquirerResponsestring

    paymentProviderResponse sent in the Complete Autorize response in case of error.

    amountnumber<decimal>required

    Transaction modification amount

    Possible values: Value must match regular expression ^\d{1,18}\.\d{2}$

    Example: false
    currencyCodestringrequired

    Transaction modification currency. The 3-letter currency ISO-4217 code.

    Example: EUR
    customReferences object

    For external party usage. Please refer to Data Model for more details.

    custom1string

    generic custom reference

    Possible values: <= 255 characters

    custom2string

    generic custom reference

    Possible values: <= 255 characters

    custom3string

    generic custom reference

    Possible values: <= 255 characters

    customerAccountIdstring

    Unique customer identifier

    Example: john-doe-27
    deal object

    Details of the deal. Used only for 3RI payments (Partial or split shipment and Delayed shipment use cases).

    amountnumber<decimal>

    The total amount of the deal. The sum of all payments with the same dealReference may not exceed this amount. Used only for Split Shipment flow.

    Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$

    Example: 19.99
    dealReferencestring

    Deal identifier.

    Possible values: <= 21 characters

    Example: rJIUUztdDPPqh4Zaw98pq
    typeCodestring

    Deal type

    Possible values: <= 6 characters, [3RIPSS, 3RIDS]

    Example: 3RIPSS
    mitboolean

    Flag to show if created transaction relates to merchant-initiated transactions.

    Example: false
    paymentMethodstring

    Used payment option code. Please refer to the Data Model for more information.
    Payment option CARDS is returned by SmartPay in case the actual card brand has not been selected by the consumer yet or if it could not be determined.

    Example: CARDS
    paymentOriginstring

    Displays the origin flag marked upon creation of the transaction.

    Possible values: [HOSTED_PAYMENT_PAGE, PAYMENT_AUTHORIZE_S2S, CHECKOUT, SUBSCRIPTION_MIT, MERCHANT_MIT]

    Example: CHECKOUT
    targetMerchantAccountReferencestring

    If provided, the payment is processed in favour of the indicated submerchant account, and the main merchant account number is ignored.

    Example: 123456789
    transactionReferencestring

    External payment provider reference of the Pre-Payment or Payment Upon Invoice. To be sent each time there is a value present in the data source.

    Example: THNkjjkfdhjk7798798
    modification objectrequired

    Array of all performed transaction modifications.

    creationDatestring<date-time>

    Date and time of the modification processing start.

    error errorBadRequestExternal
    errorstring

    indicates at which level of processing the error appeared

    Possible values: [gateway_processing, payment_provider_processing]

    errorDetails object
    contextobject

    Additional error details, as received from the third party

    gatewayDescriptionstring

    Error message returned by payment gateway

    Possible values: <= 400 characters

    paymentProviderDescriptionstring

    Error message returned by payment provider

    Possible values: <= 400 characters

    lastStatusDatestring<date-time>

    Date and time of the modification processing completion.

    modificationAmount object

    The payment amount to be charged against the payment option.

    amountnumber<decimal>required

    Transaction modification amount

    Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$

    Example: 49.99
    currencyCodestringrequired

    Transaction modification currency. The 3-letter currency ISO-4217 code

    Possible values: >= 3 characters and <= 3 characters

    Example: EUR
    descriptionstringrequired

    A terse description of the good or service being sold i.e., the reason for the payment

    Possible values: <= 127 characters

    Example: windscreen wipers 4 pcs
    modificationData object

    Additional details of the modification

    cancelIdstring<uuid>

    SmartPay internal unique identifier for cancel request.

    captureIdstring<uuid>

    SmartPay internal unique identifier for capture request.

    customReferences object

    A list of custom references submitted by the merchant along with a modification request (e.g., Capture, Cancel, Refund). Can be different from the customReference value provided in the Create Checkout API.

    custom1string

    generic custom reference

    Possible values: <= 255 characters

    custom2string

    generic custom reference

    Possible values: <= 255 characters

    custom3string

    generic custom reference

    Possible values: <= 255 characters

    modificationIdstringrequired

    For external party usage.

    Example: abcd123
    paymentSplitResults object[]

    Defines destinations for which the payment was split and their results.

  • Array [
  • amountnumber<decimal>required

    Transaction modification amount

    Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$

    Example: 49.99
    currencyCodestringrequired

    Transaction modification currency. The 3-letter currency ISO-4217 code

    Possible values: >= 3 characters and <= 3 characters

    Example: EUR
    descriptionstringrequired

    A terse description of the good or service being sold i.e., the reason for the payment

    Possible values: <= 127 characters

    Example: windscreen wipers 4 pcs
    destinationReferencestringrequired

    Destination merchant account alias

    Possible values: <= 127 characters

    Example: destination-ref-1
    errorstring

    In case of a failed Debit Account or Refund request, contains error description in the following format [ {'responseCode'} ] {responseDescription}.

    splitUniqueReferencestringrequired

    Unique reference of the split transaction received in response of Debit Account or Refund.

    statusstringrequired

    Mapped to responseCode received from Debit Account or Refund. If the code returns 0000, it is a SUCCESS, otherwise it's ERROR.

    Possible values: <= 127 characters

  • ]
  • programRefundErrorMessagestring

    Message in case of error during KC Program refund.

    programRefundIdstring

    Stores the refund reference in case the merchant to program refund was successful.

    programRefundStatusstring

    Reflects the status of the refund from merchant to program level in SmartPay - success/error.

    reconciliationReferenceIdstring

    External provider unique transaction identifier - unique reference for capture or cancel and refund unique reference for refund.

    refundIdstring<uuid>

    SmartPay internal unique identifier for refund request.

    typestringrequired

    Type of the performed transaction modification.

    Possible values: [CAPTURE, CANCELATION, CHARGEBACK, SETTLEMENT, REFUND]

    Example: CAPTURE
    statusstring

    Actualized transaction or refund status after the performed modification.

    statusHistory object[]
  • Array [
  • errorstring

    Text message explaining the error issue

    modificationAmount objectrequired
    amountnumber<decimal>required

    Transaction modification amount

    Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$

    Example: 49.99
    currencyCodestringrequired

    Transaction modification currency. The 3-letter currency ISO-4217 code

    Possible values: >= 3 characters and <= 3 characters

    Example: EUR
    descriptionstringrequired

    A terse description of the good or service being sold i.e., the reason for the payment

    Possible values: <= 127 characters

    Example: windscreen wipers 4 pcs
    optionstring

    SmartPay code of the payment option used.

    Example: VISA
    storedPaymentOptionReferencestring

    stored payment option reference

    Example: 8ac7a4a18d43bde5018d44ede3d21db5
    statusstring

    Status of the transaction modification or initial payment transaction.

    statusDatestring<date-time>required

    Modification transaction status changing date and time.

  • ]