Checkout API
The Checkout API provides a unified interface for merchants to enable consumer checkout and accept payments within their overall commerce experience.
The Checkout API provides a unified interface for merchants to enable consumer checkout and accept payments within their overall commerce experience.
# Harvested verbatim from the J.P. Morgan Payments Developer Portal.
# method: searched
# source: https://developer.payments.jpmorgan.com/api/llm-content?path=en%2Fapi%2Fcommerce%2Fonline-payments%2Fcheckout%2Fcheckout-oas.md
# generated: '2026-07-28'
openapi: 3.0.1
info:
title: Checkout API
description: The Checkout API provides a unified interface for merchants to enable consumer checkout
and accept payments within their overall commerce experience.
version: 1.9.2
contact:
name: Checkout API Support
url: https://developer.payments.jpmorgan.com/contact/support
email: ms.pit.team@jpmorgan.com
servers:
- url: https://merchant-api.checkout.merchant.jpmorgan.com/v1
description: PRODUCTION - OAUTH
- url: https://merchant-api.checkout-cat.merchant.jpmorgan.com/v1
description: CLIENT TESTING - OAUTH
- url: https://api-mock.payments.jpmorgan.com/v1
description: MOCK
security:
- BearerAuth: []
tags:
- name: Checkout Intent
description: Operations related to setting up and managing checkout sessions.
- name: Health Check
description: Operations related to checking the health of the API.
- name: Merchant Notification
description: Operations related to merchant notifications.
- name: Merchant Catalog
description: Operations related to generating and managing payment links
- name: Payment Links
description: Operations related to catalog services
paths:
/checkout/healthcheck:
get:
summary: Validate the health of the service
security: []
tags:
- Health Check
description: Healthcheck endpoint to validate the health of the service.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/healthCheckResource'
examples:
Health Check:
value:
resourceStatusCode: PASS
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/healthCheckResource'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/healthCheckResource'
/checkout/intent:
post:
summary: Set up checkout intent
tags:
- Checkout Intent
description: Create a Checkout Session JWT to be used by follow-up requests to perform checkout
operations.
parameters:
- name: merchantId
in: header
required: true
schema:
type: string
description: Identifies a merchant acquiring account that processes transactions on any of the
Firm's payment processing systems or a merchant acquiring account from an external system in
the case where the Firm is not the acquirer. When the Firm is the acquirer, the hierarchy level
should be defined by corresponding attribute merchant hierarchy level code. The processing system
that generated the identifier is defined by the Merchant Identifier System Code
examples:
Auth Only:
value: '998482157630'
Auth And Capture:
value: '998482157631'
Auth, Capture and Create profile:
value: '998482157632'
Auth, Capture with 3DS Authentication:
value: '998482157633'
- name: requestId
in: header
required: true
schema:
type: string
maxLength: 22
description: Merchant identifier for the request. The value must be unique.
examples:
Auth Only:
value: '993264242060'
Auth And Capture:
value: '993264242061'
Auth, Capture and Create profile:
value: '993264242062'
Auth, Capture with 3DS Authentication:
value: '993264242063'
- name: segmentId
in: header
schema:
type: string
example: '998482157630_01'
description: A unique identifier that specifies the Checkout Segment for a session. A segment
represents an instance of Checkout that is customized to serve a distinct use case
- name: platformId
in: header
schema:
type: string
example: '9999999100'
description: Identifies the platform used to facilitate the transaction request.
requestBody:
description: SetupCheckoutIntentRequest defines a request for the Set Up Checkout Intent endpoint.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/checkoutIntentRequest'
examples:
Auth Only:
value:
currencyCode: USD
merchantOrderNumber: X1G5VZMxplIm1tRRcrC85o
checkoutOptions:
authorization:
authorizationType: AUTH_METHOD_CART_AMOUNT
capture:
captureMethod: CAPTURE_METHOD_MANUAL
cart:
totalTransactionAmount: 1000
Auth And Capture:
value:
currencyCode: USD
merchantOrderNumber: X1G5VZMxplIm1tRRcrC85o
checkoutOptions:
authorization:
authorizationType: AUTH_METHOD_CART_AMOUNT
capture:
captureMethod: CAPTURE_METHOD_NOW
cart:
totalTransactionAmount: 1000
Auth, Capture and Create profile:
value:
currencyCode: USD
merchantOrderNumber: X1G5VZMxplIm1tRRcrC85o
checkoutOptions:
authorization:
authorizationType: AUTH_METHOD_CART_AMOUNT
capture:
captureMethod: CAPTURE_METHOD_NOW
consumerProfileOptions:
isSaveConsumerProfile: true
cart:
totalTransactionAmount: 1000
Auth, Capture with 3DS Authentication:
value:
currencyCode: USD
merchantOrderNumber: X1G5VZMxplIm1tRRcrC85o
checkoutOptions:
authorization:
authorizationType: AUTH_METHOD_CART_AMOUNT
capture:
captureMethod: CAPTURE_METHOD_NOW
paymentCardAuthenticationRequest:
threeDSChallengeType: CHALLENGE_TYPE_NO_CHALLENGE_REQUESTED
cardholderAccountHistory:
accountCreateTimestamp: '2023-06-04T11:55:20.021Z'
accountUpdateTimestamp: '2023-06-06T10:00:20.021Z'
cardFirstUsedDate: '2022-10-02T10:00:20.051Z'
consumerAccount24HoursAddCardCount: 1
consumerAccountPasswordUpdateTimestamp: '2023-12-04T12:11:54.021Z'
last24HoursTransactionCount: 0
lastYearTransactionCount: 10
last6MonthsPurchaseCount: 5
consumerAccountSuspiciousActivityIndicator: false
consumerAccountAddressIdenticalIndicator: true
consumerShippingAddressFirstUsageDate: '2023-12-06T12:11:54.021Z'
consumerShipToNameIdenticalIndicator: true
purchaseInfo:
lastPurchaseDate: '2023-12-06T12:11:54.021Z'
merchantFraudRiskAssessment:
shipmentType: SHIPPING_METHOD_SHIP_TO_BILLING_ADDRESS
deliveryTimeframe: DELIVERY_TYPE_SAME_DAY_SHIPPING
orderEmailAddress: john.doe@gmail.com
requestorAuthenticationInfo:
requestorAuthenticationMethod: REQUESTOR_AUTHENTICATION_METHOD_REQUESTOR_CRED
threeDSAuthenticationTimestamp: '2023-12-06T16:31:54.021Z'
requestorPriorTransactionAuthenticationInfo:
requestorAuthenticationMethod: PRIOR_AUTHENTICATION_METHOD_FRICTIONLESS_AUTHENTICATION_BY_ACS
threeDSAuthenticationTimestamp: '2023-12-06T16:31:54.021Z'
cart:
totalTransactionAmount: 1000
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/checkoutIntentResponse'
examples:
Auth Only:
value:
checkoutSessionToken: X1G5VZMxplIm1tRRcrC85o
Auth And Capture:
value:
checkoutSessionToken: X1G5VZMxplIm1tRRcrC85o
Auth, Capture and Create profile:
value:
checkoutSessionToken: X1G5VZMxplIm1tRRcrC85o
Auth, Capture with 3DS Authentication:
value:
checkoutSessionToken: X1G5VZMxplIm1tRRcrC85o
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'408':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/checkout/notifications:
get:
summary: List all notifications for a given time period
tags:
- Merchant Notification
description: This endpoint should be used to list all notifications for a given time period
parameters:
- name: MERCHANTID
in: header
required: true
schema:
type: string
description: Identifies a merchant acquiring account that processes transactions on any of the
Firm's payment processing systems or a merchant acquiring account from an external system in
the case where the Firm is not the acquirer. When the Firm is the acquirer, the hierarchy level
should be defined by corresponding attribute merchant hierarchy level code. The processing system
that generated the identifier is defined by the Merchant Identifier System Code
examples:
First 10 Mesages:
value: '998482157632'
- name: platformId
in: header
schema:
type: string
example: '9999999100'
description: Identifies the platform used to facilitate the transaction request.
- name: periodStart
in: query
required: true
schema:
type: string
format: date-time
description: The notification period start. Should be less than period_ends value. Value must
be within the last 30 days.
examples:
First 10 Mesages:
value: '2023-04-05T00:00:00.000Z'
- name: periodEnd
in: query
required: true
schema:
type: string
format: date-time
description: The notification period end. Should be greater than period_starts value. Value must
be within the last 30 days.
examples:
First 10 Mesages:
value: '2023-04-06T00:00:00.000Z'
- name: messageId
in: query
schema:
type: string
description: Allows merchants to query notifications by messageId.
examples:
First 10 Mesages:
value: 4e0b7f43-659f-48a3-8dde-ede2c74ee0ba
- name: notificationType
in: query
schema:
type: string
enum:
- NOTIFICATION_TYPE_SHOPPER_PROFILE
- NOTIFICATION_TYPE_CARD_TOKEN
- NOTIFICATION_TYPE_ORDER
description: Allows merchants to query notifications by notification type.
- name: hideAcknowledged
in: query
schema:
type: boolean
description: Allows merchants to filter out acknowledged notifications.
- name: pageSize
in: query
schema:
type: string
description: The maximum number of notifications to return. The service may return fewer than
this value.If unspecified, at most 50 notifications will be returned.The maximum value is 1000;
values above 1000 will be corrected to 1000.
- name: pageToken
in: query
schema:
type: string
description: Token can be empty/left blank for initial request. Subsequent requests to get follow-up
pages will need this value populated. This value can be obtained from results of the initial
request.
- name: merchantOrderNumber
in: query
schema:
type: string
description: A unique identifier assigned by the merchant or on behalf of the merchant for the
intention to purchase goods and/or services. The merchant order provides the merchant a reference
to the prices, quantity and description of goods and/or services to be delivered for all transactions
included in the sale.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/listMessagesResponse'
examples:
First 10 Mesages:
value:
messages:
- createdAt: '2022-12-21T09:30:15.987Z'
orderNotification:
transactionReference: Q12345-4447-228
checkoutReference: QSA2345
nextPageToken: ''
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Forbidden access
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'403':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Resource is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/checkout/notifications/ack:
post:
deprecated: true
summary: Acknowledge notifications
tags:
- Merchant Notification
description: This endpoint should be used to acknowledge the receipt of notifications
parameters:
- name: MERCHANTID
in: header
required: true
schema:
type: string
description: Identifies a merchant acquiring account that processes transactions on any of the
Firm's payment processing systems or a merchant acquiring account from an external system in
the case where the Firm is not the acquirer. When the Firm is the acquirer, the hierarchy level
should be defined by corresponding attribute merchant hierarchy level code. The processing system
that generated the identifier is defined by the Merchant Identifier System Code
examples:
Acknowledge Messages:
value: '998482157632'
- name: platformId
in: header
schema:
type: string
example: '9999999100'
description: Identifies the platform used to facilitate the transaction request.
requestBody:
description: Information needed to create ackowledgements
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ackMessagesRequest'
examples:
Acknowledge Messages:
value:
messageInfos:
- messageId: d38e582e-27e1-4748-811b-79281f3bb714
receiptHandle: KLFGLdgSlrOIfSK3N0GaPJh2R89u7pFvAiM7M5+I576EbZCxPlphw9DBjAWdWQx6SsmeB4kR091Ueh9P3O+HYpnREerNE6r0ksB3i52FpAnSLwnoxnXTOzvTgMP/gUsTOR/RPlGVcFwOOm9sBMku2txAUI6z5gizJES2Ss56gbPWOShpwn0CIvl6TG4uKJCts3+MDzo0lG7i6hcswpEOcr+bsWMXra0l2HKdzQLJ1ABfgQMkDGHZ7vMxcAcjXQTi2jsx9fr5hG2UhIMvRl8/9+4VsEPCZeIgc777sdsBl2zYxLNUyA8v6GTP4FkPpt/ha2AVKGCJKsz508YnzeQpF42d4yV4hz09FDRHqGbyvVgCtrbsl+HoJztC3rh5bL8VF3p9rqksDCO43j2/oq/JSpfrJ/XSu4DxWRnDhHHC4a5abgth=
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ackMessagesResponse'
examples:
Acknowledge Messages:
value:
ackFailedMessages:
- messageId: d38e582e-27e1-4748-811b-79281f3bb714
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'408':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/checkout/notifications/receive:
get:
deprecated: true
summary: Receive notifications for customer transactions
tags:
- Merchant Notification
description: This endpoint should be used to get latest notifications for the transactions processed
parameters:
- name: MERCHANTID
in: header
required: true
schema:
type: string
description: Identifies a merchant acquiring account that processes transactions on any of the
Firm's payment processing systems or a merchant acquiring account from an external system in
the case where the Firm is not the acquirer. When the Firm is the acquirer, the hierarchy level
should be defined by corresponding attribute merchant hierarchy level code. The processing system
that generated the identifier is defined by the Merchant Identifier System Code
examples:
First 10 Mesages:
value: '998482157632'
- name: maxNumberMessages
in: query
required: true
schema:
type: string
description: Limits the number of messages to the specified value.
examples:
First 10 Mesages:
value: '10'
- name: timeoutMs
in: query
required: true
schema:
type: string
description: Specifies the timeout in milliseconds.
examples:
First 10 Mesages:
value: '300'
- name: redeliveryDelaySeconds
in: query
schema:
type: string
description: Specifies the duration in seconds that the messages received in the response will
be hidden for, before it can be retrieved again.
examples:
First 10 Mesages:
value: '60'
- name: autoAck
in: query
schema:
type: boolean
description: if auto_ack is true, message will be acked automatically when messages are read.
Default value is false.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/receiveMessagesResponse'
examples:
First 10 Mesages:
value:
ackFailedMessages:
- messageId: d38e582e-27e1-4748-811b-79281f3bb714
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Forbidden access
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'403':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Resource is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/catalog/products:
post:
summary: Create product in Merchant catalog
tags:
- Merchant Catalog
description: This endpoint creates a product to be used in Payment Links.
parameters:
- name: merchantId
in: header
required: true
schema:
type: string
description: Identifies a merchant acquiring account that processes transactions on one of the
Firm's payment processing systems.
examples:
New Product:
value: '998482157632'
requestBody:
description: This endpoint creates a product to be used in Payment Links.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/catalogProduct'
examples:
New Product:
value:
name: Motorcycle Helmet
sku: ABC123DEF
description: DOT certified helmet that protects the head on impact
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/catalogProduct'
examples:
New Product:
value:
productId: GHIJ1234KLMN
name: Motorcycle Helmet
sku: ABC123DEF
description: DOT certified helmet that protects the head on impact
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'403':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'408':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'503':
description: Resource is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
/payment-links:
post:
summary: Create a sharable payment link
tags:
- Payment Links
description: This endpoint creates a payment link to be shared with consumers.
parameters:
- name: merchantId
in: header
required: true
schema:
type: string
description: Identifies a merchant acquiring account that processes transactions on one of the
Firm's payment processing systems.
examples:
New Link:
value: '998482157632'
- name: platformId
in: header
schema:
type: string
example: '9999999100'
description: Identifies the platform used to facilitate the transaction request.
requestBody:
description: Defines a request for creating a payment link.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/paymentLink'
examples:
New Link:
value:
merchantOrderNumber: '123456'
items:
- product:
productId: GHIJ1234KLMN
name: Motorcycle Helmet
sku: ABC123DEF
description: DOT certified helmet that protects the head on impact
quantity: 2
unitPrice: 2000
expirationTimestamp: '2024-08-23T00:23:05.353Z'
name: New Link Name
description: This is description for the new link
totalTransactionAmount: 5000
currencyCode: USD
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/paymentLink'
examples:
New Link:
value:
linkId: OPQR9876STUV
merchantOrderNumber: '123456'
items:
- product:
productId: GHIJ1234KLMN
name: Motorcycle Helmet
sku: ABC123DEF
description: DOT certified helmet that protects the head on impact
quantity: 2
unitPrice: 2000
status: LINK_STATUS_ACTIVE
url: test.com/sadfsafsd
expirationTimestamp: '2024-08-23T00:23:05.353Z'
name: New Link Name
description: This is description for the new link
totalTransactionAmount: 5000
currencyCode: USD
createdTimestamp: '2024-08-20T00:23:05.353Z'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'404':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'408':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/messages'
get:
summary: Returns the list of already created links
tags:
- Payment Links
description: This endpoint returns list of links, paged.
parameters:
- name: merchantId
in: header
required: true
schema:
type: string
description: Identifies a merchant acquiring account that processes transactions on any of the
Firm's payment processing systems or a merchant acquiring account from an external system in
the case where the Firm is not the acquirer. When the Firm is the acquirer, the hierarchy level
should be defined by corresponding attribute merchant hierarchy level code. The processing system
that generated the identifier is defined by the Merchant Identifier System Code
examples:
Get Link:
value: '998482157632'
- name: platformId
in: header
schema:
type: string
example: '9999999100'
description: Identifies the platform used to facilitate the transaction request.
- name: pageSize
in: query
schema:
type: string
description: Maximum number of links requested.
examples:
Get Link:
value: '10'
- name: pageToken
in: query
schema:
type: string
description: Token can be empty/left blank for initial request. Subsequent requests to get follow-up
pages will need this value populated. This value can be obtained from results of the initial
request.
- name: filter
in: query
schema:
type: string
description: "Use <i>filter</i> to return payment links matching one or more comparison expressions.\
\ Each expression must be in the query string form:\n<br>\n<field><operator><value>\n\
<br>\nWhen multiple expressions are provided, results include payment links that satisfy the\
\ combined <i>filter</i> criteria.\n<table>\n <tr>\n <th>Field</th>\n <th>Operators</th>\n\
\ <th>Field/Values</th>\n </tr>\n <tr>\n <td>status</td>\n <td>\t= and != </td>\n\
\ <td>link_status_active, link_status_paid, link_status_inactive, link_status_expired</td>\n\
\ </tr> \n<tr>\n <td>order_id</td>\n <td>\t= </td>\n <td>merchantOrderNumber</td>\n\
</tr>\n<tr>\n <td>amount</td>\n <td>\t=, !=, >, >=, <, <= </td>\n \
\ <td>totalTransactionAmount</td>\n</tr> \n<tr>\n <td>partial_paid</td>\n <td>\t\
= </td>\n <td> true, false </td>\n</tr>\n<tr>\n <td>merchant_portal_username</td>\n\
\ <td>\t= </td>\n <td> merchantPortalUsername </td>\n</tr>\n</table>\n"
examples:
Get Link:
value: status=link_status_active
- name: orderBy
in: query
schema:
type: string
description: An expression which specifies field and order in which Payment Links should be listed.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/listLinkResponse'
examples:
Get Link:
value:
links:
- linkId: OPQR9876STUV
merchantOrderNumber: '123456'
items:
- product:
productId: GHIJ1234KLMN
name: Motorcycle Helmet
sku: ABC123DEF
description: DOT certified helmet that protects the head on impact
quantity: 2
unitPrice: 2000
status: LINK_STATUS_ACTIVE
url: test.com/sadfsafsd
expirationTimestamp: '2024-08-23T00:23:05.353Z'
name: New Link Name
description: This is description f
# --- truncated at 32 KB (135 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jp-morgan-chase/refs/heads/main/openapi/jp-morgan-chase-checkout-api-openapi.yml