Source: https://docs.debitura.com/referral-partners/concepts/responsibility-matrix

# Who does what

What Debitura handles and what you handle, for each integration. The main difference: with the **Starter Integration** you open one link and Debitura handles setup and correction; with the **Full Integration** your platform handles each response itself.

Which emails Debitura sends

**Both integrations:** a welcome email with a set-password link after the client signs the SDCA (if a welcome template is configured), and up to three contract-signing reminders while production cases wait for a signature. See [Branding and hosted pages](https://docs.debitura.com/referral-partners/concepts/white-label-ui.md) for timing and templates.

**Starter only:** one approval invitation to the submitting user when an existing Debitura client must approve the connection.

**Case-start notifications, both integrations:** Debitura emails the client with the collector's identity and each case's recorded fee when collection starts, subject to Case preferences and suppression. See [content and timing](https://docs.debitura.com/referral-partners/integration-guides/starter-integration.md#what-the-client-receives).

Your platform still presents current onboarding, signing, KYC and correction links.

<a id="client-communication"></a>

## Client communication

| Responsibility | Starter | Full |
| --- | --- | --- |
| Get the onboarding link to the client | **You**: open `solutionUrl` | **You**: deliver `onboardingLinks.url` |
| Get the approval link to an existing client | **Debitura** emails it; **you** can also open `solutionUrl` | **You**: deliver the `409` approval URL |
| Get signing, KYC and fix links to the client | **You**: open `solutionUrl` | **You**: deliver `solutionUrl` from `422` responses |
| Case-start confirmation and grouped updates | **Debitura**: existing case-start path; each case keeps its collector/fee | **Debitura**: same path, preferences and suppression |
| Welcome email and signing reminders | **Debitura** (your templates, from a Debitura address) | **Debitura** (your templates, from a Debitura address) |

<a id="client-onboarding"></a>

## Client onboarding

| Responsibility | Starter | Full |
| --- | --- | --- |
| Create or find the client | **Debitura**, from your collection request | **You**: `POST /clients` |
| Host the onboarding and signing pages | **Debitura** | **Debitura** |
| Choose and store `externalTenantId` | **You** | **You** |
| Handle the response | **You**: act on the request `status` | **You**: every `POST /clients` code (201, 202, the `409` variants) |
| Re-present the link if the client abandons | **You**: read the request, open the current `solutionUrl` | **You**: re-present the onboarding URL |
| Apply your logo and primary colour | **Debitura** | **Debitura** |
| Expire approval requests (default 7 days, max 30, set per partner) | **Debitura** | **Debitura** |
| React to an expired approval | **You**: the request shows `expired`; a new request asks again | **You**: on `client.link_expired`, call `POST /clients` again |

<a id="cases-and-collection"></a>

## Cases and collection

| Responsibility | Starter | Full |
| --- | --- | --- |
| Create the case | **Debitura**, when nothing is left for the client to do | **You**: mint a bearer token, `POST /cases` |
| Correct invoice data | **The client**, in a Debitura draft (`needs_fixing`) | **You**: validate before submitting, handle errors |
| Enforce agreements and KYC | **Debitura**: the request waits (`awaiting_signature`, `awaiting_kyc`) | **Debitura**: `422` with `solutionUrl` |
| Continue after the client signs or verifies | **Debitura** continues eligible requests; **you** GET all selected IDs after return and show any remaining action | **You**: retry the case submission |
| Choose `allowPendingContracts` | Not applicable | **You** |
| Route cases to collection partners by jurisdiction | **Debitura** | **Debitura** |
| Recover the debt (contact debtors, legal escalation, payments) | **Collection partner** (not Debitura) | **Collection partner** (not Debitura) |
| Show case status to your users | **You**: per-invoice request results, current GET and case webhooks; `submitted` is not active collection | **You**: webhooks or polling |

<a id="revenue-and-invoicing"></a>

## Revenue and invoicing

The same for both integrations.

| Responsibility | Owner |
| --- | --- |
| Calculate referral fees at each pipeline stage | **Debitura** |
| Lock the USD amount when the collection partner pays platform commission | **Debitura** |
| Call `GET /reporting/transactions` to retrieve fee data (optional; the [Partner Dashboard](https://docs.debitura.com/referral-partners/concepts/partner-dashboard.md) shows the same) | **You** |
| Send a monthly invoice to Debitura for "Ready to Invoice" fees | **You** |
| Pay after receiving the partner's invoice (net 20 business days) | **Debitura** |
| Reconcile invoice amounts against API data | **You** |

**Business context:** see the [Referral program overview](https://support.debitura.com/en/articles/13908998-referral-partners-referral-program-overview-what-you-earn-when-and-what-counts) for commercial terms and fee structure.

<a id="webhooks"></a>

## Webhooks

The same for both integrations.

| Responsibility | Owner |
| --- | --- |
| Fire events on state changes | **Debitura** |
| Retry failed deliveries with exponential backoff (8 attempts: 1 initial + 7 retries) | **Debitura** |
| Disable a subscription after 8 failed attempts, or at once on `410 Gone` | **Debitura** |
| Register and maintain subscriptions | **You** |
| Save the signing secret at creation (shown only once) | **You** |
| Verify the HMAC signature on every event | **You** |
| Respond within 10 seconds, process asynchronously | **You** |
| Deduplicate using `event.id` | **You** |
| Monitor and re-enable disabled subscriptions | **You** |

<a id="common-assumptions-that-are-wrong"></a>

## Common assumptions that are wrong

| Assumption | Reality |
| --- | --- |
| Debitura emails the onboarding link to your client | No, on both integrations. You open or deliver it. |
| Debitura emails the approval link | Starter: yes, one invitation. Full: no, you deliver the `409` approval URL. |
| Debitura's emails replace your signing and KYC handling | No. Reminders go out only while production cases wait for a signature, and nothing is sent for KYC, for an invoice that needs fixing or for a `422`. |
| One shared setup form completes every selected invoice | No. Refresh all request IDs; agreements, KYC, explicit draft submission or rejection can remain per invoice. |
| A `submitted` Starter request means collection has started | No. The case can still be in verification or another early stage. |
| Debitura pays referral fees automatically | No. You invoice Debitura monthly. |
| `allowPendingContracts` bypasses KYC | No. KYC is always a hard `422` block on the Full Integration. |
| Bearer tokens can be refreshed | No. Mint a new one on expiry (30-minute lifetime). |
| Webhook delivery is exactly once or guaranteed for every next-action change | No. Delivery can repeat or publication can be missed. Deduplicate by `event.id` and recover with current GET. |
| Once the SDCA is signed, no more signing is needed | No. New jurisdictions, zones and renewals can require new signatures. |
| You can choose which collection partner handles a case | No. Debitura routes by jurisdiction. |
| A referral rate change reprices all cases for an existing client | No. Each case records its plan and base referral rate at creation; later payments keep that case's rules. New cases use the then-applicable rate. The Integration payout allowance and agreed exceptions apply separately; see [Case referral rates](https://docs.debitura.com/referral-partners/concepts/attribution.md#fee-percentage-snapshot). |
| Debitura performs the debt collection | No. Collection partners (agencies and law firms) do the recovery work. |
