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

# Order status

> Read a placed order's delivery stage and arrival estimate.

## Merchants that report a delivery stage

* DoorDash

An order at a DoorDash store answers with its live stage, such as `picked_up` or `arriving`, while `tracking` is `live`. An order at any other merchant answers `placed`, `confirmed` or `canceled` from what the merchant told checkout, with `tracking: not_available`.


## OpenAPI

````yaml openapi.json GET /buy/orders/{order_id}
openapi: 3.1.0
info:
  title: Agentcard API
  version: 2.0.0
  description: >-
    The Agentcard v2 API — connect your users and verify their identity from
    your own backend. Every call is authenticated with a platform access token
    minted from your `client_id` + `client_secret`.
servers:
  - url: https://api.agentcard.sh
    description: >-
      There is one base URL. Sandbox vs production is decided by the client
      credential you use, never by the host.
security:
  - platformToken: []
tags:
  - name: Authentication
    description: >-
      Exchange your client credentials for a platform access token, and
      introspect what a token acts as.
  - name: Connect
    description: >-
      Connect a user to your platform: send a one-time code, verify it, record
      consent, and keep the connection alive.
  - name: Identity verification
    description: >-
      Verify a connected user's identity: upload their ID, submit any extra
      fields we ask for, then show a short face scan.
  - name: Wallet funding
    description: >-
      Fund a connected user's wallet from your own UI — request a payment link,
      relay the phone verification code, and poll until the funds land.
  - name: Withdrawals
    description: >-
      Move money out of a connected user's wallet — to a saved bank account or a
      crypto address on Base. Transfers are processed manually by the Agentcard
      team, usually within 1-3 business days.
paths:
  /buy/orders/{order_id}:
    get:
      tags:
        - Purchase
      summary: Read where an order is
      description: >-
        Where one placed order is now: its delivery stage, the arrival estimate
        and whether Agentcard is still following it. Agentcard reads a DoorDash
        order about once a minute until it is delivered or canceled, and sends
        order.updated on every stage change; this read answers from the last
        stage it read and never calls the merchant. For a merchant Agentcard
        cannot follow, status is placed, confirmed or canceled from what the
        merchant told checkout. Same bearer scoping as POST /buy: a user token
        (a connection access_token or a cardholder buy_token) reads that user's
        own order, and a platform access token reads the order of a connected
        person named by user_id.
      operationId: getBuyOrder
      parameters:
        - name: order_id
          in: path
          required: true
          schema:
            type: string
          description: >-
            The order_id from order.placed, or from an order in GET
            /buy/conversations/{id}.
        - name: user_id
          in: query
          required: false
          schema:
            type: string
          description: >-
            The connected person whose order this is. Required with a platform
            access token: a read that leaves it out is refused with 400
            user_id_required. Leave it out with a user token, which names the
            person itself.
      responses:
        '200':
          description: The order.
          content:
            application/json:
              schema:
                type: object
                properties:
                  order_id:
                    type: string
                  merchant:
                    type: string
                  merchant_name:
                    type: string
                  conversation_id:
                    type:
                      - string
                      - 'null'
                  status:
                    type: string
                    enum:
                      - placed
                      - confirmed
                      - courier_assigned
                      - courier_at_store
                      - ready_for_pickup
                      - picked_up
                      - arriving
                      - delivered
                      - canceled
                    description: >-
                      The delivery stage, in Agentcard's words for every
                      merchant.
                  status_updated_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                    description: When the order reached this stage.
                  estimated_arrival:
                    type:
                      - object
                      - 'null'
                    description: >-
                      The arrival window the merchant quotes, or null when it
                      quotes none.
                    properties:
                      earliest:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      latest:
                        type:
                          - string
                          - 'null'
                        format: date-time
                  tracking:
                    type: string
                    enum:
                      - live
                      - ended
                      - not_available
                    description: >-
                      live while Agentcard follows the order, ended once it
                      stopped (delivered, canceled, past six hours, or gone from
                      the merchant more than two hours after it was placed),
                      not_available for a merchant it cannot follow.
                  checked_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                    description: >-
                      When Agentcard last tried to read the order from the
                      merchant. A try that read nothing moves this time too, so
                      read status_updated_at for how old the stage itself is.
                  placed_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
              example:
                order_id: 9632435a-4d4d-48bb-869d-5d0e3bd1410b
                merchant: doordash
                merchant_name: DoorDash
                conversation_id: conv_9a8b7c6d5e4f3a2b1c0d9e8f
                status: arriving
                status_updated_at: '2026-10-06T00:53:54.000Z'
                estimated_arrival:
                  earliest: '2026-10-06T00:53:20.000Z'
                  latest: '2026-10-06T00:55:20.000Z'
                tracking: live
                checked_at: '2026-10-06T00:54:30.000Z'
                placed_at: '2026-10-06T00:28:58.000Z'
        '404':
          description: No such placed order for this bearer.
      security:
        - userAccessToken: []
components:
  securitySchemes:
    platformToken:
      type: http
      scheme: bearer
      description: >-
        A platform access token. Get one on the **Create an access token**
        endpoint by exchanging your `client_id` + `client_secret`, then send it
        as `Authorization: Bearer <token>`. Tokens live one hour.
    userAccessToken:
      type: http
      scheme: bearer
      description: >-
        The user's connection access_token (user authentication), or an
        org-minted buy_token for org-owned accounts.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.