---
title: "Create an estimate payout"
method: POST
path: "/api/v1/pay/estimate"
tags: ["Crypto Payments"]
---

# Create an estimate payout

`POST /api/v1/pay/estimate`

## Request

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

Retrieves latest exchange rates, fees and network costs for a crypto payout without creating an actual payout. Provide either `walletRequiredAmount` (amount to send) or `paidRequiredAmount` (amount the recipient should receive). See the [Estimate Crypto Payouts](https://docs.bvnk.com/bvnk/use-cases/stablecoin-payments-for-platforms/pay-out-to-your-users) guide for details.

## Request body

- union
  - object
    - `walletId` string, required: Unique identifier for the wallet.
    - `merchantId` string: **Deprecated. Don't use, if you specify `walletId`**. Your Merchant ID. You can find it on the Merchant Details page in your account.
    - `walletCurrency` string, required: Currency code of the wallet.
    - `paidCurrency` string, required: Currency in which the payout is made.
    - `reference` string, required: Internal reference ID for the estimate request.
    - `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
    - `walletRequiredAmount` number, required: Amount in the funding wallet. Specify `walletRequiredAmount` to define how much you want to send. If provided, system calculates `paidRequiredAmount`.
  - object
    - `walletId` string, required: Unique identifier for the wallet.
    - `merchantId` string: **Deprecated. Don't use, if you specify `walletId`**. Your Merchant ID. You can find it on the Merchant Details page in your account.
    - `walletCurrency` string, required: Currency code of the wallet.
    - `paidCurrency` string, required: Currency in which the payout is made.
    - `reference` string, required: Internal reference ID for the estimate request.
    - `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
    - `paidRequiredAmount` number, required: Amount to be paid from the wallet. Specify `paidRequiredAmount` to define how much the recipient should receive. If provided, system calculates `walletRequiredAmount`.

## Response `201`

Created

- EstimatePayoutResponseDto
  - `externalId` string, uuid: Unique ID for the estimate request generated by the system.
  - `accountId` string, uuid: Internal account ID associated with the estimate.
  - `walletId` string: Wallet identifier
  - `customerReference` string: The reference provided in the request.
  - `walletCurrency` string: The currency from which funds are debited.
  - `walletRequiredAmount` number, float: Calculated amount in the wallet currency required to fund the payout.
  - `paidCurrency` string: The currency in which the payout is made.
  - `paidRequiredAmount` number, float: The amount the recipient will receive.
  - `feeCurrency` string: Currency in which the transaction fee is calculated.
  - `feePredictedAmount` number, float: Estimated transaction fee in the feeCurrency.
  - `networkFeeCurrency` string: Currency for the blockchain network fee.
  - `networkFeePredictedAmount` number, float: Estimated blockchain network fee in networkFeeCurrency.
  - `totalWalletAmount` number, float: Total amount debited from the wallet, including fees and network costs.
  - `exchangeRate` number, float: Exchange rate applied between walletCurrency and paidCurrency.
  - `customerId` string: Associated customer ID, if applicable.
  - `paymentExternalId` string: External payment ID, if linked to an actual transaction.
  - `network` string: Blockchain network used for the estimate.

## Other responses

- `400`: Bad Request
- `500`: Unexpected Error

## Changes

- **2026-11-06** `c386d436bf2c`: 3 info
  - added the new `ARBITRUM` enum value to the request property `network`
  - added the new `ARC` enum value to the request property `network`
  - added the new `BASE` enum value to the request property `network`

[Operation history](https://skmtc.dev/bvnk/apis/bvnk-api-endpoints/changes/api/v1/pay/estimate/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)
