---
title: "List counterparties by user"
method: POST
path: "/counterparty"
tags: ["Counterparty"]
---

# List counterparties by user

`POST /counterparty`

Returns counterparties for the given owner (`userId` or `businessId`) within the authenticated application.

Body `filter` may be `SELF_HOSTED`, `VASP`, or `ALL` (default behavior when omitted is no
type filter — same effect as `ALL`). Pagination: omitted `page` defaults to **1**; omitted
`limit` defaults to **20** server-side.

## Request body

- ListCounterpartiesRequest — Provide exactly one of `userId` or `businessId`.
  - `userId` string, uuid — User whose counterparties to list. Provide exactly one of `userId` or `businessId`.
  - `businessId` string, uuid — Business whose counterparties to list. Provide exactly one of `userId` or `businessId`.
  - `filter` 'SELF_HOSTED' | 'VASP' | 'ALL' — Restrict by counterparty `type`; omit or use `ALL` for no filter.
  - `page` integer — 1-based page index (default **1** when omitted).
  - `limit` integer — Page size (default **20** when omitted).

## Response `200`

success

- CounterpartyListResponse
  - `counterparties` CounterpartyListByUserItem[], required
    - `counterpartyId` string, uuid, required
    - `userId` string, uuid
    - `businessId` string, uuid
    - `identityType` 'CONSUMER' | 'BUSINESS', required
    - `counterpartyAddress` string — Set for on-chain counterparties.
    - `paymentHash` string — Set for Lightning (non-invoice) counterparties.
    - `invoice` string — Set when declared with a bolt11 Lightning invoice.
    - `memo` string — Decoded memo from the bolt11 invoice, when present.
    - `network` string, required
    - `type` 'SELF_HOSTED' | 'VASP', required
    - `subType` 'OWNED' | 'THIRD_PARTY' | 'VASP', required
    - `counterpartyData` object, nullable — IVMS-oriented payload when present. Absent for OWNED without third-party data.
    - `walletVerified` boolean — Present only for on-chain `SELF_HOSTED` + `OWNED` counterparties. `true` when wallet ownership has been verified (`TRWalletVerification.status === VERIFIED`); `false` when unverified. Omitted for Lightning OWNED (wallet verification does not apply), VASP, and THIRD_PARTY.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `total` integer, required — Total matching rows for this user and application (before pagination).
  - `page` integer, required — Current page number (1-based). Defaults to `1` when `page` is omitted from the request body.

## Other responses

- `400` — Bad Request. The request was unacceptable, often due to missing a required parameter.
- `401` — Invalid authentication header
- `500` — Unexpected server error.

---

[API](https://skmtc.net/striga/apis/striga-v1.md) · [All operations](https://skmtc.net/striga/apis/striga-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/striga/striga-v1/versions/63e57aa7df45/schema)
