Counterparties
API Reference
>
Counterparties
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: Counterparties
description: Counterparties Controller
paths:
/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}:
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
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
components:
schemas:
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
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
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
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
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
PagedResponseCounterpartyResponse:
properties:
index:
format: int32
type: integer
results:
items:
$ref: '#/components/schemas/CounterpartyResponse'
type: array
size:
format: int32
type: integer
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
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
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
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