> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cocartapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pay for Order

> Process payment for an unpaid order (pending or failed orders)

<Warning>
  This endpoint is currently shown as a preview of what's currently in development and is subject to change.
</Warning>


## OpenAPI

````yaml api-reference/pre-release/openapi-spec-preview.yaml post /order-received/{order_id}/pay
openapi: 3.0.3
info:
  title: CoCart Preview API
  description: >
    CoCart Preview provides enhanced REST API endpoints for WooCommerce headless
    e-commerce solutions.

    This API extends CoCart with additional functionality for checkout, customer
    account management, and order handling.


    ## Authentication


    The API supports multiple authentication methods:

    - **Cart Key**: For guest customers, pass the cart key via `Cart-Key` header
    or `cart_key` parameter

    - **Basic Auth**: For registered customers using username/password

    - **JWT**: For registered customers using JWT tokens (requires JWT plugin)

    - **Session**: For logged-in WordPress users


    ## Base URL


    All API endpoints are prefixed with `/wp-json/cocart/preview/`


    ## Response Format


    All responses follow the CoCart standard format with consistent error
    handling and data structure.
  termsOfService: http://cocartapi.com/terms-of-conditions-polar/
  contact:
    email: support@cocartapi.com
  license:
    name: GNU General Public License v3.0
    url: http://www.gnu.org/licenses/gpl-3.0.html
  version: 0.0.1
servers:
  - url: '{protocol}://{host}/wp-json/cocart/preview'
    description: API Preview
    variables:
      protocol:
        enum:
          - http
          - https
        default: https
      host:
        default: example-store.com
        description: Your store domain
security: []
tags:
  - name: Checkout
    description: Complete checkout process including payment and order creation
  - name: My Account
    description: Customer account information and profile management
  - name: My Orders
    description: Customer order history and details
  - name: My Downloads
    description: Customer digital downloads
  - name: My Subscriptions
    description: Customer subscription management
externalDocs:
  description: Find out more about CoCart API
  url: https://docs.cocartapi.com
paths:
  /order-received/{order_id}/pay:
    post:
      tags:
        - Checkout
      summary: Pay for existing order
      description: Process payment for an unpaid order (pending or failed orders)
      operationId: payForOrder
      parameters:
        - name: order_id
          in: path
          description: Unique identifier for the order
          required: true
          schema:
            type: integer
      requestBody:
        description: Payment details for the order
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayForOrderRequest'
      responses:
        '200':
          description: Payment processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayForOrderResponse'
              examples:
                paymentSuccess:
                  $ref: '#/components/examples/PayForOrderSuccessExample'
        '400':
          description: Bad request - invalid payment method or order cannot be paid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - invalid order key or no permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - cartKey: []
        - basicAuth: []
        - bearerAuth: []
components:
  schemas:
    PayForOrderRequest:
      type: object
      required:
        - order_key
        - payment_method
      properties:
        order_key:
          type: string
          description: Order key for verification
        payment_method:
          type: string
          description: Payment method ID
        payment_data:
          type: array
          items:
            $ref: '#/components/schemas/PaymentData'
          description: Payment data for the gateway
    PayForOrderResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether payment was successful
        order_id:
          type: integer
          description: Order ID
        order_status:
          type: string
          description: Updated order status
        redirect_url:
          type: string
          format: uri
          description: Redirect URL after payment
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Error code identifier
        message:
          type: string
          description: Human-readable error message
        data:
          type: object
          description: Additional error data
          properties:
            status:
              type: integer
              description: HTTP status code
    PaymentData:
      type: object
      required:
        - key
        - value
      properties:
        key:
          type: string
          description: Payment data key
          example: wc-stripe-payment-token
        value:
          oneOf:
            - type: string
            - type: boolean
            - type: integer
          description: Payment data value
  examples:
    PayForOrderSuccessExample:
      value:
        success: true
        order_id: 789
        order_status: processing
        redirect_url: >-
          https://example.com/checkout/order-received/789/?key=wc_order_abc123xyz
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: WordPress username and password
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer authentication with JWT token
      bearerFormat: JWT

````