# Payouts

Move your merchant balance to your bank account.

## Create

```bash
curl -s -X POST https://api.fluense.social/payouts \
  -H "x-api-key: $KEY" \
  -H 'content-type: application/json' \
  -d '{"amount_minor":250000,"currency":"USD","country_code":"US"}'
```

```json
{ "instruction_id": "019a…" }
```

Callable with an API key (the org's balance) or a session whose role is **owner, admin or finance**. Live payouts require an approved KYB.

Gates applied before money moves:

- transaction monitoring (velocity, structuring, amount rules),
- payee sanctions screening on the destination account,
- available merchant balance.

Blocked payouts return `403` with a reason (`blocked by monitoring`, `payee screening blocked`, …).

## List

`GET /payouts` (session) returns the org's payout instructions:

```json
{
  "payouts": [
    { "id": "019a…", "provider": "column_us", "amount_minor": 250000, "currency": "USD", "status": "PENDING" }
  ]
}
```

Statuses move from `PENDING` to settled as the banking partner confirms; returned payouts are returned to the wallet.

## Destinations

Register the bank destination before your first payout.

```bash
# IBAN destinations (UK/EU)
curl -s -X POST https://api.fluense.social/bank/payout-iban \
  -H "authorization: Bearer $SESSION" \
  -H 'content-type: application/json' \
  -d '{"iban":"GB33BUKB20201555555555","name":"Acme Goods Ltd","org_id":"'$ORG'"}'

# Registered counterparties
curl -s https://api.fluense.social/bank/counterparties -H "authorization: Bearer $SESSION"
```

`force` + `force_reason` override a name-match mismatch (recorded for compliance); without it a mismatch is rejected with the registered name.
