Create 3DS Authenticated Payment
POST/payment/authorize
This API method creates a payment authorization directly, without the need of using the SmartPay widget. The payment is based on the assumption that the payment option and authentication details have already been collected by the merchant.
This endpoint contains PCI data and requires forwarding through /forwarding/tokenize
.
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==
{baseUrl}/payment/authorize
{{pci_base64_public_private}}
- application/json
Body
required
payment
object
required
The financial attributes of a transaction, required for all payment operations.
Possible values: <= 127 characters
Description of the payment transaction shown to the customer.
Possible values: >= 0.01
Total amount to be authorized.
Possible values: <= 3 characters
, Value must match regular expression ^[A-Z]{3}$
ISO 4217 three-letter currency code.
billingAddress
object
required
Possible values: <= 60 characters
Street name.
Possible values: <= 60 characters
Apartment, suite, unit, building, floor or other secondary address information.
Possible values: <= 60 characters
Specific delivery instructions, department names, or additional floor information.
Possible values: <= 50 characters
The city or localitly of the address.
Possible values: >= 3 characters
and <= 3 characters
ISO-3 code of the address country (e.g., DEU for Germany).
Possible values: <= 10 characters
The house or building number corresponding to the street address.
Possible values: <= 10 characters
The postal or ZIP code of the address.
Possible values: <= 3 characters
3-letter code of the address state. Mandatory when countryCode
corresponds to Canada or USA.
shippingAddress
object
Possible values: <= 60 characters
Street name.
Possible values: <= 60 characters
Apartment, suite, unit, building, floor or other secondary address information.
Possible values: <= 60 characters
Specific delivery instructions, department names, or additional floor information.
Possible values: <= 50 characters
The city or localitly of the address.
Possible values: >= 3 characters
and <= 3 characters
ISO-3 code of the address country (e.g., DEU for Germany).
Possible values: <= 10 characters
The house or building number corresponding to the street address.
Possible values: <= 10 characters
The postal or ZIP code of the address.
Possible values: <= 3 characters
3-letter code of the address state. Mandatory when countryCode
corresponds to Canada or USA.
consumer
object
required
Consumer's personal data, in case the consumer
is a physical person.
Mandatory, unless businessConsumer
is provided.
consumer
and businessConsumer
objects may not be submitted together.
Possible values: <= 5 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: <= 10 characters
, Value must match regular expression ^\d{4}-\d{2}-\d{2}$
Date of birth. Format - YYYY-MM-DD. Mandatory for payment option registration flow. Minimum date allowed is 1900-01-01
Possible values: <= 255 characters
Customer email address for any notification
Possible values: <= 60 characters
Person first name
Possible values: <= 6 characters
Person gender
Possible values: <= 30 characters
Person's home phone number (including the country code)
Possible values: <= 60 characters
Person last name
Possible values: <= 255 characters
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: <= 60 characters
The customer's middle name
Possible values: <= 30 characters
Person's mobile phone number (including the country code)
Possible values: <= 30 characters
Person's tax identification number
Possible values: <= 3 characters
Person title
Possible values: <= 30 characters
Person's work phone number (including the country code)
Possible values: <= 64 characters
, Value must match regular expression ^[a-zA-Z0-9._:-]+$
Transaction identifier provided by the merchant. Must be unique per transaction.
paymentOption
object
required
The customer's selected payment option. This object is used to define the method and necessary data required to complete a transaction. It supports cards and other types (e.g., SEPA, PayPal) depending on context.
card
object
required
Card-specific information used to process a card payment.
cardDetails
object
required
Contains the tokenized cardholder information used for payment authorization. All values must be obtained and tokenized securely via the Web SDK or a PCI-compliance environemnt.
Possible values: <= 50 characters
Full name of the cardholder.
Possible values: <= 64 characters
Tokenized representation of the card number.
Possible values: <= 4 characters
Tokenized CVV for the card.
Possible values: <= 2 characters
, Value must match regular expression ^(0[1-9]|1[0-2])$
Two-digit month of card expiry.
Possible values: <= 4 characters
, Value must match regular expression ^[0-9]{4}$
Four-digit year of card expiry.
Possible values: <= 16 characters
, [VISA
, MSTRCRD
, AMEX
, DISCOVER
]
Card brand code.
3ds
object
required
Wraps the authentication data to prove that Strong Customer Authentication (SCA) has been performed.
3ds2
object
Holds the 3-D Secure version 2.x authentication details.
Possible values: <= 2 characters
Electronic Commerce Indicator provided by the ACS.
Possible values: <= 64 characters
Token confirming successful 3DS challenge.
Possible values: <= 1 characters
, [Y
, N
, U
, A
, R
]
Y: Success, N: Failure, U: Unavailable, A: Attempted, R: Rejected.
Possible values: <= 8 characters
, [2.1.0
, 2.2.0
]
3DS protocol version used.
Possible values: <= 36 characters
Transaction ID assigned by Directory Server.
Possible values: <= 36 characters
Transaction ID assigned by ACS.
Responses
- 201
- 400
- 401
- 403
- 404
- 500
Payment authorization successfully created
- application/json
- Schema
- Example (from schema)
- Example
Schema
Possible values: <= 64 characters
Unique reference ID sent by the merchant and echoed back.
Possible values: <= 127 characters
Description of the transaction.
Possible values: <= 16 characters
, [CREATED
, CAPTURED
, AUTHORIZATION_PENDING
, AUTHORIZATION_COMPLETED
, FAILED
, CAPTURE_PENDING
, CANCELLATION_PENDING
, EXPIRED
, CANCELLED
]
Current status of the payment.
Timestamp when the transaction was created.
Timestamp when the payment status was last updated.
transactionOverview
object
Possible values: <= 36 characters
SmartPay-assigned ID for the transaction.
Possible values: <= 16 characters
, [CARDS
, SEPA
, PAYPAL
]
Method used to complete the payment.
Final authorized or captured amount.
Possible values: <= 3 characters
, Value must match regular expression ^[A-Z]{3}$
ISO currency code.
Possible values: <= 64 characters
Unique identifier from the payment provider used for settlement and reconciliation.
Possible values: <= 36 characters
ID of the latest modification (e.g., capture) applied to the transaction.
{
"partnerReference": "string",
"description": "string",
"paymentStatus": "CREATED",
"creationDate": "2024-07-29T15:51:28.071Z",
"lastStatusDate": "2024-07-29T15:51:28.071Z",
"transactionOverview": {
"transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"paymentMethod": "CARDS",
"amount": 0,
"currencyCode": "string"
},
"reconciliationReferenceId": "string",
"modificationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
{
"partnerReference": "SOwS1Ir7UluDoJJF0p",
"description": "OEM APIs Test",
"paymentStatus": "CAPTURED",
"creationDate": "2024-03-28T10:02:43.272Z",
"lastStatusDate": "2024-03-28T10:02:47.507Z",
"transactionOverview": {
"transactionId": "a7dd1c65-847e-4b4f-8284-5ed7bed2c84b",
"paymentMethod": "CARDS",
"amount": 49.99,
"currencyCode": "EUR"
},
"reconciliationReferenceId": "SdsEh9hCGI434teXG3abz",
"modificationId": "a7dd1c65-847e-4b4f-8284-5ed7bed2c84b"
}
Bad Request
For error handling, please refer to this section.
- application/json
- Schema
- Example (from schema)
- Example
Schema
- MOD1
- MOD2
Array [
]
errorDetails
object
message
object
oneOf
string
string
{
"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 (from schema)
- Example
Schema
- MOD1
- MOD2
Array [
]
errorDetails
object
message
object
oneOf
string
string
{
"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 (from schema)
- Example
Schema
- MOD1
- MOD2
Array [
]
errorDetails
object
message
object
oneOf
string
string
{
"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 (from schema)
- Example
Schema
- MOD1
- MOD2
Array [
]
errorDetails
object
message
object
oneOf
string
string
{
"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 (from schema)
- Example
Schema
- MOD1
- MOD2
Array [
]
errorDetails
object
message
object
oneOf
string
string
{
"error": "string",
"errorDetails": {
"context": {},
"gatewayDescription": "string",
"paymentProviderDescription": "string"
},
"message": "string"
}
{
"traceId": "00-1234567890abcdef0123456789abcdef-0123456789abcdef-00",
"errors": [
{
"message": "Internal server error."
}
]
}