POST/v2/transfer/send/preview

Preview - FVNet Payment

FVNet is FV Bank’s internal payment rail for USD transfers between FV Bank account holders. Unlike bank, stablecoin, or cross-border payouts, FVNet does not use a beneficiary or payment instrument—you identify the recipient by their FV Bank user email or account number.

How it works: • Funds move on FV Bank’s ledger (Payment_FV_Net) in USD • Recipient must be an active FV Bank user who is eligible for FVNet (financial transactions enabled; operators are not eligible) • Preview before send to confirm fees and from/to parties

This endpoint validates the request and returns amount, currency, fees, from/to, and total without committing the transfer.

Headers

FieldTypeRequiredPossible valuesDescription
AuthorizationstringRequiredBearer {SessionToken}Session token from Get Session Token, sent as `Authorization: Bearer {SessionToken}`. Replace with the value from the `x-refresh-token` response header when present (typically within 2 minutes of expiry). Secured calls must use the same IP as the auth request.

Request body

FieldTypeRequiredPossible valuesDescription
RecipientstringRequireduser@example.com | 780008000490Recipient FV Bank account holder identified by email address or Metro account number (digits only). Must match a single active, FVNet-eligible user (not an operator).
PurposestringRequiredAsset_Purchase | Contract_Payment | Other | Education_Payment | Payroll | dividends | Mortgage_Payments | Materials_Purchase | Loan_Payments | Professional_Service_Payments | Invoice_Payment | Investment_Purchase | Savings | Rent_Utility_Payments | reimbursements | Tax_Payments | Personal_Family_Payment | settlement_trade | treasury_movement | gift_donation | remittanceRegulatory purpose code for the payment. Must be one of the allowed values.
AmountstringRequired1.00 | 2.00 | 3.00 | 4.00 | 5.00 | ... NPayment amount in USD, as a decimal string greater than 0 (e.g. `300` or `1.00`).
DescriptionstringRequiredTest API PaymentShort memo or narrative for the transaction (max 150 characters).
CryptoBuySellActivitystringRequiredYes | NoWhether the transaction involves buying or selling cryptocurrency: `Yes` or `No`.
SupportingDocumentstringOptional{fileID}Optional File ID from Upload File (`customField`: Payment_Invoice). Include when a supporting document is required for the payment.

Example request

{
  "Recipient": "user25868@mailinator.com",
  "Purpose": "Loan_Payments",
  "Amount": "300",
  "Description": "lorem ipsum dummy textlorem ipsum dum",
  "CryptoBuySellActivity": "No",
  "SupportingDocument": "{fileID}"
}

Response

FieldTypePossible valuesDescription
ResponseCodeinteger200 | 201 | 204 | 400 | 401 | 403 | 404 | 410 | 422 | 500 | 301 | 503 | 422API result code in the response envelope. Indicates success or the error category (e.g. 200 success, 400 bad request, 401 unauthorized).
ResponseMessagestringSuccess | Created | NoContent | BadRequest | Unauthorized | Forbidden | NotFound | Gone | UnprocessableContent | ServerError | ResourceMoved | ServiceUnAvailable | UnProcessableEntityHuman-readable label paired with ResponseCode (e.g. Success, BadRequest, Unauthorized). Use with ResponseCode to interpret the outcome.
ResponseDataobjectPlease refer to below example for response bodyTransaction preview including amount, currency, fees, from/to, and total.

Example response

{
  "ResponseCode": 200,
  "ResponseMessage": "Success",
  "ResponseData": {
    "Amount": "300",
    "Currency": "USD",
    "Description": "lorem ipsum dummy textlorem ipsum dum",
    "Fee": "0",
    "From": "Merchant Business - Operator",
    "To": "Recipient Display Name",
    "Total": "300"
  }
  …

No beneficiary or payment instrument is required. Ensure the merchant account has sufficient availableBalance before calling Send.

Requires `Authorization: Bearer {SessionToken}` from Get Session Token. Refresh via `x-refresh-token` when supplied; use the same client IP as authentication.

Search guide books, endpoints, paths, or parameters

↑↓navigateopenEscclose