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

# POST /v0/wallet/transfer-offers/:tracking_id/status

> Check the status of a transfer offer with a given tracking id.




## OpenAPI

````yaml /openapi/splice/validator/wallet-external.yaml post /v0/wallet/transfer-offers/{tracking_id}/status
openapi: 3.0.0
info:
  title: Wallet API
  version: 0.0.1
servers:
  - url: https://example.com/api/validator
security: []
tags:
  - name: wallet
paths:
  /v0/wallet/transfer-offers/{tracking_id}/status:
    post:
      tags:
        - wallet
      summary: POST /v0/wallet/transfer-offers/:tracking_id/status
      description: |
        Check the status of a transfer offer with a given tracking id.
      operationId: getTransferOfferStatus
      parameters:
        - in: path
          name: tracking_id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            An offer with this tracking id is known. Check the response for its
            status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransferOfferStatusResponse'
        '404':
          description: >
            No offer with this tracking id is known.

            Perhaps it has not yet been submitted or processed; or it has been
            submitted

            in the past before the current beginning of the wallet transaction
            log.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - walletUserAuth: []
components:
  schemas:
    GetTransferOfferStatusResponse:
      oneOf:
        - $ref: '#/components/schemas/TransferOfferCreatedResponse'
        - $ref: '#/components/schemas/TransferOfferAcceptedResponse'
        - $ref: '#/components/schemas/TransferOfferCompletedResponse'
        - $ref: '#/components/schemas/TransferOfferFailedResponse'
      discriminator:
        propertyName: status
        mapping:
          created:
            $ref: '#/components/schemas/TransferOfferCreatedResponse'
          accepted:
            $ref: '#/components/schemas/TransferOfferAcceptedResponse'
          completed:
            $ref: '#/components/schemas/TransferOfferCompletedResponse'
          failed:
            $ref: '#/components/schemas/TransferOfferFailedResponse'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    TransferOfferCreatedResponse:
      allOf:
        - $ref: '#/components/schemas/BaseGetTransferOfferStatusResponse'
        - type: object
          required:
            - transaction_id
            - contract_id
          properties:
            transaction_id:
              type: string
              description: |
                Id of the transaction that created the transfer offer
            contract_id:
              type: string
              description: |
                Contract id of the created transfer offer
    TransferOfferAcceptedResponse:
      allOf:
        - $ref: '#/components/schemas/BaseGetTransferOfferStatusResponse'
        - type: object
          required:
            - transaction_id
            - contract_id
          properties:
            transaction_id:
              type: string
              description: |
                Id of the transaction that accepted the transfer offer
            contract_id:
              type: string
              description: |
                Contract id of the accepted transfer offer
    TransferOfferCompletedResponse:
      allOf:
        - $ref: '#/components/schemas/BaseGetTransferOfferStatusResponse'
        - type: object
          required:
            - transaction_id
            - contract_id
          properties:
            transaction_id:
              type: string
              description: |
                Id of the transaction of the transfer
            contract_id:
              type: string
              description: |
                Contract id of the created amulet for the receiver
    TransferOfferFailedResponse:
      allOf:
        - $ref: '#/components/schemas/BaseGetTransferOfferStatusResponse'
        - type: object
          required:
            - failure_kind
          properties:
            failure_kind:
              type: string
              description: |
                The reason for the failure of the transfer offer.
                expired:
                  The transfer offer or the accepted transfer offer expired before it could be completed.
                rejected:
                  The receiver rejected the transfer offer or withdrew their accepted offer.
                withdrawn:
                  The sender withdraw their offer, e.g., due to insufficient funds or operational reasons.
              enum:
                - expired
                - rejected
                - withdrawn
            withdrawn_reason:
              type: string
              description: >
                Human readable description of the reason for the sender
                withdrawing their offer.
    BaseGetTransferOfferStatusResponse:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          description: |
            The status of the transfer offer.
            created:
              The offer has been created and is waiting for the receiver to accept it.
              contract_id points to the contract_id of the offer and transaction_id to the transaction that created it.
            accepted:
              The offer has been accepted by the receiver and is waiting for the wallet automation
              to complete it by delivering the offered Amulet.
              contract_id points to the contract id of the accepted offer and transaction_id to the transaction that accepted it
            completed:
              The transfer has been completed and the CC amount has been transferred to the receiver.
              contract_id points to the contract id of the created amulet for the receiver and
              transaction_id to the transaction of the transfer.
            failed:
              The transfer has failed permanently and no CC has been transferred. Refer to
              failure_reason for details. A new transfer offer can be created with a different tracking_id.
  securitySchemes:
    walletUserAuth:
      description: >
        JWT token as described in
        [spliceAppBearerAuth]("../../../../common/src/main/openapi/common-external.yaml#/components/securitySchemes/spliceAppBearerAuth").

        The subject of the token must be ledger API user of the user whose
        wallet the endpoint affects.
      type: http
      scheme: bearer
      bearerFormat: JWT

````