Payments
API Reference
>
Payments
openapi: 3.0.1
info:
title: Victor REST API
version: 2.0.0
servers:
- url: https://api.stage.victorfi.com
description: Victor Staging Environment
- url: https://api.victorfi.com
description: Victor Production Environment
tags:
- name: Payments
description: Payments Controller
paths:
/v2/payments/ach:
post:
description: 'ACH is the main network for the transfer of electronic funds within the US. Using ACH, both credits and
debits are available, but ACH is typically slower than other payment transfer types (Wire, RTP, etc.). For more information
on ACH, cutoff times, and transaction states, see [ACH Payments](https://docs.victorfi.com/docs/ach-payments).
This endpoint allows for the creation of an ACH payment. ACH payments can be scheduled for same-day or next-day.
Please refer to the [Amending Company Name](https://docs.victorfi.com/docs/amending-company-name) page for more information
regarding the company_id and company_name fields.
'
operationId: createAchPayment
parameters:
- in: header
name: Idempotency-Key
schema:
type: string
example: 1145f601-b8b0-4de7-9210-4ccb74a68ef5
description: A client provided unique value used by the server to identify subsequent retries of the same request.
maxLength: 128
required: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewAchPaymentRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionReceipt'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid payment request.
summary: Create ACH Payment
tags:
- Payments
/v2/payments/ach/{victorTransactionId}:
get:
description: 'ACH is the main network for the transfer of electronic funds within the US. Using ACH, both credits and
debits are available, but ACH is typically slower than other payment transfer types (Wire, RTP, etc.). For more information
on ACH, cutoff times, and transaction states, see [ACH Payments](https://docs.victorfi.com/docs/ach-payments).
This endpoint provides the ability to retrieve a specific ACH payment that has been submitted to Victor. The returned
payment provides information on the payment itself, including origin and destination accounts, transaction type, amount,
and status.
'
operationId: getAchPayment
parameters:
- description: The reference of the payment transaction.
in: path
name: victorTransactionId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AchPaymentDetails'
description: Request succeeded.
'404':
description: Payment not found.
summary: Get ACH Payment
tags:
- Payments
put:
description: 'ACH is the main network for the transfer of electronic funds within the US. Using ACH, both credits and
debits are available, but ACH is typically slower than other payment transfer types (Wire, RTP, etc.). For more information
on ACH, cutoff times, and transaction states, see [ACH Payments](https://docs.victorfi.com/docs/ach-payments).
This endpoint provides the ability to update an ACH transaction that has been submitted to Victor. Only transactions
that are in a `Pending` state may be updated.
'
operationId: updateAchPayment
parameters:
- description: The reference of the payment transaction.
in: path
name: victorTransactionId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AchPaymentUpdateRequest'
required: true
responses:
'200':
content:
'*/*':
schema:
$ref: '#/components/schemas/TransactionReceipt'
description: Request succeeded.
'400':
content:
'*/*':
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid update request.
'404':
description: Payment not found.
summary: Update ACH
tags:
- Payments
/v2/payments/instant-payment/send-payment:
post:
description: "The Real-Time Payments (RTP) network from The Clearing House and the FedNow network from the Federal Reserve\
\ are real-time payments platforms that all federally insured US depository institutions are eligible to use. These\
\ payments are real-time, immediately available to the recipient (including weekends, holidays, and during non-bank\
\ hours), and settlement finality.\n \nThis endpoint provides the ability to submit a request to make a Real-Time\
\ Payment on the RTP or FedNow Networks using Victor. Please note that not all institutions are currently participating\
\ on the RTP or FedNow Networks. You can verify bank eligibility prior to submitting the request using the endpoint\
\ documented at [Instant Payment Service Eligibility](https://docs.victorfi.com/reference/instantpaymentbankeligibility).\n"
operationId: createInstantPaymentSendRequest
parameters:
- in: header
name: Idempotency-Key
schema:
type: string
example: 1145f601-b8b0-4de7-9210-4ccb74a68ef5
description: A client provided unique value used by the server to identify subsequent retries of the same request.
maxLength: 128
required: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewRtpSendPaymentRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NewRtpSendPaymentResponse'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Invalid payment request.
summary: Create Instant Payment
tags:
- Payments
/v2/payments/rtp/refund-request:
post:
deprecated: true
description: 'The Real-Time Payments (RTP) network from The Clearing House is a real-time payments platform that all
federally insured US depository institutions are eligible to use. RTP payments are real-time, immediately available
to the recipient (including weekends, holidays, and during non-bank hours), and settlement finality.
This endpoint allows for the creation of a refund request on the RTP Network using Victor. Real-Time Payments are
final and refunds must be specifically requested and approved rather than withdrawn or returned. Please note that
not all institutions are currently participating on the RTP Network. You can verify bank eligibility prior to submitting
the request using the endpoint documented at [RTP Service Eligibility](https://docs.victorfi.com/reference/rtpbankeligibility).
'
operationId: createRefundRequest
parameters:
- in: header
name: Idempotency-Key
schema:
type: string
example: 1145f601-b8b0-4de7-9210-4ccb74a68ef5
description: A client provided unique value used by the server to identify subsequent retries of the same request.
maxLength: 128
required: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewRtpRefundRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NewRtpRefundResponse'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Invalid payment request.
summary: '[Beta] Create RTP Refund Request'
tags:
- Payments
/v2/payments/rtp/send-payment:
post:
deprecated: true
description: 'The Real-Time Payments (RTP) network from The Clearing House is a real-time payments platform that all
federally insured US depository institutions are eligible to use. RTP payments are real-time, immediately available
to the recipient (including weekends, holidays, and during non-bank hours), and are irrevocable..
This endpoint provides the ability to submit a request to make a Real-Time Payment on the RTP Network using Victor. Please
note that not all institutions are currently participating on the RTP Network. You can verify bank eligibility prior
to submitting the request using the endpoint documented at [RTP Service Eligibility](https://docs.victorfi.com/reference/rtpbankeligibility).
'
operationId: createRtpSendRequest
parameters:
- in: header
name: Idempotency-Key
schema:
type: string
example: 1145f601-b8b0-4de7-9210-4ccb74a68ef5
description: A client provided unique value used by the server to identify subsequent retries of the same request.
maxLength: 128
required: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewRtpSendPaymentRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NewRtpSendPaymentResponse'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Invalid payment request.
summary: Create Real-Time Payment (RTP)
tags:
- Payments
/v2/payments/wire:
post:
description: 'Wires are electronic transfers that occur between accounts at different financial institutions. Wire
payments are must faster than ACH payments, but also more expensive. Wires are usually executed within minutes and
the funds are available to the recipient within hours. For more information on Wires, cutoff times, and transaction
states, see [Wire Transfers](https://docs.victorfi.com/docs/wire-transfers).
This endpoint allows for the submission of a Wire transfer using Victor.
'
operationId: createWirePayment
parameters:
- in: header
name: Idempotency-Key
schema:
type: string
example: 1145f601-b8b0-4de7-9210-4ccb74a68ef5
description: A client provided unique value used by the server to identify subsequent retries of the same request.
maxLength: 128
required: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewWirePaymentRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionReceipt'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid payment request.
summary: Create Wire Payment
tags:
- Payments
/v2/payments/wire/return/{victorTransactionId}:
post:
description: "Return an inbound wire payment.\n \nNote: When returning an inbound wire to a virtual account\
\ if the virtual account has insufficient balance for the return funds will be drawn from the primary account from\
\ the ledger automatically to process the return. \n"
operationId: returnWirePayment
parameters:
- in: header
name: Idempotency-Key
schema:
type: string
example: 1145f601-b8b0-4de7-9210-4ccb74a68ef5
description: A client provided unique value used by the server to identify subsequent retries of the same request.
maxLength: 128
required: false
- description: The reference of the payment transaction.
in: path
name: victorTransactionId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WireReturnRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionReceipt'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid return payment request.
summary: Return Wire Payment
tags:
- Payments
/v2/payments/wire/{victorTransactionId}:
get:
description: 'Wires are electronic transfers that occur between accounts at different financial institutions. Wire
payments are must faster than ACH payments, but also more expensive. Wires are usually executed within minutes and
the funds are available to the recipient within hours. For more information on Wires, cutoff times, and transaction
states, see [Wire Transfers](https://docs.victorfi.com/docs/wire-transfers).
This endpoint provides the ability to request a specific Wire that has been submitted to Victor. The returned payment
provides information on the payment itself, including origin and destination accounts, amount, and status.
'
operationId: getWirePayment
parameters:
- description: The reference of the payment transaction.
in: path
name: victorTransactionId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WirePaymentDetails'
description: Request succeeded.
'404':
description: Payment not found.
summary: Get Wire Payment
tags:
- Payments
components:
schemas:
AchPaymentDetails:
properties:
amount:
type: string
client_reference_id:
type: string
created_at:
format: int64
type: integer
description:
type: string
fed_trace_id:
type: string
from_account_number:
type: string
from_name:
type: string
sec_code:
enum:
- ccd
- ppd
- web
type: string
description: '- ccd - Cash Concentration and Disbursement
- ppd - Prearranged Payment and Deposit
- web - Internet-Initiated Entry
'
status:
enum:
- CANCELLED
- DECLINED
- FAILED
- ONHOLD
- PENDING
- PENDING_APPROVAL
- PROCESSING
- SENT
- SUCCESS
type: string
to_account_number:
type: string
to_name:
type: string
updated_at:
format: int64
type: integer
victor_trace_id:
type: string
victor_transaction_id:
type: string
parent_reference_id:
type: string
return_reference_id:
type: string
type: object
AchPaymentUpdateRequest:
properties:
action:
enum:
- cancel
- update
type: string
modified_amount:
minLength: 0
type: string
required:
- action
- modified_amount
type: object
ApiError:
description: The error information for a failed request
properties:
code:
type: integer
example: 101
message:
type: string
example: error.amount.invalid
field:
type: string
example: paymentDetails.amount
ApiErrorResponse:
description: A response to a failed request
properties:
status:
type: integer
example: 0
data:
type: object
example: null
error:
$ref: '#/components/schemas/ApiError'
ConfigurationProperty:
properties:
name:
$ref: '#/components/schemas/ConfigurationPropertyName'
origin:
$ref: '#/components/schemas/Origin'
value:
type: object
type: object
ConfigurationPropertyName:
properties:
empty:
type: boolean
lastElementIndexed:
type: boolean
numberOfElements:
format: int32
type: integer
parent:
$ref: '#/components/schemas/ConfigurationPropertyName'
type: object
NewAchPaymentRequest:
description: Details of a new ACH payment.
properties:
amount:
minLength: 0
pattern: \d+(\.\d{1,2})?
type: string
company_name:
maxLength: 16
minLength: 0
type: string
pattern: ^((?![\\.\\,])[ -~])*$ ASCII characters 32 to 126 excluding period (.) and comma (,)
description: Optional company name to pass in to override for ACH origination.
company_id:
maxLength: 10
minLength: 0
pattern: ^[0-9]{0,10}$
type: string
description: Optional company name to pass in to override the ACH originating company.
client_reference_id:
maxLength: 128
minLength: 0
type: string
counterparty_reference:
maxLength: 16
minLength: 0
type: string
description:
maxLength: 100
minLength: 0
type: string
direction:
enum:
- credit
- debit
- prenote_credit
- prenote_debit
type: string
originating_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
schedule:
enum:
- same-day
- next-day
type: string
sec_code:
enum:
- ccd
- ppd
- web
type: string
description: '- ccd - Cash Concentration and Disbursement
- ppd - Prearranged Payment and Deposit
- web - Internet-Initiated Entry
'
company_entry_description:
maxLength: 10
minLength: 0
pattern: ^((?![\\.\\,])[ -~])*$ ASCII characters 32 to 126 excluding period (.) and comma (,)
type: string
description: A description of the purpose of the payment.
required:
- amount
- counterparty_reference
- direction
- originating_account_number
- sec_code
- schedule
type: object
NewRtpRefundRequest:
description: Details of new RTP refund request.
required:
- victor_transaction_id
- reason_code
properties:
victor_transaction_id:
description: The Victor transaction ID associated with the transaction.
type: string
example: a7ffd43c37c1
client_reference_id:
maxLength: 128
minLength: 0
type: string
example: a1b2c3d4567890
reason_code:
description: Must be one of the following reason codes AC03, AM09, CUST, DS24, DUPL, FRAD, FRTR, TECH, UPAY
enum:
- AC03
- AM09
- CUST
- DS24
- DUPL
- FRAD
- FRTR
- TECH
- UPAY
type: string
example: FRAD
notes:
description: Notes associated with the payment.
type: string
maxLength: 150
example: Customer reported fraudulent transaction.
type: object
NewRtpRefundResponse:
description: Details of new RTP refund response.
required:
- status
allOf:
- $ref: '#/components/schemas/NewRtpRefundRequest'
properties:
status:
description: Either “Pending” or “Error”. Pending confirms the successful submission to the RTP network.
type: string
example: Pending
type: object
NewRtpSendPaymentRequest:
description: Details of new RTP send payment request.
properties:
payee:
$ref: '#/components/schemas/RtpSendPayeeDetails'
payer:
$ref: '#/components/schemas/RtpSendPayerDetails'
payment_details:
$ref: '#/components/schemas/RtpSendPaymentDetails'
client_reference_id:
maxLength: 128
minLength: 0
type: string
example: a1b2c3d4567890
required:
- payee
- payer
- payment_details
type: object
NewRtpSendPaymentResponse:
description: Response details of new RTP send payment request.
properties:
victor_transaction_id:
description: Unique ID to reference the transaction.
type: string
example: a7ffd43c37c1
client_reference_id:
type: string
example: a1b2c3d4567890
status:
description: created
type: string
example: Created
rtp_credit_payment:
$ref: '#/components/schemas/RtpSendResponseCreditPaymentDetails'
type: object
NewWirePaymentRequest:
description: Details of a new WIRE payment.
properties:
amount:
minLength: 0
pattern: \d+(\.\d{1,2})?
type: string
client_reference_id:
maxLength: 128
minLength: 0
type: string
counterparty_reference:
maxLength: 16
minLength: 0
type: string
description:
maxLength: 140
minLength: 0
type: string
originating_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
beneficiary_reference:
maxLength: 16
minLength: 0
type: string
required:
- amount
- counterparty_reference
- originating_account_number
type: object
ObjectError:
properties:
arguments:
items:
type: object
type: array
code:
type: string
codes:
items:
type: string
type: array
defaultMessage:
type: string
objectName:
type: string
type: object
Origin:
properties:
parent:
$ref: '#/components/schemas/Origin'
type: object
RtpPaymentDetails:
required:
- amount
properties:
amount:
description: The payment amount.
type: string
minLength: 0
pattern: \d+(\.\d{1,2})?
example: '44.23'
notes:
description: Notes associated with the payment.
type: string
maxLength: 150
example: Notes regarding sample payment.
RtpSendPayeeDetails:
description: Contains the payee details.
required:
- victor_counterparty_id
properties:
victor_counterparty_id:
description: The counterparty reference to the counterparty that contains the payee’s RTP bank information.
type: string
maxLength: 16
minLength: 0
example: aHeq349838
ultimate_creditor:
description: The name of the ultimate creditor. This can only be included if the originator_type is BUSINESS.
type: string
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
maxLength: 100
example: Fake Co.
RtpSendPayerDetails:
required:
- account_number
properties:
account_number:
description: The payer’s account number. Note this must be the Victor customer's account.
minLength: 3
maxLength: 20
pattern: '[0-9]+'
type: string
example: '445477804454'
ultimate_debtor:
description: The name of the ultimate debtor. This can only be included if the originator_type is BUSINESS.
type: string
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
maxLength: 100
example: Billing Co. Inc.
initiating_party:
description: "The initiating party of the payment. This can only be included if the originator_type is BUSINESS."
type: string
maxLength: 140
example: "Initiating Party Inc."
RtpSendPaymentDetails:
description: Contains the payment details.
allOf:
- $ref: '#/components/schemas/RtpPaymentDetails'
required:
- originator_type
properties:
originator_type:
description: Specifies the biller type, must be BUSINESS or CONSUMER.
enum:
- BUSINESS
- CONSUMER
type: string
RtpSendResponseCreditPaymentDetails:
description: Contains the payment details.
properties:
payee:
$ref: '#/components/schemas/RtpSendPayeeDetails'
payer:
$ref: '#/components/schemas/RtpSendResponsePayerDetails'
payment_details:
$ref: '#/components/schemas/RtpSendPaymentDetails'
RtpSendResponsePayerDetails:
description: Contains the payer details.
required:
- account_number
properties:
account_number:
description: The payer’s account number.
minLength: 3
maxLength: 20
pattern: '[0-9]+'
type: string
example: '445477804454'
ultimate_debtor:
description: The name of the ultimate debtor.
type: string
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
maxLength: 100
example: Billing Co. Inc.
TransactionReceipt:
properties:
amount:
type: string
client_reference_id:
type: string
created_at:
format: int64
type: integer
status:
enum:
- CANCELLED
- DECLINED
- FAILED
- ONHOLD
- PENDING
- PENDING_APPROVAL
- PROCESSING
- SENT
- SUCCESS
type: string
type:
enum:
- BOOK_INTERNAL
- BOOK_EXTERNAL
- ACH_TRANSFER
- WIRE_TRANSFER
- IAT_ACH_TRANSFER
- RTP_SEND
- RTP_REFUND
- RTP_INBOUND
type: string
updated_at:
format: int64
type: integer
victor_transaction_id:
type: string
type: object
ValidationErrors:
properties:
allErrors:
items:
$ref: '#/components/schemas/ObjectError'
type: array
boundProperties:
items:
$ref: '#/components/schemas/ConfigurationProperty'
type: array
uniqueItems: true
name:
$ref: '#/components/schemas/ConfigurationPropertyName'
type: object
WirePaymentDetails:
properties:
amount:
type: string
client_reference_id:
type: string
completed_at:
format: int64
type: integer
created_at:
format: int64
type: integer
description:
type: string
from_account_number:
type: string
from_name:
type: string
status:
enum:
- CANCELLED
- DECLINED
- FAILED
- ONHOLD
- PENDING
- PENDING_APPROVAL
- PROCESSING
- SENT
- SUCCESS
type: string
to_account_number:
type: string
to_intermediary_bank_name:
type: string
to_intermediary_bank_routing_number:
type: string
to_name:
type: string
to_routing_number:
type: string
updated_at:
format: int64
type: integer
victor_transaction_id:
type: string
imad:
type: string
omad:
type: string
wire_origin_address:
type: string
wire_origin_address2:
type: string
wire_origin_address3:
type: string
type: object
WireReturnRequest:
description: Details of a Wire Return payment.
properties:
counterparty_reference:
type: string
description: Victor counterparty reference. Either a counterparty reference or a minimum combination of beneficiary_account,
beneficiary_name, beneficiary_street_address1 and receiving_bank_aba is required. If both specified then counterparty
reference takes precedence.
reason:
maxLength: 35
type: string
additional_information:
maxLength: 140
type: string
amount:
pattern: \d+(\.\d{1,2})?
type: string
description: Optional. Defaults to returning the full amount if not specified. Can't exceed the transaction to return
original amount
beneficiary_account:
maxLength: 34
type: string
beneficiary_name:
maxLength: 35
type: string
beneficiary_street_address1:
maxLength: 35
type: string
beneficiary_street_address2:
maxLength: 35
type: string
beneficiary_city:
type: string
description: City, State and Zip length can't exceed 33 characters in total
beneficiary_state:
type: string
beneficiary_zip:
type: string
beneficiary_reference:
maxLength: 35
type: string
receiving_bank_aba:
maxLength: 9
minLength: 9
pattern: '[0-9]+'
type: string
receiving_bank_name:
maxLength: 10
type: string
required:
- counterparty_reference
- reason
type: object
Did this page help you?
Why was this page helpful?
Why wasn't this page helpful?
Thank you for your feedback!
Last updated Tue Mar 3 2026