> ## 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.

# Conversation status

> The server's view of a /buy conversation, for a confirm whose response never arrived: whether a turn is still running, the last checkout attempt (any outcome, with its code and approval link), and every order the conversation placed, read from the ledger. Same bearer scoping as POST /buy.



## OpenAPI

````yaml openapi.json GET /buy/conversations/{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/conversations/{id}:
    get:
      tags:
        - Purchase
      summary: Read a purchase conversation
      description: >-
        The server's view of a /buy conversation, for a confirm whose response
        never arrived: whether a turn is still running, the last checkout
        attempt (any outcome, with its code and approval link), and every order
        the conversation placed, read from the ledger. Same bearer scoping as
        POST /buy.
      operationId: getBuyConversation
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: The conversation_id returned by POST /buy.
      responses:
        '200':
          description: The conversation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  conversation_id:
                    type: string
                  status:
                    type: string
                    enum:
                      - open
                      - closed
                  turn_in_progress:
                    type: boolean
                    description: >-
                      True while a POST /buy call is still running on this
                      conversation. Poll until it clears, then read orders and
                      last_checkout.
                  last_checkout:
                    type:
                      - object
                      - 'null'
                    description: >-
                      The most recent checkout attempt, whatever its outcome.
                      Cleared when a new turn starts.
                    properties:
                      at:
                        type: string
                        format: date-time
                      merchant:
                        type: string
                      merchant_name:
                        type: string
                      status:
                        type: string
                        enum:
                          - placed
                          - pending
                          - denied
                          - needs_approval
                          - error
                      code:
                        type:
                          - string
                          - 'null'
                      message:
                        type:
                          - string
                          - 'null'
                      order_id:
                        type:
                          - string
                          - 'null'
                      payment_source:
                        $ref: '#/components/schemas/PaymentSource'
                      decline_code:
                        type:
                          - string
                          - 'null'
                      approval_url:
                        type:
                          - string
                          - 'null'
                      charge_status:
                        type: string
                        enum:
                          - none
                          - confirming
                          - settled
                          - unknown
                      total_cents:
                        type:
                          - integer
                          - 'null'
                      items:
                        type:
                          - array
                          - 'null'
                        items:
                          type: string
                        description: Delisted lines on an items_unavailable refusal.
                  orders:
                    type: array
                    description: >-
                      Every order this conversation placed, from the ledger,
                      oldest first.
                    items:
                      type: object
                      properties:
                        order_id:
                          type: string
                        merchant:
                          type: string
                        merchant_name:
                          type: string
                        status:
                          type: string
                          enum:
                            - settled
                            - confirming
                            - cancelled
                            - failed
                          description: >-
                            settled = charged; confirming = placed, charge still
                            confirming; cancelled = the merchant cancelled after
                            settlement and the budget was refunded; failed =
                            placed but the funding never confirmed and the
                            reservation was released.
                        total_cents:
                          type: integer
                          description: The all-in amount, fees included.
                        payment_source:
                          $ref: '#/components/schemas/PaymentSource'
                        placed_at:
                          type:
                            - string
                            - 'null'
                          format: date-time
                      required:
                        - order_id
                        - merchant
                        - merchant_name
                        - status
                        - total_cents
                        - payment_source
                        - placed_at
                  carts:
                    type: array
                    description: >-
                      Every cart still on the table, each with its hash (the
                      same shape as carts on POST /buy).
                    items:
                      type: object
                  unmatched:
                    type: array
                    description: >-
                      Asks that did not reach a cart, cumulative for the
                      conversation (the same shape and rules as unmatched on
                      POST /buy).
                    items:
                      type: object
                  created_at:
                    type: string
                    format: date-time
                  updated_at:
                    type: string
                    format: date-time
                required:
                  - conversation_id
                  - status
                  - turn_in_progress
                  - last_checkout
                  - orders
                  - carts
                  - unmatched
        '404':
          description: No such conversation for this bearer.
      security:
        - userAccessToken: []
components:
  schemas:
    PaymentSource:
      type:
        - object
        - 'null'
      description: >-
        What paid, or what would have paid. brand and last4 are the user's own
        card for added_card, vault and stored_payment_method; null for balance
        and company_balance, where no card of theirs is in the flow. Null when
        no checkout ran or it refused before resolving the source.
      properties:
        source:
          type: string
          enum:
            - balance
            - added_card
            - vault
            - company_balance
            - stored_payment_method
        brand:
          type:
            - string
            - 'null'
        last4:
          type:
            - string
            - 'null'
      required:
        - source
        - brand
        - last4
  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.

````