Create 3DS Session
POST/3DS-sessions
This method creates a 3DS authentication session and provides a redirectUrl
where the actual authentication takes place.
- Make sure to specify purpose according to the intended interaction as
PAYMENT_TRANSACTION
for customer-initiated transactions (Create a Payment 3DS Session), orADD_CARD
, for merchant-initiated transactions (Create a Storing 3DS Session). - The method response contains a
redirectUrl
, to complete authentication, payer needs to be redirected and complete the challenge. - Once challenge completed, payer is redirected to
returnUrl
, this need to be used as trigger to issueGET 3DS-sessions/{id}
request to confirm transaction status an retrieve values required for payment / storing endpoints.
This endpoint contains PCI data and requires forwarding through /forwarding/tokenize
.
Please refer to two examples below which illustrate Create a Payment 3DS Session and Create a Storing 3DS Session.
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}/3DS-sessions
{{pci_base64_public_private}}
cardDetails.cardToken
- application/json
Body
required
cardDetails
object
required
Card brand code. Please refer to Data Model.
Possible values: >= 2 characters
and <= 2 characters
Credit card expiration month in format "MM".
Possible values: >= 2 characters
and <= 4 characters
Credit card expiration year in format "YY" or "YYYY"
Possible values: <= 100 characters
Card holder's name as displayed on the card
Possible values: <= 18 characters
PAN token
authenticationAmount
object
required
Information about the operation amount.
Possible values: Value must match regular expression ^\d{1,18}(\.\d{1,2})?$
Operation amount.
Possible values: >= 3 characters
and <= 3 characters
Operation currency ISO-4217 3-letter code.
billingAddress
object
required
Consumer's billing address data. See Address
in Data model.
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
Consumer's shipping address data. See Address
in Data model.
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.
Possible values: [ADD_CARD
, PAYMENT_TRANSACTION
]
Indicates the purpose of 3DS authentication.
Possible values: <= 255 characters
URL provided by merchant which will be called upon completion of the 3DS authentication.
Example: https://my-webshop.com/3DS-return
Possible values: <= 127 characters
Indicates the account number or billing reference to be used.
Possible values: <= 40 characters
, Value must match regular expression ^[a-zA-Z0-9\-_\.:]+$
3DS session identifier provided by the merchant.
Responses
- 201
- 400
- 401
- 403
- 404
- 500
3DS session successfully created
- application/json
- Schema
- Example (from schema)
- Example
Schema
sessionId
that can be used to obtain 3DS authentication result and details from GET 3DS-sessions/{id}
.
Possible values: <= 255 characters
Url where the 3DS authentication is performed and where the merchant redirects the end user.
{
"id": "cc219fff-2905-42d3-8df9-46c533275386",
"redirectUrl": "`baseUrl/public/sessions/{id}/payment-form`"
}
{
"id": "d04b5f52-12e2-470c-b38d-26aa06e40dc2",
"redirectUrl": "https://3DS-api.cons.shared.upcf.jpmmps.com/public/sessions/d04b5f52-12e2-470c-b38d-26aa06e40dc2/payment-form"
}
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."
}
]
}