Skip to main content

Participant Service

Manages participants and participant addresses.


Endpoints


Create Participant

POST /participants

Create a new participant.

Request Body

FieldTypeRequiredDescriptionExample
institutionNamestringYesInstitution name. Must be non-empty."Acme Corp"
routerDataobjectNoOptional router configuration data.{"key": "value"}
authConsumerIdstringYesAPI key for the participant. Must be non-empty."test-api-key"
customersarrayYesList of customers associated with the participant. See CreateCustomerDto.[ ... ]

Example Request:

{
"institutionName": "Acme Corp",
"routerData": { "key": "value", "settings": { "enabled": true } },
"authConsumerId": "test-api-key",
"customers": [
{
"externalId": "customer-external-id",
"status": "active",
"accounts": [
{
"customerId": "eac6de80-8a71-4dc3-abee-240214cea9d5",
"type": "STABLECOINS",
"status": "active",
"name": "Main Account"
}
]
}
]
}

Success Response

Returns the created participant object.

{
"id": "123e4567-e89b-12d3-a456-426614174000",
"institutionName": "Acme Corp",
"authConsumerId": "test-api-key",
"omnibusAccountId": "omnibus-uuid",
"feePayerAccountId": "fee-payer-uuid",
"customers": [
{
"id": "c1d2e3f4-5678-90ab-cdef-1234567890ab",
"externalId": "customer-external-id",
"status": "active",
"accounts": [
{
"customerId": "eac6de80-8a71-4dc3-abee-240214cea9d5",
"type": "STABLECOINS",
"status": "active",
"name": "Main Account"
}
]
}
],
"createdAt": "2025-11-18T12:34:56.789Z",
"updatedAt": "2025-11-18T12:34:56.789Z",
"routerData": { "key": "value", "settings": { "enabled": true } }
}

Error Responses

  • 400 Bad Request: Validation failed (missing or invalid fields)

Get Participant

GET /participants/:id

Retrieve details for a specific participant.

Path Parameters

ParameterTypeRequiredDescription
iduuidYesParticipant unique ID

Success Response

Returns the participant object (see above).

Error Responses

  • 404 Not Found: Participant not found

List Participants

GET /participants

Retrieve a list of participants, with filtering and pagination.

Query Parameters

ParameterTypeDescriptionExample
institutionNamestringFilter by institution name"Acme"
addressstringFilter by blockchain address"38xz..."
blockchainstringFilter by blockchain"solana"
routerDatastringFilter by router data"someKey"
limitnumberNumber of records to return (default: 10)10
offsetnumberNumber of records to skip (default: 0)0

Example Request:

/participants?institutionName=Acme&limit=10&offset=0

Success Response

Returns an array of participant objects.

[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"institutionName": "Acme Corp",
"authConsumerId": "test-api-key",
"customers": [ ... ],
"createdAt": "2025-11-18T12:34:56.789Z",
"updatedAt": "2025-11-18T12:34:56.789Z",
"routerData": { "key": "value" }
}
// ...more participants
]

Update Participant

PATCH /participants/:id

Update participant information.

Path Parameters

ParameterTypeRequiredDescription
iduuidYesParticipant unique ID

Request Body

FieldTypeRequiredDescriptionExample
institutionNamestringNoInstitution name."Acme Corp"
routerDataobjectNoRouter configuration data.{"key": "value"}
authConsumerIdstringNoAPI key for the participant."test-api-key"
customersarrayNoList of customers associated with the participant. See CreateCustomerDto.[ ... ]

Example Request:

{
"institutionName": "Acme Corp",
"routerData": { "key": "value" }
}

Success Response

Returns the updated participant object.

Error Responses

  • 404 Not Found: Participant not found

Replace Participant

PUT /participants/:id

Replace participant information.

Path Parameters

ParameterTypeRequiredDescription
iduuidYesParticipant unique ID

Request Body

FieldTypeRequiredDescriptionExample
institutionNamestringYesInstitution name."Acme Corp"
routerDataobjectYesRouter configuration data.{"key": "value"}
authConsumerIdstringYesAPI key for the participant."test-api-key"
customersarrayYesList of customers associated with the participant. See CreateCustomerDto.[ ... ]

Example Request:

{
"institutionName": "Acme Corp",
"routerData": { "key": "value" },
"authConsumerId": "test-api-key",
"customers": [ ... ]
}

Success Response

Returns the replaced participant object.

Error Responses

  • 404 Not Found: Participant not found

Delete Participant

DELETE /participants/:id

Delete a participant.

Path Parameters

ParameterTypeRequiredDescription
iduuidYesParticipant unique ID

Success Response

  • 204 No Content: Participant deleted

Error Responses

  • 404 Not Found: Participant not found

Error Format

All error responses follow this format:

{
"error": {
"code": "ERROR_CODE",
"message": "Description of the error",
"details": [
{
"field": "fieldName",
"message": "Field-specific error message"
}
]
}
}

Field Descriptions

FieldTypeDescription
iduuidUnique identifier for the participant
institutionNamestringInstitution name
authConsumerIdstringAPI key for the participant
omnibusAccountIdstringOmnibus account ID (optional)
feePayerAccountIdstringFee payer account ID (optional)
customersarrayList of customers associated with the participant
createdAtstringISO8601 timestamp of participant creation
updatedAtstringISO8601 timestamp of last update
deletedAtstringISO8601 timestamp of deletion (optional)
routerDataobjectRouter configuration data (optional)

For nested customer and account fields, see CreateCustomerDto and CreateAccountDto definitions.