---
title: "Refresh an order checkout"
method: POST
path: "/teams/{slug}/orders/{order_id}/checkout/refresh"
tags: ["Orders"]
---

# Refresh an order checkout

`POST /teams/{slug}/orders/{order_id}/checkout/refresh`

## Request

- Base URL: `https://api.presscart.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.presscart.com/teams/{slug}/orders/{order_id}/checkout/refresh`
- Auth: HTTP bearer

Runs checkout again for an existing order: reuses its current session or opens a fresh one with the credits available now. Returns the order, or the paid order when nothing is left to pay.

## Path parameters

- `slug` string, required
- `order_id` string, uuid, required

## Request body

- object
  - `expired_session_id` string: The session a failed payment confirmation reported expired
  - `intent` 'open' | 'return': open when the checkout page is opened, which takes the credits from another order's open checkout; return (the default) when the customer comes back to an open checkout, which never takes them
  - `page_id` string, uuid: The checkout page load sending the refresh; the session it opens or reuses is then owned by that page

## Response `200`

The order with its current checkout session

- Order
  - `id` string, uuid, required
  - `profile_id` string, uuid, nullable, required
  - `client_id` string, uuid, nullable, required
  - `checkout_by_id` string, uuid, nullable, required
  - `team_id` string, uuid, nullable, required
  - `total` number, nullable, required
  - `subtotal` number, nullable, required
  - `processing_fee` number, nullable, required
  - `discount` number, nullable, required
  - `credits_applied` number, nullable, required
  - `coupon` string, nullable, required
  - `client_secret` string, required
  - `date_paid` union, required
    - string, nullable
    - string
    - unknown
  - `status` 'CREATED' | 'PAID' | 'CANCELLED', required
  - `reference_number` string, nullable, required
  - `external_reference_number` string, nullable, required
  - `customer_invoice_id` string, nullable, required
  - `customer_invoice_source` 'STRIPE' | 'BILL_COM' | 'WIRE', nullable, required
  - `customer_invoice_date` union, required
    - string, nullable
    - string
    - unknown
  - `customer_invoice_url` string, nullable, required
  - `is_guest_order` boolean, required
  - `guest_email` string, email, nullable, required
  - `account_owner_email` string, email, nullable, required
  - `guest_stripe_customer_id` string, nullable, required
  - `checkout_session_id` string, nullable, required
  - `payment_intent_id` string, nullable, required
  - `payment_status` 'NOT_STARTED' | 'OPEN' | 'PROCESSING' | 'FAILED' | 'EXPIRED' | 'PAID', required
  - `payment_expires_at` union, required
    - string, nullable
    - string
    - unknown
  - `posthog_distinct_id` string, nullable, required
  - `metadata` object, nullable, required
  - `created_at` union, required
    - string, nullable
    - string
    - unknown
  - `updated_at` union, required
    - string, nullable
    - string
    - unknown
  - `deleted_at` union, required
    - string, nullable
    - string
    - unknown

## Other responses

- `400`: The order id is not a uuid, or the order was cancelled
- `401`: Not signed in
- `403`: Not a member of the team, or the team does not exist
- `404`: The order, or the given session, does not belong to the team
- `409`: A payment for this order is being processed (code checkout_payment_in_progress)
- `429`: Too many checkout attempts
- `502`: Stripe could not confirm the checkout session state (code CHECKOUT_SESSION_UNREACHABLE); nothing changed, retry shortly

---

[API](https://skmtc.dev/presscart/apis/presscart-prod-api.md) · [All operations](https://skmtc.dev/presscart/apis/presscart-prod-api/llms.txt) · [OpenAPI document](https://skmtc.dev/presscart/apis/presscart-prod-api/revisions/2154581d845e?raw)
