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.