Você opera duas camadas de conta:

Conta raiz

A sua conta PJ na PrismaPay, à qual a credencial está vinculada. É dela que GET /v1/balance fala.

Contas gerenciadas

As contas PF e PJ que você abriu pela API para os seus clientes. Você só enxerga as suas.
GET /v1/accounts devolve as duas camadas: a sua conta raiz aparece na lista, junto com as contas dos clientes. Ao reconciliar carteira de clientes, ignore a linha cujo accountId é o da conta raiz, a mesma que GET /v1/balance reporta.
Saldo e transação exigem cadastro aprovado. As rotas /accounts/{accountId}/balance e /accounts/{accountId}/transactions/{...} respondem 404 account_not_found enquanto o cadastro não estiver approved, mesmo sendo uma conta sua.GET /v1/accounts/{accountId}/status é a única rota por conta que funciona desde a criação. Use-a para acompanhar o onboarding e só chame saldo depois de approved.
O mesmo 404 account_not_found cobre conta inexistente, conta de outro parceiro, vínculo suspenso, vínculo revogado e cadastro não aprovado. A resposta é idêntica em todos os casos, de propósito, e nenhuma consulta ao provedor é feita.

Listar contas

A query é validada em modo estrito: qualquer parâmetro fora desta tabela devolve 422 invalid_request. Não acrescente parâmetro de rastreamento nem quebra-cache na URL.
Dois status convivem na mesma linha e significam coisas diferentes:
A lista traz apenas vínculos ativos. Contas suspensas, revogadas, bloqueadas ou excluídas não aparecem: elas simplesmente somem do resultado, e o revokedAt volta sempre null. Não trate a ausência de uma conta como erro seu; consulte o accountId diretamente e trate o 404.
accountStatus: "compliance_review" e status: "under_review" em GET /v1/accounts/{accountId}/status podem se referir à mesma conta: a rota de status resume compliance_review como under_review, a listagem não resume. Se você compara os dois valores, normalize compliance_review para under_review do seu lado.
Só uma conta com accountStatus: "approved" movimenta dinheiro e responde às rotas de saldo. Um cadastro em análise ainda não opera. Pagine enquanto hasMore for true, somando limit ao offset.

Consultar saldo

GET /v1/balance responde pela conta raiz. GET /v1/accounts/{accountId}/balance responde por uma conta gerenciada. O formato é o mesmo:
Use available para decidir se uma operação cabe. Ele já está líquido de reservedForFees. Somar os dois superestima o saldo e leva a 422 insufficient_balance.

Consultar status do onboarding

rejectionReason, quando presente, assume um destes valores: kyc_document_invalid, kyc_selfie_mismatch, kyc_fraud_indicators, kyc_age_minor, kyc_restricted_list, kyc_duplicate_account, other.
Consulte o status por evento do seu lado (o cliente terminou o onboarding) ou por polling em intervalo largo, de minutos. Não faça polling em segundos: existe teto de requisições por credencial.

Consultar o status de uma transação

Os status possíveis são completed, pending e failed. A resposta traz apenas o identificador e o status normalizado. Ela não expõe contraparte nem qualquer outro dado pessoal do extrato, mesmo que a transação tenha esses dados.