> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payable.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Recuperação

> Overdue portfolios, the R0…R+180 cadence and the Cobrança and Recuperação fees

# Recuperação

Payable has two services, and every debt is in one of them (`collectionMode` on `GET /debts/{id}`):

| Service | `collectionMode` | What for | Fee |
| - | - | - | - |
| **Cobrança** | `billing` | Debts not yet due and recently overdue, with the D-n…D+n régua | **R\$ 1.90 per paid charge** (never more than what was paid) |
| **Recuperação** | `recovery` | Overdue portfolios: imported, or handed off from Cobrança after N days | **10% of what is recovered** |

> [!NOTE]
>
> The fixed Cobrança fee only applies from the launch date of the new pricing. Before it, the previous rule applies: 10% of every payment attributed to the régua.

In Cobrança, the fixed fee is due when at least one régua message went out before the payment. A manual settlement in Cobrança carries no fee. In Recuperação, the 10% applies to a payment (in full or an agreement installment) made after the debt entered Recuperação and up to 30 days after the last message, through any payment method.

**A debt that enters Recuperação never goes back to Cobrança.**

## Signing up

Recuperação becomes available once an organization admin accepts its terms, in **Recuperação › Contratar** or **Configurações › Recuperação**. The acceptance is recorded with the text version, who accepted and when. If the text changes, the organization has to accept again.

Without the acceptance, the routes that send debts to Recuperação answer `403` with a `code`:

| `code` | Meaning |
| - | - |
| `RECOVERY_UNAVAILABLE` | Recuperação is not available for the account |
| `RECOVERY_TERMS_REQUIRED` | The current version of the terms has not been accepted |

## Importing an overdue portfolio

In **Importar › Carteira vencida**, upload a CSV or spreadsheet with one row per debt. The screen offers a template.

| Column | Required | Notes |
| - | - | - |
| CPF/CNPJ | Yes | With a valid check digit |
| Nome | Yes | Full name or company name |
| Valor original | Yes | Without late fee or interest |
| Vencimento original | Yes | Must be before today. Debts not yet due go in "Cobranças a vencer" |
| Origem | Yes | What the debt is for (e.g. "Mensalidade de março/2025"); shown in messages |
| Celular | No | Without a mobile or an e-mail, the debt has no contact |
| E-mail | No | |
| Multa (%) | No | Contractual late fee. Defaults to 2% |
| Juros (% a.m.) | No | Contractual monthly interest. Defaults to 1% |

A row repeated in the file, or matching a debt already in Recuperação (same document, amount and due date), is rejected.

After the import, Payable **diagnoses** each debt and notifies the organization in the dashboard and by e-mail:

| `recoveryStatus` | Meaning |
| - | - |
| `diagnosing` | Being analysed |
| `active` | In progress: enters the cadence |
| `no_contact` | No valid mobile or e-mail, or contact failed permanently |
| `prescribed` | Overdue for more than 5 years: possibly time-barred, not collected |
| `disputed` | The debtor disputed it; the cadence is paused |
| `closed_no_deal` | The cadence ended without payment or agreement; the debt stays open |
| `voided` | Dispute upheld by the organization: cancelled with no fee |

The `active` debts of an import get R0 from the next day on, at the first open send slot. Debts handed off or sent manually get R0 at the next open send slot.

## Automatic handoff

In **Configurações › Recuperação**, the organization can turn on the automatic handoff and choose N, from 15 to 90 days (default 30). Every day at 7am (Brasília time):

* on day N−1, the organization gets a notice listing the debts that move the next day, also shown in **Recuperação › Passagem**;
* on day N or later, the open debt leaves the Cobrança régua and enters Recuperação.

Debts that are paid, have an active agreement, or were taken out of the handoff ("Não passar para a Recuperação") never move. When the handoff is turned on, only debts that reach N days from then on move; older ones can be sent manually.

A debt can also be sent right away, from its detail page, the bulk action or the API (see below).

## The R0…R+180 cadence

Recuperação days count from the **day the debt entered Recuperação** (R0), not from the due date, so every debt starts with the notice, whether it is 30 days or 3 years overdue. The default cadence:

| Step | Channels | Offer |
| - | - | - |
| R0 | WhatsApp, e-mail | Notice, no discount |
| R+2 | WhatsApp | Reminder, no discount |
| R+5 | AI voice call | Up to the bucket's authority |
| R+7 | WhatsApp, e-mail | Late fee and interest waived + installments |
| R+14 | WhatsApp | Half of the authority |
| R+21 | AI voice call | Up to the bucket's authority |
| R+30 | WhatsApp, e-mail | Formal notice, no discount |
| R+45 | WhatsApp, SMS | Full authority |
| R+60 | WhatsApp, e-mail, voice | Last offer, full authority |
| R+90 | WhatsApp | Campaign |
| R+120 | E-mail, SMS | Campaign |
| R+150 | WhatsApp | Campaign |
| R+180 | WhatsApp, e-mail | Final campaign |

Calls only happen for debts of R\$ 500 or more (editable with the authority). After R+180 without payment or agreement, the debt becomes `closed_no_deal` and stays open.

### Authority by aging bucket

Each step's offer comes from the debt's aging bucket, counted from the original due date. The organization edits the authority in **Configurações › Recuperação**. The default:

| Bucket | Max discount | Installments | Min down payment | Late fee and interest |
| - | - | - | - | - |
| Up to 90 days | 5% | 6x | 0% | Waived |
| 91 to 180 days | 15% | 10x | 15% | Charged |
| 181 to 365 days | 30% | 12x | 10% | Charged |
| Over 365 days | 50% | 12x | 10% | Charged |

When a debt changes bucket mid-cadence, the next offer already uses the new bucket. Collection fees are never added to what the debtor is charged. Above the authority, the agent asks for human approval.

## Send hours and per-debtor limit

The automatic régua only sends text messages (WhatsApp, e-mail, SMS) within these hours, Brasília time:

* Monday to Friday, 9am to 7pm;
* Saturday, 9am to 2pm;
* never on Sundays or national holidays.

And each debtor gets at most **1 contact a day and 3 in 7 days**. WhatsApp and e-mail of the same step count as one contact. A step that would fall outside the hours or over the limit is postponed to the next possible slot, never skipped. The postponement shows in the debt's **Atividade** tab.

Agent replies, messages from an attendant and agreement installment reminders do not count toward the limit: they are a conversation or a commitment the debtor accepted. Installment reminders still only go out within the hours above; one that would fall on a Sunday or holiday goes out on the next open day. This policy also applies to the Cobrança régua.

## Disputes

The debtor can say they do not recognise the debt with the "Não reconheço" button on WhatsApp or on the payment page. The cadence pauses immediately and the organization is notified. In **Recuperação › Contestações**, an admin decides:

* **the debt is owed:** the cadence resumes from the step where it stopped;
* **the debt is not owed:** it is cancelled (`voided`), the debtor is told, and no fee is charged on it.

## Superendividamento

If the debtor tells the WhatsApp or voice agent that they are in a superendividamento (over-indebtedness) process or renegotiating their debts under Lei 14.181/2021, the agent makes no offer and every régua of that client is paused, in Cobrança and in Recuperação alike, including debts created later. The organization gets a notification and an e-mail, the event shows in the debt's Atividade, and the client's `overIndebtednessReportedAt` is filled. After talking to the client, an admin resumes the collection on the client or debt page, or with `POST /clients/{id}/over-indebtedness/clear`; only the réguas paused for this reason resume.

## Dashboard

In **Recuperação**, the organization sees the total open, what was recovered, what is in negotiation, the fee owed and the split by aging bucket, filterable by portfolio and bucket. Each portfolio (an import or a handoff) has its diagnosis and debt list. Admins get a report by e-mail on the 1st of every month.

## Through the API

With an API key that has the `debts:write` scope:

```bash theme={null}
# Send an open debt to Recuperação now
curl -X POST "https://api.payable.run/api/v1/debts/{id}/recovery" \
  -H "Authorization: Bearer esk_live_..."

# Take a debt out of the automatic handoff (sending it manually stays possible)
curl -X POST "https://api.payable.run/api/v1/debts/{id}/recovery/opt-out-handoff" \
  -H "Authorization: Bearer esk_live_..."

# Several at once (up to 100)
curl -X POST "https://api.payable.run/api/v1/debts/bulk" \
  -H "Authorization: Bearer esk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "action": "send_to_recovery", "ids": ["debt_uuid_1", "debt_uuid_2"] }'
```

`POST /debts/{id}/recovery` answers `409 DEBT_NOT_ELIGIBLE_FOR_RECOVERY` when the debt is already in Recuperação, is paid or has an active agreement; the reason is in `errors[0].message`. In the bulk call, each debt carries its own result and the reason it did not move.

`GET /debts/{id}` returns the Recuperação fields:

| Field | Description |
| - | - |
| `collectionMode` | `billing` (Cobrança) or `recovery` (Recuperação) |
| `originalDueDate` | Original due date (`YYYY-MM-DD`); days late count from it |
| `recoveryStartedAt` | When R0 happened, for a debt in Recuperação |
| `recoveryStatus` | Status in Recuperação (see the diagnosis table above) |
| `handoffOptedOut` | `true` when the debt was taken out of the automatic handoff |

To resolve a dispute, `POST /debts/{id}/dispute/resolve` with `{ "valid": true }` (resume) or `{ "valid": false, "note": "..." }` (cancel with no fee). Admins only.

When a fee is recorded, the `success_fee.created` webhook carries `kind`: `billing_fixed` (Cobrança) or `recovery` (Recuperação).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.