Cashouts are outbound transfers from one of your bank accounts at the provider (the origin) to exactly one registered external recipient: either an external bank account record or an external PIX key record. The API creates one cashout resource per attempt; execution and status updates happen asynchronously through providers and events.Documentation Index
Fetch the complete documentation index at: https://docs.rinne.com.br/llms.txt
Use this file to discover all available pages before exploring further.
Affiliation PIX keys (
/pix/keys) are not the same as external PIX key destinations under /pix-keys. The latter exists only for cashout recipients. See Banking and PIX Payments.Origins and destinations
The origin is always identified byorigin_bank_account_id: an account UUID that corresponds to a Bank Account from an Affiliation with available balance. The destination is either destination_bank_account_id or destination_pix_key_id, never both. Register destinations before you create the cashout.
Entity relationships
Operational rules
- One destination type per cashout: use a bank-account ID or a PIX-key ID exclusively.
- Balance: funds must be available on the origin.
- Identifiers:
request_idis required—use it for idempotency and to correlate your orders with ours. - DICT: PIX key destinations are validated with the network; responses may expose masked holder data per BACEN rules.
- PIX key destinations require an active Affiliation as it is required for DICT lookup
External PIX keys
Create a/pix-keys record per recipient key your integration will route cashouts through. Resolution runs against DICT; creation responses include dict_key_information (sometimes masked).
In a company context, use
/v1/companies/me/pix-keys (create, read, update, delete) instead of /v1/merchants/{merchantId}/pix-keys. Full field lists and behavior are documented on those /pix-keys paths in the API reference.External bank accounts
Register recipient settlement details withPOST …/bank-accounts. Accounts used as cashout destinations reuse the same merchant (or company) bank-account resources described in Banking; the difference is how you use the returned id in the cashout payload.
Use digits only for
branch_number and account_number (no dashes or spaces). Full field lists and validation errors are documented on POST /v1/merchants/{merchantId}/bank-accounts (and /v1/companies/me/bank-accounts) in the API reference.Creating a cashout
Each cashoutPOST debits origin_bank_account_id, transfers amount (in cents), and uses method: PIX. Omit one destination field entirely when you use the other.
Bank account destination
PIX key destination
Senddestination_pix_key_id (the id from POST …/pix-keys) instead of destination_bank_account_id.
POST …/cashouts schema in the API reference:
Listing, status, and receipts
You confirm outcomes by polling identifiers and subscribing to webhooks (preferred for production).Receipts are only available for eligible finalized states, may require operational context such as end-to-end IDs, and are documented under
GET /v1/merchants/{merchantId}/cashouts/{id}/receipt (organization: GET /v1/banking/cashouts/{id}/receipt).Lifecycle and returns
Statuses move asynchronously:PENDING, PROCESSING, COMPLETED, FAILED, plus post-settlement reversal states PARTIALLY_RETURNED and RETURNED.
COMPLETED: the outbound leg succeeded from the provider’s perspective.PARTIALLY_RETURNED/RETURNED: subsequent reversal events alter what you reconcile—treat each transition as its own ledger event.
Webhooks
Cashouts finish asynchronously after the API acceptsPOST …/cashouts: the provider executes the PIX leg and may emit returns later. Treat webhooks as the primary signal for lifecycle updates in production (use listing and GET …/cashouts/{id} when you need to backfill or audit).
Rinne sends two banking events for cashouts:
cashout.created: Emitted when the cashout resource is created successfully.cashout.status-changed: Emitted when status changes—covering progress (PENDING,PROCESSING), terminal outcomes (COMPLETED,FAILED), and post-settlement reversals (PARTIALLY_RETURNED,RETURNED).
cashout_id, old_status, new_status, and error_message when a failure occurs). Event envelopes also carry standard metadata such as id, timestamp, company_id, and correlation_id; see the Webhooks guide for the shared shape.
For endpoint setup, Svix signature verification, retries, and handler examples, see Webhooks. Payload field definitions for each event live in the API reference under Webhooks → Events (cashout.created, cashout.status-changed).
Next steps
Cashouts guide
Step-by-step registration, payloads, and organization vs merchant paths
Banking
Balances, statements, affiliation keys, internal transfers
Webhooks
Event-driven lifecycle handling
API reference
Exact request and response schemas for each cashout and destination endpoint

