---
title: "Accept an estimated payout"
method: POST
path: "/api/v1/pay/estimate/{externalId}/accept"
tags: ["Crypto Payments"]
---

# Accept an estimated payout

`POST /api/v1/pay/estimate/{externalId}/accept`

## Request

- Base URL: `https://api.sandbox.bvnk.com`
- URL: `https://api.sandbox.bvnk.com/api/v1/pay/estimate/{externalId}/accept`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/docs/api/v1/pay/estimate/:externalId/accept/post.ts> (a function with typed inputs; its response is checked against the schema)

Accepts the current estimate and converts it into a pending crypto payment.

## Path parameters

- `externalId` string, uuid, required

## Request body

- AcceptEstimateRequestDto
  - `customerId` string, required: Unique identifier for the customer
  - `payOutDetails` EstimatePayOutDetailDto, required: Specify payment details
    - `currency` string, required: Currency code of the payout.
    - `address` string, required: Address to withdrawal funds to.
    - `tag` string: Payment destination tag. This fields isn't null when the `paidCurrency` currency value is XRP
    - `network` 'TRON' | 'ETHEREUM' | 'LITECOIN' | 'BITCOIN' | 'RIPPLE' | 'DOGECOIN' | 'SOLANA' | 'ALGORAND' | 'CARDANO' | 'BINANCE' | 'POLYGON' | 'BITCOIN_CASH' | 'ARC' | 'ARBITRUM' | 'BASE', required: Blockchain network.
  - `complianceDetails` ComplianceDetailDto, required: Specify compliance details about the payment
    - `requesterIpAddress` string: IPv4/IPv6 address of the requester. Required only if `countryCode` is not provided.
    - `contactId` string: Identifier of the contact that takes part of the virtual asset transfer. Can be used instead of `partyDetails`.
    - `partyDetails` PartyDetailDto[], required: Array of compliance information of the entities that take part of the virtual asset transfer.
      - union: Compliance information of the party related to the virtual asset transfer.
        - IndividualPartyDetailDto: Compliance information of the Individual related to the virtual asset transfer
          - `type` string, required: Identifies whether the party detail information belongs to a BENEFICIARY or an ORIGINATOR. Possible values - BENEFICIARY, ORIGINATOR
          - `entityType` 'INDIVIDUAL' | 'COMPANY', required: Identifies whether the party detail information belongs to an INDIVIDUAL or a COMPANY
          - `firstName` string, required: First name of the individual (required for INDIVIDUAL entity type)
          - `lastName` string, required: Last name of the individual (required for INDIVIDUAL entity type)
          - `dateOfBirth` string, required: Date of birth of the individual
          - `relationshipType` string, required: Type of the relationship between the BENEFICIARY/ORIGINATOR and the creator of the payment. Possible values - SELF_OWNED, THIRD_PARTY
          - `countryCode` string, required: The ISO 3166-1-alpha-2 code of the country that the party resides in. Required only if `requesterIpAddress` is not provided.
          - `regionCode` string, UA-XX: ISO 3166-2:UA code for Ukraine regions. Required only if `countryCode` is `UA`. In this case, submissions with missing or invalid `regionCode` are rejected. For all other countries, the region code is ignored. For the complete list of codes, see [ISO_3166-2:UA](https://www.iso.org/obp/ui/#iso:code:3166:UA).
        - CompanyPartyDetailDto: Compliance information of the company related to the virtual asset transfer
          - `type` string, required: Identifies whether the party detail information belongs to a BENEFICIARY or an ORIGINATOR. Possible values - BENEFICIARY, ORIGINATOR
          - `entityType` 'INDIVIDUAL' | 'COMPANY', required: Identifies whether the party detail information belongs to an INDIVIDUAL or a COMPANY
          - `legalName` string, required: Name of the company (required for COMPANY entity type)
          - `relationshipType` string, required: Type of the relationship between the BENEFICIARY/ORIGINATOR and the creator of the payment. Possible values - SELF_OWNED, THIRD_PARTY
          - `countryCode` string, required: The ISO 3166-1-alpha-2 code of the country that the party resides in. Required only if requesterIpAddress is not provided.
          - `regionCode` string, UA-XX: ISO 3166-2:UA code for Ukraine regions. Required only if `countryCode` is `UA`. In this case, submissions with missing or invalid `regionCode` are rejected. For all other countries, the region code is ignored. For the complete list of codes, see [ISO_3166-2:UA](https://www.iso.org/obp/ui/#iso:code:3166:UA).
          - `registrationNumber` string, required: Legal Entity identifier

## Response `200`

OK

- SummaryPaymentDto: Contains all the information about a summary payment object returned.
  - `uuid` string: Unique identifier for the merchant payment.
  - `merchantDisplayName` string: The display name for the merchant payment.
  - `walletId` string: Your wallet's ID.
  - `dateCreated` integer: The date and time, encoded into UNIX epoch timestamps.
  - `expiryDate` integer: The date and time, encoded into UNIX epoch timestamps.
  - `quoteExpiryDate` integer: Expiration date and time, encoded into UNIX epoch timestamps.
  - `acceptanceExpiryDate` integer: Date and time, encoded into UNIX epoch timestamps.
  - `quoteStatus` string
  - `reference` string: Custom payment reference ID to tie the payment to your customer.
  - `type` 'IN' | 'OUT': Defines whether a payment in or payment out.
  - `subType` 'merchantPayIn' | 'merchantPayOut' | 'merchantRefund': Payment sub type.
  - `status` 'PENDING' | 'PROCESSING' | 'CANCELLED' | 'COMPLETE' | 'UNDERPAID' | 'OVERPAID' | 'EXPIRED': The payment status.
  - `displayCurrency` PayAmountsDto: Contains the type of currency, amount to be paid, and amount received.
    - `currency` string: The currency acronym.
    - `amount` number: The amount to be paid.
    - `actual` number: The actual amount received.
  - `walletCurrency` PayAmountsDto: Contains the type of currency, amount to be paid, and amount received.
    - `currency` string: The currency acronym.
    - `amount` number: The amount to be paid.
    - `actual` number: The actual amount received.
  - `paidCurrency` PayAmountsDto: Contains the type of currency, amount to be paid, and amount received.
    - `currency` string: The currency acronym.
    - `amount` number: The amount to be paid.
    - `actual` number: The actual amount received.
  - `feeCurrency` PayAmountsDto: Contains the type of currency, amount to be paid, and amount received.
    - `currency` string: The currency acronym.
    - `amount` number: The amount to be paid.
    - `actual` number: The actual amount received.
  - `displayRate` ExchangeRateDto: Contains exchange rate information to convert from base currency to counter currency.
    - `base` string: The base currency acronym.
    - `counter` string: The counter currency acronym.
    - `rate` number: The exchange rate
  - `exchangeRate` ExchangeRateDto: Contains exchange rate information to convert from base currency to counter currency.
    - `base` string: The base currency acronym.
    - `counter` string: The counter currency acronym.
    - `rate` number: The exchange rate
  - `address` CryptoAddressDto: Payment address details
    - `address` string: The crypto address to send funds to
    - `tag` string: This is a payment destination tag. This fields isn't null when the paidCurrency currency value is XRP.
    - `network` string: The network of the address. We recommend using the `network` parameter instead of `protocol`.
    - `protocol` string: The protocol behind a currency, 'ERC20' or 'TRC20'. **Deprecated**. Use `network` instead.
    - `uri` string: The destination address URI for QR code
    - `alternatives` AlternativeAddressDto[]: The list of non-default addresses for other tokens
      - `network` string: The network of the alternative address. We recommend using the `network` parameter instead of `protocol`.
      - `protocol` string: The protocol behind a currency. Matches currency for native tokens. **Deprecated**. Use `network` instead.
      - `address` string: The crypto address to send funds to.
      - `tag` string: This is a payment destination tag. This fields isn't null when the paidCurrency currency value is XRP.
      - `uri` string: The destination address URI for QR code
  - `returnUrl` string: The URL that the customer will be redirected to if they click 'Back to Merchant' button on the payment web page.
  - `redirectUrl` string: The URL to the payment page that you redirect your customers to.
  - `transactions` GatewayTransactionDto[]
    - `dateCreated` integer: The date and time, encoded into UNIX epoch timestamps.
    - `dateConfirmed` integer: The date and time, encoded into UNIX epoch timestamps.
    - `hash` string: Transaction hash.
    - `amount` number: Payment amount.
    - `risk` object
    - `networkFeeCurrency` string: The currency acronym.
    - `networkFeeAmount` number: The network fee amount.
    - `sources` string[]: The list of source addresses, only applicable if payment in.
    - `displayRate` ExchangeRateDto: Contains exchange rate information to convert from base currency to counter currency.
      - `base` string: The base currency acronym.
      - `counter` string: The counter currency acronym.
      - `rate` number: The exchange rate
    - `exchangeRate` ExchangeRateDto: Contains exchange rate information to convert from base currency to counter currency.
      - `base` string: The base currency acronym.
      - `counter` string: The counter currency acronym.
      - `rate` number: The exchange rate
  - `refund` object: The payment this object is a refund of. This should reference the pay in that this refund was created for.
  - `refunds` object[]: Refunds that have been requested for this payment. This should reference the refund payout for this pay in.
  - `currencyOptions` CurrencyOptions: The currency options.
    - `transaction` string: View onchain transactions.
    - `explorer` string: The explorer to view crypto network
    - `address` string: View wallet address
    - `confirmations` integer: Number of confirmations needed.
  - `networkFeeCurrency` object: Details of the network fee currency.
    - `currency` string: The currency code for the network fee.
    - `amount` number: The network fee amount.
    - `actual` number: The actual network fee amount charged.
  - `flow` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `500`: Unexpected Error

## Changes

- **2026-11-06** `c386d436bf2c`: 3 info
  - added the new `ARBITRUM` enum value to the request property `payOutDetails/network`
  - added the new `ARC` enum value to the request property `payOutDetails/network`
  - added the new `BASE` enum value to the request property `payOutDetails/network`
- **2026-06-16** `97d6c0d2fe2e`: 1 warning, 1 info
  - removed the optional property `CurrencyOptions` from the response with the `200` status
  - added the optional property `currencyOptions` to the response with the `200` status

[Operation history](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/changes/api/v1/pay/estimate/:externalId/accept/post.md)

---

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