API Reference
API Reference
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: Accounts
description: Accounts Controller
- name: Account Sweeping
description: Sweep Account Controller
- name: Transactions
description: Transactions Reader
- name: Payments
description: Payments Controller
- name: Book Transfers
description: Transfers Controller
- name: Counterparties
description: Counterparties Controller
- name: Banking
description: Banking Controller
- name: Ledgering
description: Ledgering Controller
- name: Payment Requests
description: Payment Requests Controller
- name: Webhooks
description: Webhooks Controller
- name: Reports
description: Reports Controller
paths:
/v2/accounts:
get:
description: |
The Accounts API allows for the viewing and management of individual accounts (both ledgered and core accounts). Using this API, you can view balances, account information, and re-query the API for transaction information.
This endpoint returns a paged list of accounts belonging to the caller.
operationId: getAccounts
parameters:
- description: The type and page of accounts to return.
in: query
name: getAccountsRequest
required: false
schema:
$ref: '#/components/schemas/GetAccountsRequest'
explode: true
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResponseAccountListItem'
description: Successful response
'400':
description: Invalid filter parameter.
summary: List Accounts
tags:
- Accounts
/v2/accounts/{victorAccountId}:
get:
description: |
The Accounts API allows for the viewing and management of individual accounts (both ledgered and core accounts). Using this endpoint, you can view balances, account information, and re-query the API for transaction information.
This endpoint returns a single account based on the unique Victor account ID passed in as a parameter.
operationId: getAccount
parameters:
- description: Victor ID of the account to be returned.
in: path
name: victorAccountId
required: true
schema:
type: string
- description: Whether to refresh the account balance against external systems to return the most up to date balance. Defaults to false.
in: query
name: refresh_balance
required: false
schema:
type: boolean
default: false
example: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccountDetails'
description: Successful response
'404':
description: Account with given Victor ID not found.
summary: Get Account
tags:
- Accounts
/v2/sweep:
get:
tags:
- Account Sweeping
summary: List Sweep Accounts
description: Returns a list of sweep accounts.
operationId: getAccountSweeps
responses:
'200':
description: Request succeeded.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UpsertSweepResponse'
post:
tags:
- Account Sweeping
summary: Create Sweep Account
description: Create new sweep settings between two accounts
operationId: createSweep
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/CreateSweepRequest'
required: true
responses:
'200':
description: Request succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertSweepResponse'
'400':
description: Invalid create sweep request.
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
'/v2/sweep/{sweepId}':
get:
tags:
- Account Sweeping
summary: Get Sweep Account
description: Returns the details of a sweep account.
operationId: getAccountSweep
parameters:
- name: sweepId
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Request succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertSweepResponse'
'404':
description: Account sweep not found.
put:
tags:
- Account Sweeping
summary: Update Sweep Account
description: Update existing sweep settings between two accounts
operationId: updateSweep
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
- name: sweepId
in: path
description: The id of the sweep account setting to update.
required: true
schema:
type: integer
format: int64
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSweepRequest'
required: true
responses:
'200':
description: Request succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertSweepResponse'
'404':
description: Sweep account not found.
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertSweepResponse'
delete:
tags:
- Account Sweeping
summary: Delete Sweep Account
description: Delete existing sweep settings between two accounts
operationId: deleteSweep
parameters:
- name: sweepId
in: path
description: The identifier of the sweep account setting to delete.
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Request succeeded.
'404':
description: Account sweep not found.
/v2/transactions:
get:
description: |
The Transactions API allows for the viewing of individual transactions across ledgered and core accounts.
This endpoint returns a paged list of transactions for a specific account. The endpoint accepts a transactionsFilter object as a query parameter that allows for the client to specify a date range and transaction type for restricting the query to specific transactions.
operationId: getTransactions
parameters:
- description: Transactions and the page that should be returned.
in: query
name: transactionsFilter
required: false
schema:
$ref: '#/components/schemas/GetPagedTransactionsWithFilter'
explode: true
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResponseTransactionListItem'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid list request.
summary: List Transactions
tags:
- Transactions
/v2/transactions/{reference}:
get:
description: |
The Transactions API allows for the viewing of individual transactions across ledgered and core accounts.
This endpoint returns a single transaction and includes details about the specific transaction.
operationId: getTransactionById
parameters:
- description: The transaction Victor-generated reference or client-generated reference.
in: path
name: reference
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionDetails'
description: Request succeeded.
'404':
description: Transaction not found.
summary: Get Transaction
tags:
- Transactions
/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/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/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.
This 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).
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/payment-requests/request-payment:
post:
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. The FedNow Service is a new instant payment infrastructure developed by the Federal Reserve that allows eligible depository institutions of different sizes across the U.S. to provide instant payment services. These Instant Payments can be made in real time, around the clock, every day of the year, including weekends and holidays.
This endpoint allows for the creation of a Request for Payment (RfP) on the RTP Network or the FedNow Network using Victor. RfPs can be sent to a recipient to approve the release of funds as payment to the entity making the request. Please note that not all institutions are currently participating on the RTP Network or FedNow Network. 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).
operationId: createRequestPayment
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.
minLength: 20
maxLength: 128
required: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewRtpRfpPaymentRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequestReceipt'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Invalid payment request.
summary: "Create Request for Payment (RfP)"
tags:
- Payment Requests
/v2/payment-requests:
get:
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. The FedNow Service is a new instant payment infrastructure developed by the Federal Reserve that allows eligible depository institutions of different sizes across the U.S. to provide instant payment services. These Instant Payments can be made in real time, around the clock, every day of the year, including weekends and holidays.
This endpoint allows for the retrieval of inbound and outbound payment requests (RfP requests).
operationId: listPaymentRequests
parameters:
- description: Payment request and the page that should be returned.
in: query
name: PaymentRequestsFilter
required: false
schema:
$ref: '#/components/schemas/ListPaymentRequests'
explode: true
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListPaymentRequestsResponse'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid list payment requests request.
summary: "List Payment Requests"
tags:
- Payment Requests
/v2/payment-requests/{victor_payment_request_id}:
get:
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. The FedNow Service is a new instant payment infrastructure developed by the Federal Reserve that allows eligible depository institutions of different sizes across the U.S. to provide instant payment services. These Instant Payments can be made in real time, around the clock, every day of the year, including weekends and holidays.
This endpoint allows for the retrieval of an inbound and outbound payment request. Please note the `payment_request_response` object only exists for INBOUND payment requests and the payer details are either account details or a counterparty depending on the direction of the payment request.
operationId: getPaymentRequest
parameters:
- description: The Victor ID of the payment request
in: path
name: victor_payment_request_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetPaymentRequestResponse'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid list payment requests request.
summary: "Get Payment Request"
tags:
- Payment Requests
/v2/payment-requests/respond-to-request/{victor_payment_request_id}:
post:
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. The FedNow Service is a new instant payment infrastructure developed by the Federal Reserve that allows eligible depository institutions of different sizes across the U.S. to provide instant payment services. These Instant Payments can be made in real time, around the clock, every day of the year, including weekends and holidays.
This endpoint is used to provide a response to an inbound payment request. The confirmation can be an acceptance or rejection.
operationId: respondToPaymentRequest
parameters:
- in: path
name: victor_payment_request_id
schema:
type: string
required: true
description: Unique ID to reference the payment request.
example: "b34783af0"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RfpInboundPaymentRequestResponseRequestDetails'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RfpInboundPaymentRequestResponseDetails'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid payment request.
summary: "Respond to Request"
tags:
- Payment Requests
/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/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.
Note: 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.
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
/v2/transfers/book:
post:
description: Creates a new book transfer.
operationId: createBookTransfer
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/CreateBookTransferRequest'
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 transfer request.
summary: Create Book Transfer
tags:
- Book Transfers
/v2/transfers/book/external:
post:
description: Creates a new book external transfer.
operationId: createBookExternalTransfer
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/CreateBookExternalTransferRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionReceiptBookExternal'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid transfer request.
summary: Create Book External Transfer
tags:
- Book Transfers
/v2/counterparties:
get:
description: Returns a page of counterparties.
operationId: getCounterparties
parameters:
- in: query
name: pagedRequest
required: false
schema:
$ref: '#/components/schemas/PagedRequest'
explode: true
style: form
description: If not provided uses platform's defaults.
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResponseCounterpartyResponse'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResponseCounterpartyResponse'
description: Invalid list request.
summary: List Counterparties
tags:
- Counterparties
post:
description: Creates a new counterparty.
operationId: createCounterparty
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewCounterpartyRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CounterpartyResponse'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid counterparty creation request.
summary: Create Counterparty
tags:
- Counterparties
/v2/counterparties/{victorCounterpartyId}:
delete:
description: Deletes a Counterparty.
operationId: deleteCounterparty
parameters:
- description: The Victor ID of the counterparty
in: path
name: victorCounterpartyId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CounterpartyDeletedResponse'
description: Request succeeded.
'404':
description: Counterparty not found.
summary: Delete Counterparty
tags:
- Counterparties
get:
description: Returns the details of a counterparty.
operationId: getCounterparty
parameters:
- in: path
name: victorCounterpartyId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CounterpartyResponse'
description: Request succeeded.
'404':
description: Counterparty not found.
summary: Get Counterparty
tags:
- Counterparties
put:
description: Allows for the update of a counterparty.
operationId: updateCounterparty
parameters:
- description: The Victor ID of the counterparty
in: path
name: victorCounterpartyId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CounterpartyUpdateRequest'
required: true
responses:
'200':
content:
'*/*':
schema:
$ref: '#/components/schemas/CounterpartyResponse'
description: Request succeeded.
'400':
content:
'*/*':
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid update request.
'404':
description: Counterparty not found.
summary: Update Counterparty
tags:
- Counterparties
/v2/banks/routing/{routingNumber}:
get:
description: Checks to see if the passed-in routing number is valid.
operationId: validateRoutingNumber
parameters:
- description: Routing number to check.
in: path
name: routingNumber
required: true
schema:
type: string
- description: The type of the routing number.
in: query
name: type
required: true
schema:
enum:
- ach
- wire
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RoutingNumberValidationResponse'
description: Request succeeded.
'404':
description: Routing number not found.
summary: Validate Routing Number
tags:
- Banking
/v2/banks/rtp-eligibility/{routingNumber}:
get:
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 provides a validation mechanism that accepts a routing number and returns whether or not the financial institution associated with the routing number is currently participating on the RTP Network and if so, what services are available to the institution.
operationId: rtpBankEligibility
parameters:
- name: routingNumber
description: Routing number to check.
in: path
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RtpBankEligibilityResponse'
description: Request succeeded.
'400':
content:
'*/*':
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid request.
'404':
description: Routing number not found.
summary: "RTP Service Eligibility"
tags:
- Banking
/v2/banks/instant-payment-eligibility/{routingNumber}:
get:
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.
This endpoint provides a validation mechanism that accepts a routing number and returns whether or not the financial institution associated with the routing number is currently participating on the RTP / FedNow Networks and if so, what services are available to the institution.
operationId: instantPaymentBankEligibility
parameters:
- name: routingNumber
description: Routing number to check.
in: path
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RtpBankEligibilityResponse'
description: Request succeeded.
'400':
content:
'*/*':
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid request.
'404':
description: Routing number not found.
summary: "Instant Payment Service Eligibility"
tags:
- Banking
/v2/ledgering/account:
post:
description: Create a virtual account for a ledgering program.
operationId: createAccount
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LedgeringAccountCreateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/LedgeringAccountCreateResponse'
description: Account created successfully
summary: Create a virtual account
tags:
- Ledgering
/v2/ledgering/{ledgeringProgramId}/accounts:
get:
description: List accounts that belong to a ledgering program.
operationId: getLedgeringAccounts
parameters:
- in: path
name: ledgeringProgramId
required: true
schema:
format: int64
type: integer
- in: query
name: page
required: true
schema:
$ref: '#/components/schemas/PagedRequest'
explode: true
style: form
description: If not provided uses platform's defaults.
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResponseAccountListItem'
description: List of accounts for the ledgering program
summary: List accounts
tags:
- Ledgering
/v2/webhooks:
get:
description: Returns a page of configured webhooks.
operationId: getWebhooks
parameters:
- description: Page of results to be returned
in: query
name: pagedRequest
required: true
schema:
$ref: '#/components/schemas/PagedRequest'
explode: true
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResponseWebhookConfigurationListItem'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResponseWebhookConfigurationListItem'
description: Invalid list request.
summary: List Webhooks
tags:
- Webhooks
post:
description: Creates a new webhook configuration.
operationId: createWebhook
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewWebhookRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookConfiguration'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid request.
summary: Create Webhook
tags:
- Webhooks
/v2/webhooks/{victorWebhookId}:
delete:
description: Deletes a webhook.
operationId: deleteWebhook
parameters:
- description: ID of the webhook to be deleted.
in: path
name: victorWebhookId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookDeletedResponse'
description: Request succeeded.
'404':
description: Webhook not found.
summary: Delete Webhook
tags:
- Webhooks
get:
description: Returns the configuration of a given webhook.
operationId: getWebhook
parameters:
- in: path
name: victorWebhookId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookConfiguration'
description: Request succeeded.
'404':
description: Webhook not found.
summary: Get Webhook
tags:
- Webhooks
put:
description: Updates a webhook's configuration.
operationId: updateWebhook
parameters:
- in: path
name: victorWebhookId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWebhookRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookConfiguration'
description: Request succeeded.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrors'
description: Invalid update request.
'404':
description: Webhook not found.
summary: Update Webhook
tags:
- Webhooks
/v2/webhooks/deliveries:
get:
tags:
- Webhooks
summary: List Webhook Deliveries
description: Returns a page of webhook deliveries.
operationId: getWebhookDeliveries
parameters:
- name: listWebhookDeliveriesQueryParams
in: query
description: 'Query parameters for additional filtering of Webhook deliveries.'
required: false
schema:
$ref: '#/components/schemas/ListWebhookDeliveriesQueryParams'
explode: true
style: form
responses:
"400":
description: 'Invalid List Webhook Deliveries request.'
"200":
description: 'Returns a list of webhook deliveries.'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhooksPage'
/v2/webhooks/{victorWebhookId}/deliveries:
get:
tags:
- Webhooks
summary: List Deliveries for Specified Webhook Configuration
description: Returns a page of webhook deliveries.
operationId: getDeliveriesForWebhook
parameters:
- description: ID of the webhook configuration to view the deliveries for.
in: path
name: victorWebhookId
required: true
schema:
type: string
- name: listWebhookDeliveriesQueryParams
in: query
description: 'Query parameters for additional filtering of Webhook deliveries.'
required: false
schema:
$ref: '#/components/schemas/ListDeliveriesForWebhookQueryParams'
explode: true
style: form
responses:
"400":
description: 'Invalid List Webhook Deliveries request.'
"200":
description: 'Returns a list of webhook deliveries.'
content:
application/json:
schema:
$ref: '#/components/schemas/WebhooksPage'
/v2/reports/reconciliation:
get:
tags:
- Reports
summary:
Get Daily Reconciliation Report
description:
Fetches a CSV document of a reconciliation report for a specified day
operationId: getReconciliationReport
parameters:
- in: query
name: date
required: true
schema:
type: string
format: date
example: 2022-10-25
description: The date (in ISO 8601 format) for which to fetch the report. Must be before the current date.
pattern: '^\d{4}-\d{2}-\d{2}'
maxLength: 10
responses:
'200':
content:
text/csv: {}
description: A CSV file for the report
'400':
description: Bad Request - invalid date
components:
schemas:
AccountDetails:
properties:
account_name:
type: string
account_number:
type: string
available_balance:
type: string
balance_updated_at:
format: int64
type: integer
created_at:
format: int64
type: integer
currency:
type: string
current_balance:
type: string
program_name:
type: string
status:
type: string
victor_account_id:
type: string
ledgering_program_id:
format: int64
type: integer
type: object
AccountListItem:
properties:
account_name:
type: string
account_number:
type: string
available_balance:
type: number
balance_updated_at:
format: int64
type: integer
created_at:
format: int64
type: integer
current_balance:
type: number
status:
type: string
victor_account_id:
type: string
ledgering_program_id:
format: int64
type: integer
line_original_amount:
type: string
account_type:
type: string
required:
- account_name
- account_number
- available_balance
- balance_updated_at
- created_at
- current_balance
- status
- victor_account_id
- account_type
type: object
AchAccountDetails:
properties:
account_number:
maxLength: 20
minLength: 3
pattern: "[a-zA-Z0-9./()& ']+"
type: string
account_type:
enum:
- CHECKING
- SAVING
- GL
type: string
routing_number:
maxLength: 9
minLength: 9
pattern: '[0-9]+'
type: string
type: object
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
Address:
properties:
street_address1:
maxLength: 100
minLength: 1
type: string
street_address2:
maxLength: 100
minLength: 1
type: string
city:
maxLength: 50
minLength: 3
pattern: ^[A-Za-z.-]+( [A-Za-z.-]+)*$
type: string
state:
maxLength: 2
minLength: 2
pattern: '[A-Z]+'
type: string
zip_code:
maxLength: 10
minLength: 5
pattern: '^(?:[0-9]{5}(?:-[0-9]{4})?|[a-zA-Z0-9]{1,10})$'
type: string
country_code:
maxLength: 3
minLength: 2
pattern: '[A-Z]+'
type: string
description: 'Defaults to US if a valid US state is provided in state field.'
required:
- city
- state
- street_address1
- zip_code
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'
BatchAchPaymentDetails:
properties:
amount:
minLength: 0
pattern: \d+(\.\d{1,2})?
type: string
client_reference_id:
maxLength: 128
minLength: 0
type: string
direction:
enum:
- credit
- debit
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
victor_counterparty_id:
maxLength: 16
minLength: 0
type: string
required:
- amount
- direction
- sec_code
- victor_counterparty_id
type: object
BatchPaymentDetails:
properties:
failed:
items:
additionalProperties:
type: string
type: object
type: array
processing:
items:
type: string
type: array
status:
enum:
- FAILED
- PENDING
- PROCESSING
- SUCCESS
- COMPLETED_WITH_ERRORS
type: string
success:
items:
type: string
type: array
victor_batch_id:
type: string
type: object
BatchPaymentReceipt:
properties:
created_at:
format: int64
type: integer
status:
enum:
- FAILED
- PENDING
- PROCESSING
- SUCCESS
- COMPLETED_WITH_ERRORS
type: string
updated_at:
format: int64
type: integer
victor_batch_id:
type: string
type: object
BatchWirePaymentDetails:
properties:
amount:
minLength: 0
pattern: \d+(\.\d{1,2})?
type: string
client_reference_id:
maxLength: 128
minLength: 0
type: string
victor_counterparty_id:
maxLength: 16
minLength: 0
type: string
required:
- amount
- victor_counterparty_id
type: object
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
CounterpartyDeletedResponse:
properties:
deleted_at:
format: int64
type: integer
victor_counterparty_id:
type: string
type: object
CounterpartyResponse:
properties:
account_name:
type: string
counterparty_ach_info:
$ref: '#/components/schemas/AchAccountDetails'
counterparty_rtp_info:
$ref: '#/components/schemas/RtpAccountDetails'
counterparty_wire_info:
$ref: '#/components/schemas/WireAccountDetails'
created_at:
format: int64
type: integer
description:
type: string
updated_at:
format: int64
type: integer
victor_counterparty_id:
type: string
address:
$ref: '#/components/schemas/Address'
type: object
CounterpartyUpdateRequest:
properties:
counterparty_ach_info:
$ref: '#/components/schemas/AchAccountDetails'
counterparty_rtp_info:
$ref: '#/components/schemas/RtpAccountDetails'
counterparty_wire_info:
$ref: '#/components/schemas/WireAccountDetails'
description:
maxLength: 100
minLength: 0
type: string
name_on_account:
maxLength: 64
minLength: 3
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
type: string
address:
$ref: '#/components/schemas/Address'
description: "Either address or counterparty_wire_info.address_on_account are required when adding wire details. If both are specified, address takes precedence"
type: object
CreateBookTransferRequest:
description: New book transfer request.
properties:
amount:
minLength: 0
pattern: \d+(\.\d{1,2})?
type: string
client_reference_id:
maxLength: 128
minLength: 0
type: string
description:
maxLength: 100
minLength: 0
type: string
destination_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
originating_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
type:
enum:
- internal
- external
type: string
required:
- amount
- destination_account_number
- originating_account_number
- type
type: object
CreateBookExternalTransferRequest:
description: New book external transfer request.
properties:
amount:
minLength: 0
pattern: \d+(\.\d{1,2})?
type: string
client_reference_id:
maxLength: 128
minLength: 0
type: string
description:
maxLength: 100
minLength: 0
type: string
counterparty_reference:
maxLength: 16
minLength: 0
type: string
direction:
enum:
- credit
- debit
type: string
originating_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
required:
- amount
- counterparty_reference
- direction
- originating_account_number
type: object
CreateSweepRequest:
required:
- destination_account_number
- source_account_number
type: object
properties:
source_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
description: Source account number to sweep from
destination_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
description: Destination account number to sweep to
schedule_type:
type: string
description: Account Sweeping Schedule Type. One of Automatic or Scheduled
enum:
- Automatic
- Scheduled
schedule_time:
type: string
description: |-
Schedule time when scheduleType is set to Scheduled. Format is ISO-8601 extended local time format which represents time without offset. Example: 10:15.
Defaults to 6PM if not specified
schedule_timezone:
type: string
description: |-
Schedule time zone when scheduleType is set to Scheduled. Must be a valid time zone, for example America/New_York.
Defaults to America/New_York if not specified
description: Create sweep request.
GetAccountsRequest:
properties:
account_type:
enum:
- all
- core
- ledger
type: string
default: all
page:
format: int32
minimum: 0
type: integer
default: 50
description: Uses 0 based indexing.
page_size:
format: int32
minimum: 1
type: integer
default: 50
type: object
GetPagedTransactionsWithFilter:
properties:
account_numbers:
description: "Account numbers to filter by, as comma-separated values."
example: "3821764659,3821928473,3821563258"
end_datetime:
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
type: string
page:
format: int32
minimum: 0
type: integer
default: 0
description: Uses 0 based indexing.
page_size:
format: int32
minimum: 1
type: integer
default: 50
reference:
type: string
deprecated: true
description: 'Victor Transaction Id to return. Note: this parameter is deprecated, use /v2/transactions/{victorTransactionId}'
start_datetime:
type: string
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
transaction_type:
enum:
- all
- ach
- wire
- book-internal
- book-external
- rtp-send
- rtp-refund
- rtp-inbound
- instant-payment-send
- instant-payment-refund
- instant-payment-inbound
type: string
description: Defines what type of transactions to return. Defaults to all.
date_mode:
enum:
- CREATED
- COMPLETED
type: string
description: Defines the date field to use. Defaults to CREATED.
type: object
GetPaymentRequestResponse:
description: Response details of payment request.
properties:
victor_payment_request_id:
description: "Unique ID to reference the payment request."
type: string
example: "b34783af0"
client_reference_id:
type: string
example: "a1b2c3d4567890"
direction:
description: "Indicates if the request was originated by the caller (OUTBOUND) or an incoming RfP request (INBOUND)"
type: string
example: "INBOUND"
error_message:
description: "Message describing the error/failure reason."
type: string
example: "Routing Number 800000219 is available on the RTP network but is not configured to support receiving a Payment Request at this time. It is not currently signed into the FedNow network."
status:
description: "Either “Pending” or “Error”. Pending confirms the successful submission to the RTP network."
type: string
example: "Pending"
payment_request:
$ref: '#/components/schemas/RfpInboundPaymentRequestDetails'
type: object
LedgeringAccountCreateRequest:
properties:
client_reference_id:
maxLength: 50
minLength: 1
type: string
client_reference_name:
maxLength: 64
minLength: 1
type: string
ledgering_program_id:
format: int64
type: integer
name:
maxLength: 64
minLength: 3
type: string
kyc_reference_id:
maxLength: 50
minLength: 1
type: string
required:
- ledgering_program_id
- name
type: object
LedgeringAccountCreateResponse:
properties:
account_name:
type: string
account_number:
type: string
client_reference_id:
type: string
client_reference_name:
type: string
victor_account_id:
type: string
type: object
ListPaymentRequests:
properties:
page:
format: int32
minimum: 0
type: integer
default: 0
description: Uses 0 based indexing.
page_size:
format: int32
minimum: 1
type: integer
default: 50
victor_id:
description: "The Victor Id of the Payment Request"
example: "LVDOAEFJKH"
type: string
start_datetime:
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
type: string
end_datetime:
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
type: string
status:
type: string
description: The status of the payment request.
enum:
- accepted
- completed
- declined
- expired
- failed
- pending
- processing
- created
- "needs-review"
direction:
enum:
- inbound
- outbound
type: string
description: Indicates if the request was originated by the caller (outbound) or an incoming RfP request (inbound).
due_date_start_date:
description: "ISO 8601 date format."
example: "YYYY-MM-DD"
type: string
due_date_end_date:
description: "ISO 8601 date format."
example: "YYYY-MM-DD"
type: string
approval_start_datetime:
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
type: string
approval_end_datetime:
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
type: string
victor_payment_request_parent_id:
description: "The Victor Id of the parent (outbound) payment request of the given payment request"
example: "1DZOLW34GI"
type: string
victor_payment_request_child_id:
description: "The Victor Id of the child (inbound) payment request of the given payment request"
example: "QNNEVS9JL4"
type: string
network_type:
description: "The instant payments network the payment request was sent through"
type: string
enum:
- FedNow
- RTP
tracking_id:
description: "The Tracking Id"
type: string
example: "202509089R0VR201452208"
instant_payment_rails_id:
description: "The ID on the instant payments network"
type: string
example: "20250908083957044PAIN13161448151"
type: object
ListPaymentRequestsResponse:
description: Response details of list payment requests request.
properties:
page:
default: 0
format: int32
type: integer
page_size:
default: 25
format: int32
type: integer
description: "This property is due to be removed"
results:
items:
$ref: '#/components/schemas/PaymentRequestReceipt'
type: array
type: object
NewAchBatchPaymentRequest:
description: Details of new ACH mass payment.
properties:
description:
maxLength: 100
minLength: 0
type: string
originating_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
payments:
items:
$ref: '#/components/schemas/BatchAchPaymentDetails'
type: array
schedule:
enum:
- same-day
- next-day
type: string
required:
- originating_account_number
- payments
- schedule
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
NewCounterpartyRequest:
properties:
counterparty_ach_info:
$ref: '#/components/schemas/AchAccountDetails'
counterparty_rtp_info:
$ref: '#/components/schemas/RtpAccountDetails'
counterparty_wire_info:
$ref: '#/components/schemas/WireAccountDetails'
description:
maxLength: 200
minLength: 0
type: string
name_on_account:
maxLength: 64
minLength: 3
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
type: string
address:
$ref: '#/components/schemas/Address'
required:
- name_on_account
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
NewRtpRfpPaymentRequest:
description: Details of a new request for payment (RfP).
properties:
payee:
$ref: '#/components/schemas/RfpPayeeRequestDetails'
payer:
$ref: '#/components/schemas/RfpPayerDetails'
payment_details:
$ref: '#/components/schemas/RfpBasePaymentDetails'
client_reference_id:
maxLength: 128
minLength: 0
type: string
example: "a1b2c3d4567890"
required:
- payee
- payer
- payment_details
type: object
PaymentRequestReceipt:
description: Details of a request for payment (RfP).
properties:
victor_payment_request_id:
description: "Unique ID to reference the payment request."
type: string
example: "a7ffd43c37c1"
client_reference_id:
type: string
example: "a1b2c3d4567890"
error_message:
description: "Message describing the error/failure reason."
type: string
example: "Routing Number 800000219 is available on the RTP network but is not configured to support receiving a Payment Request at this time. It is not currently signed into the FedNow network."
direction:
description: "Indicates if the request was originated by the caller (outbound) or an incoming RfP request (inbound)"
type: string
example: "OUTBOUND"
enum:
- inbound
- outbound
status:
description: "The status of the RFP. The \"Create RFP\" endpoint will always return an RFP in the \"created\" status."
type: string
example: "created"
enum:
- created
- accepted
- completed
- declined
- expired
- failed
- pending
- processing
- "needs-review"
payment_network:
description: "The instant payments network the payment request was sent through"
type: string
enum:
- FedNow
- RTP
victor_payment_request_parent_id:
description: "The Victor Id of the parent (outbound) payment request of the given payment request"
example: "1DZOLW34GI"
type: string
victor_payment_request_child_id:
description: "The Victor Id of the child (inbound) payment request of the given payment request"
example: "QNNEVS9JL4"
type: string
payment_request:
$ref: '#/components/schemas/PaymentRequestReceiptInfo'
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
NewWebhookRequest:
properties:
event_filter:
enum:
- payment.ach.inbound
- payment.ach.outbound
- payment.ach.return
- payment.wire.inbound
- payment.wire.outbound
- book.internal
- book.external
- rtp.send.outbound
- rtp.send.inbound
- rtp.refund
- rfp.send.inbound
- rfp.send.outbound
- instant.payment.send
- instant.payment.inbound
type: string
url:
type: string
required:
- url
type: object
NewWireBatchPaymentRequest:
description: Details of new WIRE mass payment.
properties:
description:
maxLength: 100
minLength: 0
type: string
originating_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
payments:
items:
$ref: '#/components/schemas/BatchWirePaymentDetails'
type: array
required:
- originating_account_number
- payments
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
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
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
PagedRequest:
properties:
page:
format: int32
minimum: 0
type: integer
default: 0
description: Uses 0 based indexing.
page_size:
format: int32
minimum: 1
type: integer
type: object
PagedResponseAccountListItem:
properties:
index:
format: int32
type: integer
results:
items:
$ref: '#/components/schemas/AccountListItem'
type: array
size:
format: int32
type: integer
type: object
PagedResponseCounterpartyResponse:
properties:
index:
format: int32
type: integer
results:
items:
$ref: '#/components/schemas/CounterpartyResponse'
type: array
size:
format: int32
type: integer
type: object
PagedResponseTransactionListItem:
properties:
index:
format: int32
type: integer
results:
items:
$ref: '#/components/schemas/TransactionListItem'
type: array
size:
format: int32
type: integer
type: object
PagedResponseWebhookConfigurationListItem:
properties:
index:
format: int32
type: integer
results:
items:
$ref: '#/components/schemas/WebhookConfigurationListItem'
type: array
size:
format: int32
type: integer
type: object
RoutingNumberValidationResponse:
properties:
bank_name:
type: string
routing_number:
type: string
type: object
RtpAccountDetails:
properties:
account_number:
description: "The counterparty's rtp account number."
maxLength: 20
minLength: 3
pattern: "[a-zA-Z0-9./()& ']+"
type: string
routing_number:
description: "The counterparty's routing number."
maxLength: 9
minLength: 9
pattern: '[0-9]+'
type: string
type: object
RtpBankEligibilityResponse:
type: object
properties:
bank_name:
description: "The name of the bank associated with the provided routing number."
type: string
example: "MVB Financial"
routing_number:
description: "The routing number of the bank."
example: "800000051"
rtp:
type: object
properties:
enabled:
description: "Indicates if RTP services are supported."
type: boolean
example: true
services_available:
type: object
properties:
send_payment:
description: "Whether RTP send payments are supported by the bank."
type: boolean
credit_request:
description: "Whether RTP credit requests are supported by the bank. Replaced by send_payment"
type: boolean
example: true
deprecated: true
request_for_payment:
description: "Whether requests for payment are supported by the bank."
type: boolean
example: true
request_refund:
description: "Whether requests for refund are supported by the bank."
type: boolean
example: true
fed_now:
type: object
properties:
enabled:
description: "Indicates if FedNow services are supported."
type: boolean
example: true
services_available:
type: object
properties:
send_payment:
description: "Whether FedNow send payments are supported by the bank."
type: boolean
example: true
request_for_payment:
description: "Whether FedNow for payment are supported by the bank."
type: boolean
example: true
RfpBasePaymentDetails:
type: object
properties:
amount:
description: "The payment amount."
type: string
minLength: 0
pattern: \d+(\.\d{1,2})?
example: "44.23"
biller_type:
description: "Specifies the biller type, must be BUSINESS or CONSUMER."
enum:
- BUSINESS
- CONSUMER
type: string
example: "BUSINESS"
due_date:
description: "Date the payment is due. The system default is 24 hours from transaction submission and values set to further out than that will be rejected by the API. If the payment is not confirmed by the debtor within this timeframe, the RfP request will be canceled by the network."
type: string
example: "2021-10-25"
amount_modification_allowed:
description: "Whether this request for payment supports a change in payment amount by the payer on approval"
type: boolean
example: true
default: false
notes:
description: "Notes associated with the payment."
type: string
maxLength: 150
example: "Notes regarding sample payment."
required:
- amount
- biller_type
- due_date
RfpPayeeRequestDetails:
required:
- account_number
properties:
account_number:
description: "The payee’s account number. Note this must be a Victor account or linked account."
type: string
minLength: 3
maxLength: 20
pattern: '[0-9]+'
example: "043987673645"
ultimate_creditor:
description: "The name of the ultimate creditor. Ultimate creditor can only be set if the biller_type is BUSINESS."
type: string
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
maxLength: 100
example: "SampleCo Billing Inc."
RfpPayerDetails:
required:
- victor_counterparty_id
properties:
victor_counterparty_id:
description: "The counterparty reference to the counterparty that contains the payer’s RTP bank information."
maxLength: 16
minLength: 0
type: string
example: "aHeq349838"
ReceiptPaymentDetails:
allOf:
- $ref: '#/components/schemas/RtpPaymentDetails'
required:
- due_date
- biller_type
properties:
biller_type:
description: "Specifies the biller type, must be BUSINESS or CONSUMER."
enum:
- BUSINESS
- CONSUMER
type: string
example: "BUSINESS"
due_date:
description: "Date the payment is due. The system default is 24 hours from transaction submission and values set to further out than that will be rejected by the API. If the payment is not confirmed by the debtor within this timeframe, the RfP request will be canceled by the network."
type: string
example: "2021-10-25"
amount_modification_allowed:
description: "Whether this request for payment supports a change in payment amount by the payer on approval"
type: boolean
example: true
default: false
original_amount:
description: "The original payment request amount."
type: string
approval_notes:
description: "The notes provided by the receiver of the request when responding."
type: string
RfpPayeeResponseDetails:
properties:
account_number:
description: "The payee’s account number."
type: string
pattern: '[0-9]+'
example: "043987673645"
ultimate_creditor:
description: "The name of the ultimate creditor."
type: string
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
example: "SampleCo Billing Inc."
RfpInboundPaymentRequestDetails:
properties:
payee:
$ref: '#/components/schemas/RfpPayeeResponseDetails'
payer:
properties:
account_number:
description: "The payer’s account number."
type: string
pattern: '[0-9]+'
example: "243884643621"
routing_number:
description: "The payer’s routing number."
type: string
pattern: '[0-9]+'
example: "011401533"
name:
description: "The name of the payer."
type: string
pattern: '^[A-Za-z0-9.]+(?: +[A-Za-z0-9.]+)*$'
example: "Victor Doe"
type: object
payment_details:
$ref: '#/components/schemas/ReceiptPaymentDetails'
payment_request_response:
$ref: '#/components/schemas/RfpInboundPaymentRequestResponseDetails'
RfpInboundPaymentRequestResponseRequestDetails:
properties:
status:
description: "Enum Values: Accepted, Declined"
enum:
- Accepted
- Declined
type: string
modified_amount:
description: "Define the accepted amount on approving the payment request. This property is optional, with the payment defaulting to the original amount of the Payment Request if not provided. A `modified_amount` different from the original `amount` is only allowed if the Payment Request was created with the `amount_modification_allowed` flag enabled."
type: string
minLength: 0
pattern: \d+(\.\d{1,2})?
example: "34.23"
notes:
description: "Notes about payment request response"
type: string
maxLength: 150
minLength: 1
example: "Notes regarding accepted request."
required:
- status
- notes
type: object
RfpInboundPaymentRequestResponseDetails:
description: "Object containing the payment request response for an INBOUND payment request. This is an empty object if a response has not been submitted."
properties:
victor_payment_request_id:
description: "Unique ID to reference the payment request."
type: string
example: "b34783af0"
status:
description: "Enum Values: Accepted, Rejected"
enum:
- Accepted
- Rejected
type: string
original_amount:
description: "The original payment request amount."
type: string
minLength: 0
pattern: \d+(\.\d{1,2})?
example: "44.23"
modified_amount:
description: "If the payment was accepted with a modified amount, the modified amount is shown here."
type: string
minLength: 0
pattern: \d+(\.\d{1,2})?
example: "34.23"
notes:
description: "Notes about payment request response"
type: string
maxLength: 150
example: "Notes regarding accepted request."
type: object
PaymentRequestReceiptInfo:
properties:
payee:
$ref: '#/components/schemas/RfpPayeeResponseDetails'
payer:
$ref: '#/components/schemas/RfpPayerDetails'
payment_details:
$ref: '#/components/schemas/ReceiptPaymentDetails'
approved_at:
type: number
description: "Timestamp of when the payment request was approved."
created_at:
type: number
description: "Timestamp of when the payment request was created."
RtpSendResponseCreditPaymentDetails:
description: "Contains the payment details."
properties:
payee:
$ref: '#/components/schemas/RtpSendPayeeDetails'
payer:
$ref: '#/components/schemas/RtpSendResponsePayerDetails'
payment_details:
$ref: '#/components/schemas/RtpSendPaymentDetails'
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."
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."
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
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."
TransactionDetails:
properties:
victor_transaction_id:
type: string
client_reference_id:
type: string
amount:
type: string
completed_date:
format: int64
type: integer
created_date:
format: int64
type: integer
description:
type: string
error_code:
type: number
error_message:
type: string
fed_trace_id:
type: string
from_account_number:
type: string
imad:
type: string
omad:
type: string
originating_bank_bic:
type: string
originating_bank_name:
type: string
originator_account_number:
type: string
originator_to_beneficiary1:
type: string
originator_to_beneficiary2:
type: string
originator_to_beneficiary3:
type: string
originator_to_beneficiary4:
type: string
parent_client_reference_id:
type: string
parent_reference_id:
type: string
return_reference_id:
type: string
running_balance:
type: string
sending_bank_bic:
type: string
sending_bank_name:
type: string
status:
type: string
to_account_number:
type: string
to_name:
type: string
transaction_category:
type: string
transaction_code_description:
type: string
transaction_type:
type: string
victor_counterparty_id:
type: string
victor_trace_id:
type: string
wire_benf_id:
type: string
wire_init_dt:
format: int64
type: integer
wire_origin_to_benf_info_rec:
type: string
wire_orign_name:
type: string
type: object
TransactionListItem:
properties:
amount:
type: number
account_name:
type: string
client_reference_id:
type: string
completed_at:
type: string
created_at:
type: string
error_code:
type: number
error_message:
type: string
fed_trace_id:
type: string
from_account_number:
type: string
from_name:
type: string
imad:
type: string
ledgering_program_id:
type: number
omad:
type: string
parent_reference_id:
type: string
return_reference_id:
type: string
running_balance:
type: number
status:
type: string
to_account_number:
type: string
to_name:
type: string
transaction_category:
type: string
transaction_code_description:
type: string
transaction_type:
enum:
- BOOK_INTERNAL
- BOOK_EXTERNAL
- ACH_TRANSFER
- WIRE_TRANSFER
- IAT_ACH_TRANSFER
- RTP_SEND
- RTP_REFUND
- RTP_INBOUND
- INSTANT_PAYMENT_SEND
- INSTANT_PAYMENT_REFUND
- INSTANT_PAYMENT_INBOUND
victor_counterparty_id:
type: string
victor_transaction_id:
type: string
victor_trace_id:
type: string
type: object
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
TransactionReceiptBookExternal:
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_EXTERNAL
type: string
updated_at:
format: int64
type: integer
victor_transaction_id:
type: string
type: object
UpdateSweepRequest:
type: object
properties:
destination_account_number:
maxLength: 20
minLength: 3
pattern: '[0-9]+'
type: string
description: Destination account number to sweep to
schedule_type:
type: string
description: Account Sweeping Schedule Type. One of Automatic or Scheduled
enum:
- Automatic
- Scheduled
schedule_time:
type: string
description: |-
Schedule time when scheduleType is set to Scheduled. Format is ISO-8601 extended local time format which represents time without offset. Example: 10:15.
Defaults to 6PM if not specified
schedule_timezone:
type: string
description: |-
Schedule time zone when scheduleType is set to Scheduled. Must be a valid time zone, for example America/New_York.
Defaults to America/New_York if not specified
enabled:
type: boolean
description: Whether to enable or disable this account sweeping configuration
description: Update sweep request.
UpsertSweepResponse:
type: object
properties:
sweep_id:
type: integer
format: int64
source_account_number:
type: string
destination_account_number:
type: string
account_sweep_schedule_type:
type: string
enum:
- AUTOMATIC
- SCHEDULED
schedule_time:
type: string
schedule_timezone:
type: string
enabled:
type: boolean
UpdateWebhookRequest:
properties:
event_filter:
enum:
- payment.ach.inbound,
- payment.ach.outbound,
- payment.ach.return,
- payment.wire.inbound,
- payment.wire.outbound,
- book.internal
- book.external
- rtp.send.outbound
- rtp.send.inbound
- rtp.refund
- rfp.send.inbound
- rfp.send.outbound
- instant.payment.send
- instant.payment.inbound
type: string
json:
type: boolean
url:
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
WebhookConfiguration:
properties:
created_at:
format: int64
type: integer
event_type:
enum:
- payment.ach.inbound,
- payment.ach.outbound,
- payment.ach.return,
- payment.wire.inbound,
- payment.wire.outbound,
- book.internal
- book.external
- rtp.send.outbound
- rtp.send.inbound
- rtp.refund
- rfp.send.inbound
- rfp.send.outbound
type: string
public_key:
type: string
updated_at:
format: int64
type: integer
url:
type: string
victor_webhook_id:
type: string
type: object
WebhookConfigurationListItem:
properties:
created_at:
format: int64
type: integer
created_by:
type: string
created_by_uuid:
type: string
event_type:
enum:
- payment.ach.inbound,
- payment.ach.outbound,
- payment.ach.return,
- payment.wire.inbound,
- payment.wire.outbound,
- book.internal
- book.external
- rtp.send.outbound
- rtp.send.inbound
- rtp.refund
- rfp.send.inbound
- rfp.send.outbound
type: string
updated_at:
format: int64
type: integer
url:
type: string
victor_webhook_id:
type: string
type: object
GetFailedWebhooksRequest:
type: object
properties:
page:
minimum: 0
type: integer
format: int32
page_size:
minimum: 1
type: integer
format: int32
sort_by:
type: string
sort_order:
type: string
start_date:
type: integer
format: int64
end_date:
type: integer
format: int64
FailedWebhookResponse:
type: object
properties:
victor_webhook_id:
type: string
url:
type: string
failed_at:
type: string
error:
type: string
event_type:
type: string
enum:
- payment.ach.inbound,
- payment.ach.outbound,
- payment.ach.return,
- payment.wire.inbound,
- payment.wire.outbound,
- book.internal
- book.external
- rtp.send.outbound
- rtp.send.inbound
- rtp.refund
- rfp.send.inbound
- rfp.send.outbound
attributes:
type: object
additionalProperties:
type: string
PagedResponseFailedWebhookResponse:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/FailedWebhookResponse'
index:
type: integer
format: int32
size:
type: integer
format: int32
GetSentWebhooksRequest:
type: object
properties:
page:
minimum: 0
type: integer
format: int32
page_size:
minimum: 1
type: integer
format: int32
victor_transaction_id:
description: "Unique ID to reference the transaction."
type: string
victor_payment_request_id:
description: "Unique ID to reference the payment request."
type: string
victor_webhook_id:
description: "Unique ID to reference the webhook."
type: string
start_datetime:
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
end_datetime:
description: "ISO 8601 date and time format requiring Zulu timezone."
example: "YYYY-MM-DDThh:mm:ss.sTZD"
event_filter:
description: "The type of event for which the webhook triggers."
enum:
- payment.ach.inbound
- payment.ach.outbound
- payment.ach.return
- payment.wire.inbound
- payment.wire.outbound
- book.internal
- book.external
- rtp.send.outbound
- rtp.send.inbound
- rtp.refund
- rfp.send.inbound
- rfp.send.outbound
- instant.payment.send
- instant.payment.inbound
type: string
status:
description: "The transaction status or the payment request status to filter on. Note that some statuses are
particular to a Transaction while others are particular to a Payment Request."
type: string
enum:
- CANCELLED
- DECLINED
- FAILED
- ONHOLD
- PENDING
- PENDING_APPROVAL
- PROCESSING
- SENT
- SUCCESS
- ACCEPTED
- COMPLETED
- DECLINED
- EXPIRED
webhook_status:
description: "The status of the attempt to send the webhook."
type: string
enum:
- DELIVERED
- RETRYING
- FAILED
SentWebhookResponse:
type: object
properties:
victor_transaction_id:
description: "Unique ID to reference the transaction."
type: string
victor_payment_request_id:
description: "Unique ID to reference the payment request."
type: string
victor_webhook_id:
description: "Unique ID to reference the webhook."
type: string
url:
description: "The URL the webhook was sent to (or attempted)."
type: string
created_at:
description: "The timestamp at which the webhook was created and attempted to send."
type: string
event_filter:
description: "The type of event for which the webhook triggers."
type: string
enum:
- payment.ach.inbound,
- payment.ach.outbound,
- payment.ach.return,
- payment.wire.inbound,
- payment.wire.outbound,
- book.internal
- book.external
- rtp.send.outbound
- rtp.send.inbound
- rtp.refund
- rfp.send.inbound
- rfp.send.outbound
- instant.payment.send
- instant.payment.inbound
status:
description: "The transaction status or the payment request status to filter on. Note that some statuses are
particular to a Transaction while others are particular to a Payment Request."
type: string
enum:
- CANCELLED
- DECLINED
- FAILED
- ONHOLD
- PENDING
- PENDING_APPROVAL
- PROCESSING
- SENT
- SUCCESS
- ACCEPTED
- COMPLETED
- DECLINED
- EXPIRED
webhook_status:
description: "The status of the attempt to send the webhook."
type: string
enum:
- DELIVERED
- RETRYING
- FAILED
data:
description: "The JSON body of the webhook."
type: object
example: "{\"id\":\"3KKG1NNZ9Z\",\"amount\":\"0.01\",\"status\":\"Sent\",\"created_at\":\"1677502377261\",\"client_reference_id\":null,\"account_name\":\"CCC COMPANY\",\"account_number\":\"66600000201\",\"external_account_number\":null,\"description\":null,\"transaction_type\":\"ach_transfer\",\"completed_at\":null,\"error_code\":null,\"error_message\":null,\"company_id\":\"119699525\",\"company_name\":null,\"originator_name\":\"MVB BANK INC\",\"receiver_name\":\"Amazon Inc\",\"effective_entry_date\":\"240723\",\"entry_description\":\"041205259\",\"individual_id\":\"3KKG1NNZ9Z\",\"sec_code\":\"CCD\",\"company_discretionary_data\":\"\",\"originating_aba\":\"122105278\",\"transaction_code\":\"22\",\"receiver_account_number\":\"21262425\",\"victor_trace_id\":\"000000001108596\",\"fed_trace_id\":null}"
PagedResponseSentWebhookResponse:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/SentWebhookResponse'
index:
type: integer
format: int32
size:
type: integer
format: int32
WebhookDeletedResponse:
properties:
deleted_at:
format: int64
type: integer
victor_webhook_id:
type: string
type: object
WireAccountDetails:
properties:
account_number:
maxLength: 20
minLength: 3
pattern: "[a-zA-Z0-9./()& ']+"
type: string
routing_number:
maxLength: 9
minLength: 9
pattern: '[0-9]+'
type: string
address_on_account:
$ref: '#/components/schemas/Address'
description: "Either address or counterparty_wire_info.address_on_account are required when adding wire details. If both are specified, address takes precedence"
bank_address:
$ref: '#/components/schemas/Address'
bank_name:
type: string
intermediary_bank_name:
type: string
intermediary_bank_routing_number:
type: string
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
WebhookType:
type: string
description: 'Defines the type of a webhook notification.'
enum:
- TRANSACTION
- PAYMENT_REQUEST
- NOTICE_OF_CHANGE
- ACH_RETURN_PREVIEW
WebhooksPage:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/WebhookListItem'
last_evaluated_key:
type: string
description: 'Identifier of the last item that was read within the returned page.'
ListWebhookDeliveriesQueryParams:
type: object
properties:
victor_transaction_id:
type: string
start_date:
type: string
format: date-time
example: "2025-01-01T00:00:00.000000001Z"
end_date:
type: string
format: date-time
example: "2025-01-01T00:00:00.000000001Z"
last_evaluated_key:
type: string
description: 'Identifier of the last item that was read within the returned page.'
page_size:
type: integer
default: 50
minimum: 1
ListDeliveriesForWebhookQueryParams:
type: object
properties:
start_date:
type: string
format: date-time
example: "2025-01-01T00:00:00.000000001Z"
end_date:
type: string
format: date-time
example: "2025-01-01T00:00:00.000000001Z"
last_evaluated_key:
type: string
description: 'Identifier of the last item that was read within the returned page.'
page_size:
type: integer
default: 50
minimum: 1
WebhookListItem:
type: object
properties:
reference:
type: string
description: 'Victor Transaction ID'
status:
type: string
description: 'Transaction Status for which the given webhook was sent.'
type:
$ref: '#/components/schemas/WebhookType'
created_at:
type: string
format: date-time
example: "2025-01-01T00:00:00.000000001Z"
content:
type: string
format: json
example: "{\"id\":\"ABCDEFGHIJ\",\"amount\":\"0.01\",\"status\":\"Sent\",\"created_at\":\"1677502377261\",\"client_reference_id\":null,\"account_name\":\"ACME COMPANY\",\"account_number\":\"00000000001\",\"external_account_number\":null,\"description\":null,\"transaction_type\":\"ach_transfer\",\"completed_at\":null,\"error_code\":null,\"error_message\":null,\"company_id\":\"119699525\",\"company_name\":null,\"originator_name\":\"BANK\",\"receiver_name\":\"ACME RECEIVER\",\"effective_entry_date\":\"240723\",\"entry_description\":\"000000000\",\"individual_id\":\"12345ABCD\",\"sec_code\":\"CCD\",\"company_discretionary_data\":\"\",\"originating_aba\":\"111111111\",\"transaction_code\":\"22\",\"receiver_account_number\":\"12345678\",\"victor_trace_id\":\"000000000000001\",\"fed_trace_id\":null}"
url:
type: string
format: uri
description: 'Destination URL where the webhook contents should be delivered.'
delivered:
type: boolean
description: 'Indicates if the delivery was successful.'
Topics in this section
- Accounts
- Account Sweeping
- Transactions
- Payments
- Payment Requests
- Counterparties
- Banking
- Ledgering
- Book Transfers
- Webhooks
- Reports
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