Confirm a payment intent

Confirms a payment intent.

SecurityOAuth2 or OAuth2
Request
path Parameters
id
required
string

The identifier of the payment intent.

query Parameters
expand[]
Array of strings <= 10 items

Attributes to inline in the response. Repeat the parameter once per value; a comma-separated list is not accepted. Each value must name an attribute marked expandable on the response schema.

The only expandable attribute is latestPayment, which returns an ExpandedPayment carrying the payment's id and amountRefunded, for the CARD_PRESENT, GIFT_CARD_PRESENT, and GIFT_CARD payment method types.

An unrecognized value is rejected with a 400. A recognized value that does not apply to the payment method type on the payment intent is accepted and ignored, so a caller handling mixed traffic can send a stable expand[] value without first inspecting the payment method.

Example: expand[]=latestPayment
header Parameters
Toast-Restaurant-External-ID
required
string

The identifier of the location.

Request Body schema: application/json
customerId
string

The unique identifier of the customer record that identifies the customer in the Toast platform. The identifier is used to retrieve the customer's payment methods saved to their profile.

email
string

The email address of the customer making the payment. Must consist of the following characters: a-z, A-Z, 0-9, =, ., -, _, +, @, :, &, ^, %, !, $. An email address is required for digital or online transactions and must be provided at least once during the payment intent workflow by including it in the request body of the create payment intent, update payment intent, or confirm payment intent request.

paymentMethodId
string

The identifier of the payment method associated to this payment intent.

sessionSecret
string

A unique and randomized identifier for this payment intent that can be used to create payment methods via iframe and SDKs.

Responses
200

Successful operation. Payment intent confirmed.

202

Request accepted and is being processed asynchronously.

400

Bad request / Missing required fields.

409

Payment method not found or hasn't been scoped to payment intent.

424

The request could not be completed due to a failure in a required dependency. The status of the payment intent is unknown.

500

Payment intent could not be updated due to an internal error.

post/v1/payment-intents/{id}/confirm
Request samples
application/json
{
  • "paymentMethodId": "string",
  • "sessionSecret": "string",
  • "email": "string",
  • "customerId": "string"
}
Response samples
application/json
{
  • "id": "f8450373-f2a6-4211-8064-55b57f46c57e",
  • "externalReferenceId": "b31a2b46-53f5-4ad9-a2e3-1dc38ff564d5",
  • "sessionSecret": "string",
  • "amount": 1,
  • "currency": "USD",
  • "captureMethod": "MANUAL",
  • "status": "REQUIRES_CAPTURE",
  • "paymentMethodId": "7e532fea-bf6d-46c9-9f75-aee33d514fca",
  • "creationDate": "2025-02-17T20:33:07.011185Z",
  • "usage": "ON_SESSION",
  • "customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac",
  • "amountDetails": {
    },
  • "email": "string",
  • "paymentMethodConfigurationDetails": {
    },
  • "standingInstructionType": "UNSCHEDULED",
  • "offSession": false,
  • "latestPayment": {
    },
  • "mandateId": "d1bc0870-b8e9-44ee-9a49-7d6c416305cc"
}