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

# Accept a Canton offer

> Accept a Canton offer. The offer must be in RECEIVED status and not expired. Upon acceptance, the offer status will change to PENDING and a job will be created to process the acceptance.




## OpenAPI

````yaml https://production.hifi.com/api/v2/openapi.json post /v2/wallets/{walletId}/offers/{offerId}/accept
openapi: 3.0.0
info:
  title: Hifi API
  version: 2.0.0
  description: API documentation for Hifi
servers:
  - url: https://production.hifibridge.com
    description: Production server
  - url: https://sandbox.hifibridge.com
    description: Sandbox server
security:
  - bearerAuth: []
tags:
  - name: Common
    description: Common endpoints
  - name: User
    description: User endpoints
  - name: Kyc
    description: Kyc endpoints
  - name: Wallet
    description: Wallet endpoints
  - name: Account
    description: Account endpoints
  - name: External Account
    description: External Account endpoints for managing beneficiary bank accounts
  - name: Fiat Account
    description: Fiat Account endpoints
  - name: Virtual Account
    description: Virtual Account endpoints
  - name: Onramp
    description: Onramp endpoints
  - name: Offramp
    description: Offramp endpoints
  - name: Orchestration Address
    description: >-
      Orchestration Address endpoints — persistent on-chain wallets that
      automatically off-ramp incoming stablecoin deposits to a USD bank account
  - name: Crypto Transfer
    description: Crypto Transfer endpoints
  - name: Cross-Chain Bridge
    description: Cross-Chain Bridge endpoints
  - name: Token Swap
    description: Token Swap endpoints
  - name: Canton Offers
    description: Canton Offers endpoints
  - name: Transfer Rules
    description: Transfer approval rules and configuration
  - name: Transfer Approvals
    description: Transfer approval workflow and admin actions
  - name: File
    description: File endpoints
  - name: Reporting
    description: Reporting and metrics endpoints
paths:
  /v2/wallets/{walletId}/offers/{offerId}/accept:
    post:
      tags:
        - Canton Offers
      summary: Accept a Canton offer
      description: >
        Accept a Canton offer. The offer must be in RECEIVED status and not
        expired. Upon acceptance, the offer status will change to PENDING and a
        job will be created to process the acceptance.
      parameters:
        - $ref: '#/components/parameters/WalletIdPathParameter'
        - $ref: '#/components/parameters/OfferIdPathParameter'
      responses:
        '200':
          $ref: '#/components/responses/AcceptCantonOfferResponse'
        '400':
          $ref: '#/components/responses/InvalidOfferErrorResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
components:
  parameters:
    WalletIdPathParameter:
      name: walletId
      in: path
      schema:
        type: string
        format: uuid
      description: ID of the wallet
      required: true
    OfferIdPathParameter:
      name: offerId
      in: path
      schema:
        type: string
        format: uuid
      description: ID of the Canton offer
      required: true
  responses:
    AcceptCantonOfferResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CantonOfferObject'
    InvalidOfferErrorResponse:
      description: Invalid Offer Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    UnauthorizedResponse:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Unauthorized'
    NotFoundResponse:
      description: Resource not found
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
    InternalServerErrorResponse:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
  schemas:
    CantonOfferObject:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the Canton offer
        status:
          type: string
          description: Current status of the offer
          enum:
            - RECEIVED
            - PENDING
            - ACCEPTED
            - REJECTED
            - WITHDRAWN
            - EXPIRED
        amount:
          type: string
          description: The amount of the offer
        currency:
          type: string
          enum:
            - usdcx
          description: The currency of the offer
        source:
          type: object
          properties:
            party:
              type: string
              description: The party created the offer
        destination:
          type: object
          properties:
            userId:
              type: string
              format: uuid
              description: The user ID receiving the offer
            userWalletId:
              type: string
              format: uuid
              description: The wallet ID receiving the offer
            party:
              type: string
              description: The party receiving the offer
        creationTransactionHash:
          type: string
          description: The transaction hash when the offer was created
        executionTransactionHash:
          type: string
          nullable: true
          description: >-
            The transaction hash when the offer was accepted or rejected (null
            if not yet executed)
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the offer was created
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the offer was last updated
        expiresAt:
          type: string
          format: date-time
          nullable: true
          description: Timestamp when the offer expires (null if no expiration)
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
          example: Invalid API key or user not found
    Unauthorized:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        error:
          type: string
          description: Error type
        errorDetails:
          type: string
          description: Detailed error message
    InternalServerError:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        error:
          type: string
          description: Error type
        errorDetails:
          type: string
          description: Detailed error message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````