---
title: "Confirm Retry Payment"
method: POST
path: "/v1/customer-portal/orders/{id}/confirm-payment"
tags: ["customer_portal", "orders", "public"]
---

# Confirm Retry Payment

`POST /v1/customer-portal/orders/{id}/confirm-payment`

## Request

- Base URL: `https://api.polar.sh`
- URL: `https://api.polar.sh/v1/customer-portal/orders/{id}/confirm-payment`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Confirm a retry payment using a Stripe confirmation token.

## Path parameters

- `id` string, uuid4, required: The order ID.

## Request body

- CustomerOrderConfirmPayment: Schema to confirm a retry payment using either a saved payment method or a new confirmation token.
  - `confirmation_token_id` string, nullable: ID of the Stripe confirmation token for new payment methods.
  - `payment_method_id` string, uuid4, nullable: ID of an existing saved payment method.
  - `payment_processor` 'stripe'

## Response `200`

Successful Response

- CustomerOrderPaymentConfirmation: Response after confirming a retry payment.
  - `status` string, required: Payment status after confirmation.
  - `client_secret` string, nullable: Client secret for handling additional actions.
  - `error` string, nullable: Error message if confirmation failed.

## Other responses

- `404`: Order not found.
- `409`: Payment already in progress.
- `422`: Order not eligible for retry or payment confirmation failed.
- `429`: Manual retry limit exceeded.

---

[API](https://skmtc.dev/polar/apis/polar-api.md) - [All operations](https://skmtc.dev/polar/apis/polar-api/llms.txt) - [OpenAPI document](https://skmtc.dev/polar/apis/polar-api/revisions/77e4ef94fcc3?raw)
