> ## 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 an offramp quote

> Accept and initiate a quote-based offramp.

For example, an offramp from crypto currency `usdc` to fiat currency `brl` is quote-based so its initial status will be `OPEN_QUOTE`. After reviewing the offramp conversion rate quote information, you can accept it to initialize the offramp.




## OpenAPI

````yaml https://production.hifi.com/api/v2/openapi.json post /v2/offramps/{transferId}/quote/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/offramps/{transferId}/quote/accept:
    post:
      tags:
        - Offramp
      summary: Accept an offramp quote
      description: >
        Accept and initiate a quote-based offramp.


        For example, an offramp from crypto currency `usdc` to fiat currency
        `brl` is quote-based so its initial status will be `OPEN_QUOTE`. After
        reviewing the offramp conversion rate quote information, you can accept
        it to initialize the offramp.
      parameters:
        - $ref: '#/components/parameters/OfframpRecordIDPathParameter'
      responses:
        '200':
          $ref: '#/components/responses/CryptoToFiatAcceptQuoteResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
components:
  parameters:
    OfframpRecordIDPathParameter:
      name: transferId
      in: path
      schema:
        type: string
      description: Transfer record ID.
      required: true
  responses:
    CryptoToFiatAcceptQuoteResponse:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OfframpAcceptedQuoteObject'
          examples:
            OfframpObjectUsdCryptoInitiatedExample:
              $ref: '#/components/examples/OfframpObjectUsdCryptoInitiatedExample'
    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:
    OfframpAcceptedQuoteObject:
      $ref: '#/components/schemas/OfframpObject'
    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
    OfframpObject:
      type: object
      properties:
        transferType:
          type: string
        transferDetails:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: unique identifier for the offramp
            requestId:
              type: string
              format: uuid
            orchestrationAddressId:
              type: string
              format: uuid
              nullable: true
              description: >
                ID of the orchestration address that produced this offramp, or
                `null`

                for offramps created directly via `POST /v2/offramps`. Use this
                to

                pivot back to the originating orchestration address — fetch it
                via

                `GET
                /v2/users/{userId}/orchestration-addresses/{orchestrationAddressId}`.
            supportingInformation:
              $ref: '#/components/schemas/SupportingInformation'
              description: >-
                Supporting information provided when the offramp was created
                (e.g. detailed purpose of payment, beneficiary details,
                documents).
            createdAt:
              type: string
              format: date-time
            updatedAt:
              type: string
              format: date-time
            status:
              $ref: '#/components/schemas/OfframpStatusEnum'
            failedReason:
              type: string
            error:
              type: string
              description: >
                Error code when the offramp transaction has failed (e.g.
                `QUOTE_EXPIRED`, `QUOTE_FAILED`, `QUOTE_NOT_AVAILABLE`,
                `BILLING_CONFIG_NOT_FOUND`, `INSUFFICIENT_BALANCE`,
                `FAILED_TO_CREATE_PAYMENT`, `INTERNAL_ERROR`,
                `TRANSACTION_REJECTED`).

                Present when status is a failed state such as `QUOTE_FAILED` or
                `CRYPTO_FAILED`.
            errorDetails:
              type: string
              description: >
                Human-readable error details when the offramp transaction has
                failed.

                Present when status is a failed state.
            source:
              type: object
              properties:
                userId:
                  type: string
                  format: uuid
                chain:
                  type: string
                currency:
                  type: string
                amount:
                  type: number
                walletAddress:
                  type: string
                user:
                  type: object
                  properties:
                    email:
                      type: string
                    lastName:
                      type: string
                      nullable: true
                    firstName:
                      type: string
                      nullable: true
                    businessName:
                      type: string
                      nullable: true
            destination:
              type: object
              properties:
                userId:
                  type: string
                  format: uuid
                amount:
                  type: number
                currency:
                  type: string
                user:
                  type: object
                  properties:
                    email:
                      type: string
                    lastName:
                      type: string
                      nullable: true
                    firstName:
                      type: string
                      nullable: true
                    businessName:
                      type: string
                      nullable: true
                accountId:
                  type: string
                  format: uuid
                  description: destination offramp account ID
                sameDayAch:
                  type: boolean
                  default: false
                  description: same day ACH offramp for a $1 additional fee
            receipt:
              type: object
              properties:
                transactionHash:
                  type: string
                  nullable: true
                paymentTracking:
                  $ref: '#/components/schemas/OfframpPaymentTrackingObject'
            developerFee:
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                  description: unique identifier for the developer fee record
                transactionHash:
                  type: string
                  nullable: true
                  description: transaction hash of the fee transfer
                fees:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - PERCENTAGE
                          - FLAT
                      value:
                        type: string
                        description: >-
                          fee amount as string, for percentage represents
                          decimal (e.g. "0.0005" = 0.05%)
                      amount:
                        type: string
                        description: actual fee amount charged
                      walletAddress:
                        type: string
                        description: wallet address receiving the fee
                    required:
                      - type
                      - value
                      - amount
                      - walletAddress
            quoteInformation:
              type: object
              properties:
                sendGross:
                  type: object
                  properties:
                    amount:
                      type: string
                    currency:
                      type: string
                sendNet:
                  type: object
                  properties:
                    amount:
                      type: string
                    currency:
                      type: string
                receiveGross:
                  type: object
                  properties:
                    amount:
                      type: string
                    currency:
                      type: string
                receiveNet:
                  type: object
                  properties:
                    amount:
                      type: string
                    currency:
                      type: string
                rate:
                  type: string
                expiresAt:
                  type: string
                  format: date-time
            depositInformation:
              $ref: '#/components/schemas/OfframpDepositInstructionsList'
    SupportingInformation:
      type: object
      description: >
        Optional supporting information for the offramp. May include detailed
        purpose of payment,

        beneficiary details, and supporting documents. When provided, documents
        must reference

        files previously uploaded via the file upload API.
      properties:
        detailedPurposeOfPayment:
          type: string
          minLength: 1
          maxLength: 500
          description: Detailed description of the purpose of the payment.
        beneficiaryDetails:
          $ref: '#/components/schemas/SupportingInformationBeneficiaryDetails'
        documents:
          type: array
          maxItems: 5
          items:
            $ref: '#/components/schemas/SupportingInformationDocument'
          description: >-
            Supporting documents (e.g. invoice, contract). Each document must
            reference an uploaded file by fileId.
    OfframpStatusEnum:
      type: string
      enum:
        - NOT_INITIATED
        - CREATED
        - OPEN_QUOTE
        - CRYPTO_INITIATED
        - AWAITING_FUNDS
        - CRYPTO_PENDING
        - CRYPTO_PROCESSED
        - FIAT_INITIATED
        - FIAT_PENDING
        - COMPLETED
        - FIAT_FAILED
        - CRYPTO_RETURNED
        - CRYPTO_FAILED
        - QUOTE_FAILED
        - IN_REVIEW
        - CANCELLED
      description: >
        Refer to
        [here](https://docs.hifi.com/docs/transfers/offramps#transaction-status)
        for more details on each offramp status.
    OfframpPaymentTrackingObject:
      type: object
      properties:
        fedBatchId:
          type: string
          description: Fedwire or ACH batch ID used for settlement tracking
        imad:
          type: string
          description: >-
            Input Messaging Accountability Data. A combination of a date, source
            identifier, and sequence number assigned to a Fedwire message when
            it is processed by the Federal Reserve Bank Funds Transfer
            application. Unique to the payment.
        omad:
          type: string
          description: >-
            Output Messaging Accountability Data. A combination of a date,
            destination identifier, and sequence number assigned to a Fedwire
            message when it is processed by the Federal Reserve Bank Funds
            Transfer application.
        traceNumber:
          type: string
          description: Unique ACH trace number for the transaction
        paymentRail:
          type: string
          enum:
            - wire
            - ach
            - rtp
            - swift
    OfframpDepositInstructionsList:
      type: array
      items:
        type: object
        properties:
          id:
            type: string
            format: uuid
          fromAddress:
            type: string
          toAddress:
            type: string
          currency:
            type: string
          contractAddress:
            type: string
          rawAmount:
            type: string
          amount:
            type: number
          chain:
            type: string
          collected:
            type: boolean
          collectable:
            type: boolean
          expiresAt:
            type: string
            format: date-time
          transactionHash:
            type: string
            nullable: true
    SupportingInformationBeneficiaryDetails:
      type: object
      description: Optional beneficiary details for the offramp.
      properties:
        legalEntityName:
          type: string
          minLength: 1
          maxLength: 255
        jurisdictionOfIncorporation:
          type: string
          description: ISO 3166-1 alpha-3 country code.
        natureOfBusiness:
          type: string
          minLength: 1
          maxLength: 500
        relationshipToBeneficiary:
          type: string
          minLength: 1
          maxLength: 500
        website:
          type: string
          minLength: 1
          maxLength: 255
    SupportingInformationDocument:
      type: object
      description: A supporting document for the offramp (e.g. invoice, contract).
      properties:
        fileId:
          type: string
          format: uuid
          description: Public file ID of an uploaded file.
        type:
          type: string
          enum:
            - INVOICE
            - CONTRACT
            - AGREEMENT
            - PURCHASE_ORDER
            - OTHER
          description: Type of supporting document.
        description:
          type: string
          minLength: 1
          maxLength: 500
          description: Optional description of the document.
      required:
        - fileId
        - type
  examples:
    OfframpObjectUsdCryptoInitiatedExample:
      summary: Offramp Object (USD - CRYPTO_INITIATED)
      value:
        transferType: OFFRAMP
        transferDetails:
          id: 173c1e89-7bbd-4352-9e5d-73807681510d
          requestId: 201ca31d-700f-4c76-ac4b-961623acbb79
          createdAt: '2025-02-03T16:12:04.331652+00:00'
          updatedAt: '2025-02-03T16:12:08.732+00:00'
          status: CRYPTO_INITIATED
          failedReason: null
          source:
            userId: 7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee
            chain: POLYGON
            currency: usdc
            amount: 10
            walletAddress: '0x366B759bAA089Fa57a08edd3F2E028E86b97f8D6'
            user:
              email: john.doe@hifibridge.com
              firstName: John
              lastName: Doe
              businessName: null
          destination:
            userId: 7d54a7a7-dac3-4313-8b09-27fa4b7fd1ee
            amount: 0
            currency: usd
            user:
              email: john.doe@hifibridge.com
              firstName: John
              lastName: Doe
              businessName: null
            accountId: 12c1c496-8f57-41a1-8292-dbe6547791ce
          receipt:
            transactionHash: null
            paymentTracking: null
          developerFee:
            id: 1c3d24c1-6136-574c-a647-e7eb6a9fb6ed
            transactionHash: null
            fees:
              - type: PERCENTAGE
                value: '0.0005'
                amount: '0.000515'
                walletAddress: '0x366B759bAA089Fa57a08edd3F2E028E86b97f8D7'
              - type: FLAT
                value: '0.01'
                amount: '0.010000'
                walletAddress: '0x366B759bAA089Fa57a08edd3F2E028E86b97f8D7'
          quoteInformation:
            sendGross:
              amount: '10'
              currency: usdc
            sendNet:
              amount: '10'
              currency: usdc
            receiveGross:
              amount: '10'
              currency: usd
            receiveNet:
              amount: '10'
              currency: usd
            rate: '1'
          depositInformation: []
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````