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 |
|---|---|---|
| paymentOption | Details of the payment. | Object |
| - invoicePayment | Details of the invoice. | Object |
| - - type | Either prepayment - PREPMNT, or Pay Upon Invoice - PAYINVC. | String |
This endpoint uses the SmartPay BaseURL and Authorization.
Request
Header Parameters
Must be application/json
Must be be en-US
The origin of the request
The client making the request
Basic M2lwN2Yx...OGU3Mg==
- application/json
- Body
- Example
Bodyrequired
- Array [
- ]
- Array [
- ]
- card
- invoicePayment
- cardPaymentOption
- 3DS2Request
- exemption
- 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.
billingAddress objectrequired
Consumer's billing address data. See Address in Data model.
Street name.
Possible values: <= 60 characters
Max-Planck-StraßeApartment, suite, unit, building, floor or other secondary address information.
Possible values: <= 60 characters
Specific delivery instructions, department names, or additional floor information.
Possible values: <= 60 characters
The city or localitly of the address.
Possible values: <= 50 characters
BerlinISO-3 code of the address country (e.g., DEU for Germany).
Possible values: >= 3 characters and <= 3 characters
DEUThe house or building number corresponding to the street address.
Possible values: <= 10 characters
30The postal or ZIP code of the address.
Possible values: <= 10 characters
144733-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.
Name of the legal entity
Possible values: <= 100 characters
Company registration country ISO2 or ISO3 code
Possible values: >= 2 characters and <= 3 characters
Company registration number
Possible values: <= 50 characters
Possible values: <= 100 characters
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
en-ENCustomer email address for any notification
Possible values: <= 255 characters
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.
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
en-ENDate 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}$
1989-11-08Customer email address for any notification
Possible values: <= 255 characters
john.doe@gmail.comPerson first name
Possible values: <= 60 characters
JohnPerson gender
Possible values: <= 6 characters
MrPerson's home phone number (including the country code)
Possible values: <= 30 characters
496912345678Person last name
Possible values: <= 60 characters
DoeConsumer/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
abcd123The customer's middle name
Possible values: <= 60 characters
RobertPerson's mobile phone number (including the country code)
Possible values: <= 30 characters
496912345678Person's tax identification number
Possible values: <= 30 characters
123456789Person title
Possible values: <= 3 characters
MrPerson's work phone number (including the country code)
Possible values: <= 30 characters
496912345678criteria object[]nullable
List of custom key-value pairs that the merchant can submit.
The names callBackUrl and redirectUrl will be disregarded.
name of the parameter. The value must be unique within the criteria array
Possible values: <= 50 characters
value of the parameter
Possible values: <= 100 characters
customReferences objectnullable
For external party usage. Please refer to Data Model for more details.
generic custom reference
Possible values: <= 255 characters
generic custom reference
Possible values: <= 255 characters
generic custom reference
Possible values: <= 255 characters
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
john-doe-27extraInfo objectnullable
Payment extra information to define the product group, to display different set of payment options (Card, SEPA, PayPal...) for different products.
In case customer group rule is defined in channel configuration, this value is used for channel evaluation
Possible values: <= 100 characters
SilverCustomersIn case customer group rule is defined in channel configuration, this value is used for channel evaluation
Possible values: <= 100 characters
tyrespayment objectrequired
The payment amount to be charged against the payment option.
Transaction modification amount
Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$
49.99Transaction modification currency. The 3-letter currency ISO-4217 code
Possible values: >= 3 characters and <= 3 characters
EURA terse description of the good or service being sold i.e., the reason for the payment
Possible values: <= 127 characters
windscreen wipers 4 pcsThe 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
FRTransaction 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\-_\.:]+$
myReference_123paymentSplit objectnullable
If passed, defines all related information for split payments. Not supported on Hosted Payment Page
paymentSplitDestinations object[]required
Possible values: >= 1
Transaction modification amount
Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$
49.99Transaction modification currency. The 3-letter currency ISO-4217 code
Possible values: >= 3 characters and <= 3 characters
EURA terse description of the good or service being sold i.e., the reason for the payment
Possible values: <= 127 characters
windscreen wipers 4 pcsDestination merchant account alias
Possible values: <= 127 characters
destination-ref-1shippingAddress objectnullable
Street name.
Possible values: <= 60 characters
Max-Planck-StraßeApartment, suite, unit, building, floor or other secondary address information.
Possible values: <= 60 characters
Specific delivery instructions, department names, or additional floor information.
Possible values: <= 60 characters
The city or localitly of the address.
Possible values: <= 50 characters
BerlinISO-3 code of the address country (e.g., DEU for Germany).
Possible values: >= 3 characters and <= 3 characters
DEUThe house or building number corresponding to the street address.
Possible values: <= 10 characters
30The postal or ZIP code of the address.
Possible values: <= 10 characters
144733-letter code of the address state. Mandatory when countryCode corresponds to Canada or USA.
Possible values: <= 3 characters
Indicates the account number to be used instead of the main merchant account number of the channel.
Possible values: <= 127 characters
abcd123paymentOption objectrequired
The type of payment method and its details
3DS objectrequired
3DS2 object
Indicates the security level of the transaction.
Possible values: >= 2 characters and <= 2 characters
02A unique transaction identifier assigned by the Access Control Server to identify the 3DS transaction.
Possible values: <= 100 characters
57f4e6a3-69a5-4693-b72f-61976e1d679aA unique identifier for the 3-D Secure authentication transaction.
Possible values: >= 28 characters and <= 32 characters
kBIAAAAAqU20mQBkWBjZBpeBGqrDA unique transaction identifier assigned by the scheme Directory Server to identify the 3DS transaction.
Possible values: <= 100 characters
118b60da-3c9f-4d97-b508-b84aa4e99646The 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
2.1.0.Indicates the result of payer authentication with the issuer. Possible values:
Possible values: non-empty and <= 1 characters, [N, Y, C, R, U, A]
YcardDetails objectrequired
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]
Credit card expiration month in format "MM".
Possible values: >= 2 characters and <= 2 characters
09Credit card expiration year in format "YY" or "YYYY"
Possible values: >= 2 characters and <= 4 characters
2029Card holder's name as displayed on the card
Possible values: <= 100 characters
JOHN DOEPAN token
Possible values: <= 18 characters
LLVOXVAJINJWPDDPZACVV token
Possible values: <= 18 characters
UHHTREDDFTTYUIOKMT{
"targetMerchantAccountReference": "submrchnt-DE-4569782",
"payment": {
"currencyCode": "EUR",
"amount": 50.99,
"description": "SMP-Transaction-01"
},
"billingAddress": {
"addressLine1": "Leopoldstrasse",
"number": "244",
"city": "Munich",
"postCode": "80807",
"countryCode": "DE"
},
"shippingAddress": {
"addressLine1": "Leopoldstrasse",
"number": "244",
"city": "Munich",
"postCode": "80807",
"countryCode": "DE"
},
"consumer": {
"emailAddress": "email@mail.com",
"gender": "f",
"lastName": "John",
"firstName": "Jonnion",
"middleName": "",
"title": "Mr",
"culture": "en-en",
"dateOfBirth": "2000-01-01",
"mobilePhone": "015xx22-2135466",
"taxId": "00745948504594"
},
"paymentOption": {
"invoicePayment": {
"type": "PREPMNT"
}
}
}
Responses
- 201
- 400
- 401
- 403
- 404
- 500
Payment authorization successfully created
- application/json
- Schema
- Example (auto)
- Example
Schema
- Array [
- ]
- Array [
- ]
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.
QixTLEO28YngDAUuaUEOiTransaction description, as specified by you in the checkout API request.
4 pcs windscreen wipersCurrent 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]
CAPTUREDTransaction creation date and time.
2020-12-15T14:38:59.150ZTransaction status changing date and time
2020-12-15T14:40:25.008ZTransaction identifier provided by the merchant
GHssjkauhdaku658702transactionOverview objectrequired
The unique identifier of the transaction generated on transaction creation.
Possible values: <= 36 characters
123e4567-e89b-12d3-a456-426614174000paymentProviderResponse sent in the Complete Autorize response in case of error.
Transaction modification amount
Possible values: Value must match regular expression ^\d{1,18}\.\d{2}$
falseTransaction modification currency. The 3-letter currency ISO-4217 code.
EURcustomReferences object
For external party usage. Please refer to Data Model for more details.
generic custom reference
Possible values: <= 255 characters
generic custom reference
Possible values: <= 255 characters
generic custom reference
Possible values: <= 255 characters
Unique customer identifier
john-doe-27deal object
Details of the deal. Used only for 3RI payments (Partial or split shipment and Delayed shipment use cases).
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}$
19.99Deal identifier.
Possible values: <= 21 characters
rJIUUztdDPPqh4Zaw98pqDeal type
Possible values: <= 6 characters, [3RIPSS, 3RIDS]
3RIPSSFlag to show if created transaction relates to merchant-initiated transactions.
falseUsed 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.
CARDSDisplays the origin flag marked upon creation of the transaction.
Possible values: [HOSTED_PAYMENT_PAGE, PAYMENT_AUTHORIZE_S2S, CHECKOUT, SUBSCRIPTION_MIT, MERCHANT_MIT]
CHECKOUTIf provided, the payment is processed in favour of the indicated submerchant account, and the main merchant account number is ignored.
123456789External 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.
THNkjjkfdhjk7798798modification objectrequired
Array of all performed transaction modifications.
Date and time of the modification processing start.
error errorBadRequestExternal
indicates at which level of processing the error appeared
Possible values: [gateway_processing, payment_provider_processing]
errorDetails object
Additional error details, as received from the third party
Error message returned by payment gateway
Possible values: <= 400 characters
Error message returned by payment provider
Possible values: <= 400 characters
Date and time of the modification processing completion.
modificationAmount object
The payment amount to be charged against the payment option.
Transaction modification amount
Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$
49.99Transaction modification currency. The 3-letter currency ISO-4217 code
Possible values: >= 3 characters and <= 3 characters
EURA terse description of the good or service being sold i.e., the reason for the payment
Possible values: <= 127 characters
windscreen wipers 4 pcsmodificationData object
Additional details of the modification
SmartPay internal unique identifier for cancel request.
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.
generic custom reference
Possible values: <= 255 characters
generic custom reference
Possible values: <= 255 characters
generic custom reference
Possible values: <= 255 characters
For external party usage.
abcd123paymentSplitResults object[]
Defines destinations for which the payment was split and their results.
Transaction modification amount
Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$
49.99Transaction modification currency. The 3-letter currency ISO-4217 code
Possible values: >= 3 characters and <= 3 characters
EURA terse description of the good or service being sold i.e., the reason for the payment
Possible values: <= 127 characters
windscreen wipers 4 pcsDestination merchant account alias
Possible values: <= 127 characters
destination-ref-1In case of a failed Debit Account or Refund request, contains error description in the following format [ {'responseCode'} ] {responseDescription}.
Unique reference of the split transaction received in response of Debit Account or Refund.
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
Message in case of error during KC Program refund.
Stores the refund reference in case the merchant to program refund was successful.
Reflects the status of the refund from merchant to program level in SmartPay - success/error.
External provider unique transaction identifier - unique reference for capture or cancel and refund unique reference for refund.
SmartPay internal unique identifier for refund request.
Type of the performed transaction modification.
Possible values: [CAPTURE, CANCELATION, CHARGEBACK, SETTLEMENT, REFUND]
CAPTUREActualized transaction or refund status after the performed modification.
statusHistory object[]
Text message explaining the error issue
modificationAmount objectrequired
Transaction modification amount
Possible values: >= 0.01, Value must match regular expression ^\d{1,18}\.\d{2}$
49.99Transaction modification currency. The 3-letter currency ISO-4217 code
Possible values: >= 3 characters and <= 3 characters
EURA terse description of the good or service being sold i.e., the reason for the payment
Possible values: <= 127 characters
windscreen wipers 4 pcsSmartPay code of the payment option used.
VISAstored payment option reference
8ac7a4a18d43bde5018d44ede3d21db5Status of the transaction modification or initial payment transaction.
Modification transaction status changing date and time.
{
"reconciliationReferenceId": "QixTLEO28YngDAUuaUEOi",
"description": "4 pcs windscreen wipers",
"paymentStatus": "CAPTURED",
"creationDate": "2020-12-15T14:38:59.150Z",
"lastStatusDate": "2020-12-15T14:40:25.008Z",
"partnerReference": "GHssjkauhdaku658702",
"transactionOverview": {
"transactionId": "123e4567-e89b-12d3-a456-426614174000",
"acquirerResponse": "string",
"amount": false,
"currencyCode": "EUR",
"customReferences": {
"custom1": "string",
"custom2": "string",
"custom3": "string"
},
"customerAccountId": "john-doe-27",
"deal": {
"amount": 19.99,
"dealReference": "rJIUUztdDPPqh4Zaw98pq",
"typeCode": "3RIPSS"
},
"mit": false,
"paymentMethod": "CARDS",
"paymentOrigin": "CHECKOUT",
"targetMerchantAccountReference": 123456789
},
"transactionReference": "THNkjjkfdhjk7798798",
"modification": {
"creationDate": "2024-07-29T15:51:28.071Z",
"error": {
"error": "gateway_processing",
"errorDetails": {
"context": {},
"gatewayDescription": "string",
"paymentProviderDescription": "string"
}
},
"lastStatusDate": "2024-07-29T15:51:28.071Z",
"modificationAmount": {
"amount": 49.99,
"currencyCode": "EUR",
"description": "windscreen wipers 4 pcs"
},
"modificationData": {
"cancelId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"captureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customReferences": {
"custom1": "string",
"custom2": "string",
"custom3": "string"
},
"modificationId": "abcd123",
"paymentSplitResults": [
{
"destinationReference": "destination-ref-1",
"error": "string",
"splitUniqueReference": "string",
"status": "string",
"amount": 49.99,
"currencyCode": "EUR",
"description": "windscreen wipers 4 pcs"
}
],
"programRefundErrorMessage": "string",
"programRefundId": "string",
"programRefundStatus": "string",
"reconciliationReferenceId": "string",
"refundId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "CAPTURE"
},
"status": "string",
"statusHistory": [
{
"error": "string",
"modificationAmount": {
"amount": 49.99,
"currencyCode": "EUR",
"description": "windscreen wipers 4 pcs",
"option": "VISA",
"storedPaymentOptionReference": "8ac7a4a18d43bde5018d44ede3d21db5"
},
"status": "string",
"statusDate": "2024-07-29T15:51:28.071Z"
}
]
}
}
{
"description": "SMP-Transaction-01",
"paymentStatus": "CAPTURED",
"creationDate": "2024-10-09T10:50:15.708Z",
"lastStatusDate": "2024-10-09T10:50:19.705Z",
"transactionOverview": {
"transactionId": "9b02425b-f346-4f16-892b-6716d5ecf9ac",
"paymentMethod": "PREPMNT",
"amount": 50.99,
"currencyCode": "EUR",
"mit": false,
"paymentOrigin": "PAYMENT_AUTHORIZE_S2S"
},
"reconciliationReferenceId": "sYfon1IJl9iZ7bpsa7fXO",
"transactionReference": "119344737107896",
"modificationId": "9b02425b-f346-4f16-892b-6716d5ecf9ac"
}
Bad Request
For error handling, please refer to this section.
- application/json
- Schema
- Example (auto)
- Example
Schema
- string
- string[]
errorDetails object
message object
{
"error": "string",
"errorDetails": {
"context": {},
"gatewayDescription": "string",
"paymentProviderDescription": "string"
},
"message": "string"
}
{
"traceId": "00-1234567890abcdef0123456789abcdef-0123456789abcdef-00",
"errors": [
{
"message": "Value out of bounds. Value must be between 1 and 100",
"code": "value_out_of_bounds",
"property": "someField",
"context": {
"minimum": 1,
"maximum": 100
}
}
]
}
Unauthenticated
For error handling, please refer to this section.
- application/json
- Schema
- Example (auto)
- Example
Schema
- string
- string[]
errorDetails object
message object
{
"error": "string",
"errorDetails": {
"context": {},
"gatewayDescription": "string",
"paymentProviderDescription": "string"
},
"message": "string"
}
{
"traceId": "00-1234567890abcdef0123456789abcdef-0123456789abcdef-00",
"errors": [
{
"message": "You are not authenticated to perform this request.",
"code": "unauthorized"
}
]
}
Forbidden
For error handling, please refer to this section.
- application/json
- Schema
- Example (auto)
- Example
Schema
- string
- string[]
errorDetails object
message object
{
"error": "string",
"errorDetails": {
"context": {},
"gatewayDescription": "string",
"paymentProviderDescription": "string"
},
"message": "string"
}
{
"traceId": "00-1234567890abcdef0123456789abcdef-0123456789abcdef-00",
"errors": [
{
"message": "You do not have permissions to perform this request.",
"code": "forbidden"
}
]
}
Not Found
For error handling, please refer to this section.
- application/json
- Schema
- Example (auto)
- Example
Schema
- string
- string[]
errorDetails object
message object
{
"error": "string",
"errorDetails": {
"context": {},
"gatewayDescription": "string",
"paymentProviderDescription": "string"
},
"message": "string"
}
{
"traceId": "00-1234567890abcdef0123456789abcdef-0123456789abcdef-00",
"errors": [
{
"message": "Resource not found.",
"code": "not_found"
}
]
}
Internal Server Error
For error handling, please refer to this section.
- application/json
- Schema
- Example (auto)
- Example
Schema
- string
- string[]
errorDetails object
message object
{
"error": "string",
"errorDetails": {
"context": {},
"gatewayDescription": "string",
"paymentProviderDescription": "string"
},
"message": "string"
}
{
"traceId": "00-1234567890abcdef0123456789abcdef-0123456789abcdef-00",
"errors": [
{
"message": "Internal server error."
}
]
}