---
title: "Complete cart checkout"
method: POST
path: "/mcp/v1/actions/ud_cart_checkout"
tags: ["Cart"]
---

# Complete cart checkout

`POST /mcp/v1/actions/ud_cart_checkout`

## Request

- Base URL: `https://api.unstoppabledomains.com`
- URL: `https://api.unstoppabledomains.com/mcp/v1/actions/ud_cart_checkout`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/unstoppabledomains/apis/user-api/docs/mcp/v1/actions/ud_cart_checkout/post.ts> (a function with typed inputs; its response is checked against the schema)

Complete checkout for cart items using saved payment method or account balance. Requires authentication.

## Request body

- object
  - `paymentMethodId` string: Stripe payment method ID for card payment. Required if cart total exceeds account balance.
  - `useAccountBalance` boolean: Whether to apply account balance to reduce total. Defaults to true.
  - `discountCode` string: Optional discount/promo code to apply
  - `contactId` string: ICANN contact ID for DNS domain registration. Get IDs from ud_contacts_list. If not specified, uses the most recent contact.

## Response `200`

Checkout result

- CheckoutResponse
  - `success` boolean
  - `orderId` number
  - `paymentId` number
  - `summary` object
    - `itemCount` number
    - `domains` string[]
    - `subtotal` number
    - `subtotalFormatted` string
    - `discounts` number
    - `discountsFormatted` string
    - `creditsUsed` number
    - `creditsUsedFormatted` string
    - `salesTax` number
    - `salesTaxFormatted` string
    - `totalCharged` number
    - `totalChargedFormatted` string
    - `paymentMethod` string
  - `note` string: Optional note about contact selection when user has multiple contacts

## Other responses

- `401`: Authentication required

---

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