/v2/transfer/send/previewPreview - 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
| Field | Type | Required | Possible values | Description |
|---|---|---|---|---|
Authorization | string | Required | Bearer {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
| Field | Type | Required | Possible values | Description |
|---|---|---|---|---|
Recipient | string | Required | user@example.com | 780008000490 | Recipient 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). |
Purpose | string | Required | Asset_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 | remittance | Regulatory purpose code for the payment. Must be one of the allowed values. |
Amount | string | Required | 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | ... N | Payment amount in USD, as a decimal string greater than 0 (e.g. `300` or `1.00`). |
Description | string | Required | Test API Payment | Short memo or narrative for the transaction (max 150 characters). |
CryptoBuySellActivity | string | Required | Yes | No | Whether the transaction involves buying or selling cryptocurrency: `Yes` or `No`. |
SupportingDocument | string | Optional | {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
| Field | Type | Possible values | Description |
|---|---|---|---|
ResponseCode | integer | 200 | 201 | 204 | 400 | 401 | 403 | 404 | 410 | 422 | 500 | 301 | 503 | 422 | API result code in the response envelope. Indicates success or the error category (e.g. 200 success, 400 bad request, 401 unauthorized). |
ResponseMessage | string | Success | Created | NoContent | BadRequest | Unauthorized | Forbidden | NotFound | Gone | UnprocessableContent | ServerError | ResourceMoved | ServiceUnAvailable | UnProcessableEntity | Human-readable label paired with ResponseCode (e.g. Success, BadRequest, Unauthorized). Use with ResponseCode to interpret the outcome. |
ResponseData | object | Please refer to below example for response body | Transaction 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.