Automate the configuration of future payments for a Recurring Order.
Use the Checkout Recurring Payment Jobs API only for Payments managed by Checkout.
- Set the payment allocation of the Recurring Cart's
recurringPaymentConfigurationto 100% of the PaymentMethod. - Create the Recurring Payment that links the Recurring Order to the PaymentMethod and to the Payment Connector responsible for processing its future payments.
status reflects the outcome, but Checkout no longer uses it.If a Recurring Payment Job has not been processed yet by the time it is needed, Checkout automatically retries it until it succeeds or reaches the maximum number of 3 attempts.
Scope
| Scope | Permission granted |
|---|---|
view_recurring_payment_jobs:{projectKey} | View Recurring Payment Jobs |
manage_recurring_payment_jobs:{projectKey} | Manage Recurring Payment Jobs |
Get Recurring Payment Job
Get Recurring Payment Job by ID
id. Specific Error Codes:view_recurring_payment_jobs:{projectKey}manage_recurring_payment_jobs:{projectKey}manage_projects:{projectKey}projectKeyString | Identifier of your Checkout entity and key of your Project. |
idString | id of the RecurringPaymentJob. |
regionString |
application/jsoncurl --get https://checkout.{region}.commercetools.com/{projectKey}/recurring-payment-jobs/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"id": "6d95b6c6-5ef0-4091-8478-b26077ca2b2f",
"version": 1,
"key": "recurring-payment-job-key",
"originPayment": {
"typeId": "payment",
"id": "d1fec278-22c2-4a1d-8190-8f1e8af5ccfb"
},
"paymentMethod": {
"typeId": "payment-method",
"id": "9c5e8f2a-3b7d-4e6a-9c1f-2a5b8d7e4f3c"
},
"recurringPayments": [
{
"typeId": "recurring-payment",
"id": "39ccda28-47f9-41bf-8dde-e1d720c19000"
}
],
"status": {
"state": "Completed",
"attempts": 1
},
"createdAt": "2026-07-14T08:15:22.310Z",
"lastModifiedAt": "2026-07-19T08:15:29.840Z"
}Get Recurring Payment Job by Key
key. Specific Error Codes:view_recurring_payment_jobs:{projectKey}manage_recurring_payment_jobs:{projectKey}manage_projects:{projectKey}projectKeyString | Identifier of your Checkout entity and key of your Project. |
keyString | key of the RecurringPaymentJob. |
regionString |
application/jsoncurl --get https://checkout.{region}.commercetools.com/{projectKey}/recurring-payment-jobs/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"id": "6d95b6c6-5ef0-4091-8478-b26077ca2b2f",
"version": 1,
"key": "recurring-payment-job-key",
"originPayment": {
"typeId": "payment",
"id": "d1fec278-22c2-4a1d-8190-8f1e8af5ccfb"
},
"paymentMethod": {
"typeId": "payment-method",
"id": "9c5e8f2a-3b7d-4e6a-9c1f-2a5b8d7e4f3c"
},
"recurringPayments": [
{
"typeId": "recurring-payment",
"id": "39ccda28-47f9-41bf-8dde-e1d720c19000"
}
],
"status": {
"state": "Completed",
"attempts": 1
},
"createdAt": "2026-07-14T08:15:22.310Z",
"lastModifiedAt": "2026-07-19T08:15:29.840Z"
}Query Recurring Payment Jobs
view_recurring_payment_jobs:{projectKey}manage_recurring_payment_jobs:{projectKey}manage_projects:{projectKey}projectKeyString | Identifier of your Checkout entity and key of your Project. |
regionString |
sortString | Controls Sorting of query results. The following fields are available for sorting: id, key, createdAt, lastModifiedAt.The parameter can be passed multiple times. |
limitInt32 | Number of results requested. Default: 20Minimum: 0Maximum: 500 |
offsetInt32 | Number of elements skipped. Default: 0Maximum: 10000 |
withTotalBoolean | Controls the calculation of the total number of query results. Default: false |
status.stateString | Filters the results by status.state using the format status.state=eq:{value}. |
application/jsoncurl --get https://checkout.{region}.commercetools.com/{projectKey}/recurring-payment-jobs -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" {
"limit": 20,
"offset": 0,
"count": 1,
"total": 1,
"results": [
{
"id": "6d95b6c6-5ef0-4091-8478-b26077ca2b2f",
"version": 1,
"key": "recurring-payment-job-key",
"originPayment": {
"typeId": "payment",
"id": "d1fec278-22c2-4a1d-8190-8f1e8af5ccfb"
},
"paymentMethod": {
"typeId": "payment-method",
"id": "9c5e8f2a-3b7d-4e6a-9c1f-2a5b8d7e4f3c"
},
"recurringPayments": [
{
"typeId": "recurring-payment",
"id": "39ccda28-47f9-41bf-8dde-e1d720c19000"
}
],
"status": {
"state": "Completed",
"attempts": 1
},
"createdAt": "2026-07-14T08:15:22.310Z",
"lastModifiedAt": "2026-07-14T08:15:29.840Z"
}
]
}Create Recurring Payment Job
manage_recurring_payment_jobs:{projectKey}manage_projects:{projectKey}projectKeyString | Identifier of your Checkout entity and key of your Project. |
regionString |
application/jsonapplication/jsoncurl https://checkout.{region}.commercetools.com/{projectKey}/recurring-payment-jobs -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"key" : "recurring-payment-job-key",
"originPayment" : {
"typeId" : "payment",
"id" : "d1fec278-22c2-4a1d-8190-8f1e8af5ccfb"
},
"paymentMethod" : {
"typeId" : "payment-method",
"id" : "9c5e8f2a-3b7d-4e6a-9c1f-2a5b8d7e4f3c"
}
}
DATA{
"id": "6d95b6c6-5ef0-4091-8478-b26077ca2b2f",
"version": 1,
"key": "recurring-payment-job-key",
"originPayment": {
"typeId": "payment",
"id": "d1fec278-22c2-4a1d-8190-8f1e8af5ccfb"
},
"paymentMethod": {
"typeId": "payment-method",
"id": "9c5e8f2a-3b7d-4e6a-9c1f-2a5b8d7e4f3c"
},
"recurringPayments": [
{
"typeId": "recurring-payment",
"id": "39ccda28-47f9-41bf-8dde-e1d720c19000"
}
],
"status": {
"state": "Completed",
"attempts": 1
},
"createdAt": "2026-07-14T08:15:22.310Z",
"lastModifiedAt": "2026-07-19T08:15:29.840Z"
}Delete Recurring Payment Job
Delete Recurring Payment Job by ID
id. Specific Error Codes:manage_recurring_payment_jobs:{projectKey}manage_projects:{projectKey}projectKeyString | Identifier of your Checkout entity and key of your Project. |
idString | id of the RecurringPaymentJob. |
regionString |
versionInt64 | Last seen version of the resource. |
application/jsoncurl -X DELETE https://checkout.{region}.commercetools.com/{projectKey}/recurring-payment-jobs/{id}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"{
"id": "6d95b6c6-5ef0-4091-8478-b26077ca2b2f",
"version": 1,
"key": "recurring-payment-job-key",
"originPayment": {
"typeId": "payment",
"id": "d1fec278-22c2-4a1d-8190-8f1e8af5ccfb"
},
"paymentMethod": {
"typeId": "payment-method",
"id": "9c5e8f2a-3b7d-4e6a-9c1f-2a5b8d7e4f3c"
},
"recurringPayments": [
{
"typeId": "recurring-payment",
"id": "39ccda28-47f9-41bf-8dde-e1d720c19000"
}
],
"status": {
"state": "Completed",
"attempts": 1
},
"createdAt": "2026-07-14T08:15:22.310Z",
"lastModifiedAt": "2026-07-19T08:15:29.840Z"
}Delete Recurring Payment Job by Key
key. Specific Error Codes:manage_recurring_payment_jobs:{projectKey}manage_projects:{projectKey}projectKeyString | Identifier of your Checkout entity and key of your Project. |
keyString | key of the RecurringPaymentJob. |
regionString |
versionInt64 | Last seen version of the resource. |
application/jsoncurl -X DELETE https://checkout.{region}.commercetools.com/{projectKey}/recurring-payment-jobs/key={key}?version={version} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"{
"id": "6d95b6c6-5ef0-4091-8478-b26077ca2b2f",
"version": 1,
"key": "recurring-payment-job-key",
"originPayment": {
"typeId": "payment",
"id": "d1fec278-22c2-4a1d-8190-8f1e8af5ccfb"
},
"paymentMethod": {
"typeId": "payment-method",
"id": "9c5e8f2a-3b7d-4e6a-9c1f-2a5b8d7e4f3c"
},
"recurringPayments": [
{
"typeId": "recurring-payment",
"id": "39ccda28-47f9-41bf-8dde-e1d720c19000"
}
],
"status": {
"state": "Completed",
"attempts": 1
},
"createdAt": "2026-07-14T08:15:22.310Z",
"lastModifiedAt": "2026-07-19T08:15:29.840Z"
}Sort results
sort query parameter. The following fields are available for sorting:| Field | Description | Example |
|---|---|---|
id | Sort by Recurring Payment Job ID | id asc |
key | Sort by Recurring Payment Job key | key asc |
createdAt | Sort by creation timestamp | createdAt desc |
lastModifiedAt | Sort by the last modified timestamp | lastModifiedAt asc |
Sorting examples
GET /{projectKey}/recurring-payment-jobs?sort=createdAt%20desc
GET /{projectKey}/recurring-payment-jobs?sort=id%20asc
GET /{projectKey}/recurring-payment-jobs?sort=lastModifiedAt%20desc&limit=10&offset=0
Representations
RecurringPaymentJob
idString | Unique identifier of the Recurring Payment Job. |
versionInt | Current version of the Recurring Payment Job. |
keyString | User-defined unique identifier of the Recurring Payment Job. MinLength:2MaxLength: 256Pattern: ^[A-Za-z0-9_-]+$ |
originPayment | Payment made for the Cart that generated the Recurring Order. |
paymentMethod | PaymentMethod that must be used to pay the Orders generated by the Recurring Order. |
recurringPaymentsArray of RecurringPaymentReference | Recurring Payments created from the Recurring Payment Job. |
status | Status of the Recurring Payment Job. |
createdAtDateTime | Date and time (UTC) the Recurring Payment Job was initially created. |
lastModifiedAtDateTime | Date and time (UTC) the Recurring Payment Job was last updated. |
RecurringPaymentJobDraft
keyString | User-defined unique identifier of the Recurring Payment Job. MinLength:2MaxLength: 256Pattern: ^[A-Za-z0-9_-]+$ |
originPayment | Payment made for the Cart that generates the Recurring Order. |
paymentMethod | PaymentMethod that must be used to pay the Orders generated by the Recurring Order. |
RecurringPaymentJobStatus
state | State of the Recurring Payment Job. |
attemptsInt | Number of times Checkout has attempted to process the Recurring Payment Job. |
errorsArray of RecurringPaymentJobError | Errors returned if the Recurring Payment Job is in the Failed state. |
RecurringPaymentJobState
InitialThe Recurring Payment Job has been created and is waiting to be processed.
Pending- Checkout is setting up the future payment method and Connector for the Orders generated by the Recurring Order.
Completed- The Recurring Payment Job completed successfully. Checkout created the Recurring Payment needed to process the future payments of the Recurring Order.
FailedThe Recurring Payment Job failed.
RecurringPaymentJobError
codeString | Error identifier. |
messageString | Plain text description of the cause of the error. |
PaymentMethodReference
idString | Unique identifier of the referenced PaymentMethod. |
typeId | payment-method |