---
title: "Accept an onramp quote"
method: POST
path: "/v2/onramps/{transferId}/quote/accept"
tags: ["Onramp"]
---

# Accept an onramp quote

`POST /v2/onramps/{transferId}/quote/accept`

## Request

- Base URL: `https://production.hifibridge.com`
- URL: `https://production.hifibridge.com/v2/onramps/{transferId}/quote/accept`
- Auth: HTTP bearer

Accept a quote-based onramp.

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

## Path parameters

- `transferId` string, required

## Response `200`

Success

- OnrampAcceptedQuoteObject
  - `transferType` string
  - `transferDetails` object
    - `id` string, uuid
    - `requestId` string, uuid
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `status` 'NOT_INITIATED' | 'CREATED' | 'OPEN_QUOTE' | 'IN_REVIEW' | 'FIAT_INITIATED' | 'AWAITING_FUNDS' | 'FIAT_PENDING' | 'FIAT_PROCESSED' | 'CRYPTO_INITIATED' | 'CRYPTO_PENDING' | 'COMPLETED' | 'FIAT_FAILED' | 'FIAT_RETURNED' | 'CRYPTO_FAILED' | 'QUOTE_FAILED' | 'EXPIRED' | 'CANCELLED' | 'UNKNOWN': Refer to [here](https://docs.hifi.com/docs/transfers/onramps#transaction-status) for more details on each onramp status.
    - `failedReason` string, nullable: Legacy failure label. `null` unless the transaction failed, and `null` on most failures in favour of `error` / `errorDetails`.
    - `error` string: Error code when the onramp transaction has failed (e.g. `INTERNAL_ERROR`, `EXPIRED`, `AMOUNT_TOO_LOW`, `TRANSACTION_REJECTED`). Present when status is a failed state such as `FIAT_FAILED`, `CRYPTO_FAILED`, or `QUOTE_FAILED`.
    - `errorDetails` string: Human-readable error details when the onramp transaction has failed. Present when status is a failed state.
    - `source` object
      - `userId` string, uuid
      - `currency` string
      - `amount` number, float
      - `accountId` string, nullable: Source account the fiat was pulled from. `null` for deposits into a virtual account or into onramp deposit instructions, where no source account is on file.
      - `user` object
        - `email` string, nullable
        - `lastName` string, nullable: `null` for business users, which carry `businessName` instead.
        - `firstName` string, nullable: `null` for business users, which carry `businessName` instead.
        - `businessName` string, nullable: `null` for individual users, which carry `firstName` / `lastName` instead.
      - `bankInfo` InboundObject
        - `bankName` string, nullable
        - `senderName` string, nullable
        - `routingNumber` string, nullable
        - `accountNumber` string, nullable
        - `accountType` string, nullable: ACH field. `null` when the inbound payment did not carry it.
        - `fedBatchId` string, nullable: ACH field. `null` when the inbound payment did not carry it.
        - `imad` string, nullable: Fedwire input message identifier. `null` when the inbound payment did not carry it.
        - `omad` string, nullable: Fedwire output message identifier. `null` when the inbound payment did not carry it.
        - `traceNumber` string, nullable: Trace number for the inbound payment. `null` when the payment did not carry one.
        - `bankAddress` string, nullable
        - `description` string, nullable
        - `references` object, nullable: Remittance and reference information supplied by the sender. `null` when the payment carried none.
          - `senderReference` string, nullable
          - `beneficiaryReference` string, nullable
          - `remittance` string[]
        - `paymentRail` 'ach' | 'wire' | 'rtp', nullable
    - `destination` object
      - `userId` string, uuid
      - `currency` string
      - `chain` string
      - `walletAddress` string
      - `externalWalletId` string
      - `amount` number, float
      - `user` object
        - `email` string
        - `lastName` string
        - `firstName` string
        - `businessName` string
    - `receipt` object
      - `transactionHash` string, nullable
      - `returnReasonCode` string, nullable: Reason code for the returned inbound payment. Only populated when `status` is `FIAT_RETURNED`.
    - `virtualAccountId` string, uuid, nullable: Virtual account the funds were deposited into. `null` when the onramp was not driven by a virtual account.
    - `microDeposits` object: Micro deposits received into the onramp deposit account while it is awaiting funds.
      - `count` integer
      - `data` object[]
        - `createdAt` string, date-time
        - `currency` string
        - `amount` string: Amount received, in dollars as a decimal string (for example `"0.71"`). Not cents.
        - `sourceBankInfo` InboundObject
          - `bankName` string, nullable
          - `senderName` string, nullable
          - `routingNumber` string, nullable
          - `accountNumber` string, nullable
          - `accountType` string, nullable: ACH field. `null` when the inbound payment did not carry it.
          - `fedBatchId` string, nullable: ACH field. `null` when the inbound payment did not carry it.
          - `imad` string, nullable: Fedwire input message identifier. `null` when the inbound payment did not carry it.
          - `omad` string, nullable: Fedwire output message identifier. `null` when the inbound payment did not carry it.
          - `traceNumber` string, nullable: Trace number for the inbound payment. `null` when the payment did not carry one.
          - `bankAddress` string, nullable
          - `description` string, nullable
          - `references` object, nullable: Remittance and reference information supplied by the sender. `null` when the payment carried none.
            - `senderReference` string, nullable
            - `beneficiaryReference` string, nullable
            - `remittance` string[]
          - `paymentRail` 'ach' | 'wire' | 'rtp', nullable
    - `quoteInformation` object, nullable
      - `sendGross` object
        - `amount` string
        - `currency` string
      - `sendNet` object
        - `amount` string
        - `currency` string
      - `railFee` object
        - `amount` string
        - `currency` string
      - `receiveGross` object
        - `amount` string
        - `currency` string
      - `receiveNet` object
        - `amount` string
        - `currency` string
      - `rate` string
      - `conversionFee` object: Conversion fee applied on the quote. Present on usd onramps, where it is always zero.
        - `amount` string
        - `currency` string
        - `description` string
        - `timing` string
      - `expiresAt` string: Expiry of the quote as an ISO 8601 timestamp. Returns the literal string `"N/A"` for static quotes (usd onramps), which do not expire.
    - `depositInfo` OnrampDepositInfoObject
      - `bankName` string
      - `bankAddress` string
      - `swiftCode` string
      - `beneficiary` object
        - `name` string
        - `address` string
      - `ach` object
        - `routingNumber` string
        - `accountNumber` string
      - `wire` object
        - `routingNumber` string
        - `accountNumber` string
      - `rtp` object
        - `routingNumber` string
        - `accountNumber` string
      - `reference` string
      - `depositBy` string, date-time
      - `instruction` string
  - `depositInfo` OnrampDepositInfoObject
    - `bankName` string
    - `bankAddress` string
    - `swiftCode` string
    - `beneficiary` object
      - `name` string
      - `address` string
    - `ach` object
      - `routingNumber` string
      - `accountNumber` string
    - `wire` object
      - `routingNumber` string
      - `accountNumber` string
    - `rtp` object
      - `routingNumber` string
      - `accountNumber` string
    - `reference` string
    - `depositBy` string, date-time
    - `instruction` string

## Other responses

- `401`: Unauthorized
- `404`: Resource not found
- `500`: Internal Server Error

## Changes

- **2026-11-03** `319fa6bd5bc6`: 13 breaking, 24 warning, 6 info
  - the response property `allOf[#/components/schemas/OnrampObject]/transferDetails/depositInfo` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/OnrampObject]/transferDetails/failedReason` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/OnrampObject]/transferDetails/quoteInformation` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/OnrampObject]/transferDetails/receipt/transactionHash` became nullable for the status `200`
  - …39 more

[Operation history](https://skmtc.dev/hifi/apis/hifi-api/changes/v2/onramps/:transferId/quote/accept/post.md)

---

[API](https://skmtc.dev/hifi/apis/hifi-api.md) - [All operations](https://skmtc.dev/hifi/apis/hifi-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hifi/apis/hifi-api/revisions/319fa6bd5bc6?raw)
