# Seqino PDP API

Seqino PDP API - Modern interface to France's e-Invoicing services
# Release Notes

## Latest Changes

## 0.32.0 (2026-09-20)

- 💥 Better duplicate handling: refuse (409) a resubmitted invoice, and reject a received duplicate back to its sender (motif DOUBLON) instead of listing it twice
- 🔨 Answer `mark_as_paid` with the invoice's own identifier, not the path parameter as the caller spelled it
- 🔨 In some cases, empty xml tags would break between-format conversion. This is now fixed.
- 🔨 In some cases, extended formats did not go through the official schematrons. This is now fixed.
- 🔨 In some cases, validating a draft invoice could return a 500 error instead of a 422; this is now fixed

## 0.30.3 (2026-09-07)

- 🔨 Report `SiretNotInDirectory` as error cause instead of `DirectoryLineConflict` when the SIRET is not present in directory

## 0.29.8 (2026-09-03)

- ✨ Approve part of a received invoice on `/accept` (motive + approved/refused amounts); read it back as `partially_accepted`
- ✨ List an invoice's embedded attachments and download each at `/invoices/{invoice_id}/attachments/{attachment_id}`
- ✨ Show every invoice field in the readable part of a Factur-X PDF, with codes spelled out in French

## 0.29.5 (2026-09-01)

- ✨ Submit delivery information on a draft invoice: deliver to party, location, delivery date and address

## 0.29.1 (2026-08-31)

- ✨ Add status `PORTABILITY` for mandates undergoing a PA portability procedure
- ✨ Extend allowance/charge support with optional document-level groups (BG-20/BG-21) and item price discounts (BT-147/BT-148), in both UBL and CII

## 0.29.0 (2026-08-29)

- 🐛 The readable part of a generated Factur-X is now valid PDF/A-3, as the standard requires

## 0.28.2 (2026-08-27)

- ✨ Add `invoice_number` filter to the list invoices endpoint

## 0.28.1 (2026-08-20)

- 💥 Endpoint for generating desktop tokens now responds with status 201 on creation (was 200)

## 0.28.0 (2026-08-20)

- ✨ Report e-reporting data on `/reporting`: exempt invoices, B2C transactions and payments

## 0.27.8 (2026-08-14)

- ✨ Add line-level allowances and charges
- 🔨 Fix positivity restriction on line quantity in JSON API path
- 🔨 Fix endpoint `/directory`: exclude lines that are not owned by any PA

## 0.27.7 (2026-08-13)

- ✨ Accept and report a `payee` and a `seller_tax_representative` on invoices and credit notes
- ✨ Report `vat_accounting_basis` on exempt invoices and B2C aggregates, and accept VAT on debits

## 0.27.5 (2026-08-06)

- 💥 Refuse to send a domestic invoice charging a VAT rate France does not levy
- 💥 File e-reporting per declarant: require its SIREN on every submission and refuse one with no active mandate
- 💥 Correct an e-reporting record in place with `PUT`, keeping its id; refuse re-submitting one already reported
- 🔨 Accept an exempt-invoice number already used in an earlier year, so numbering may restart each January
- 🔨 Fix a reported payment matching another declarant's invoice carrying the same number
- 🔨 Fix an incoming international operation reported as outgoing, and a goods invoice reported as a service one
- 📝 Point consumer sales to `/b2c-transactions` on the exempt-invoice endpoint, which reports B2B only

## 0.27.3 (2026-08-05)

- 💥 Refuse a VAT rate France does not levy on e-reporting data; another member state's rate stays accepted
- 💥 Refuse VAT categories invalid in France instead of reading them as standard-rate; accept export outside the EU
- ✨ Accept `exemption_reason_code` on a VAT breakdown, derive it where the category implies it, require it when exempt
- 💥 Refuse the discount-net-of-VAT exemption code outside a credit note
- 💥 Require `buyer` on an exempt invoice: only B2B international operations are reported there

## 0.27.2 (2026-08-04)

- 🔨 Activate a mandate only from its `start_date`

## 0.27.1 (2026-08-03)

- 🔨 Check every required field when creating a mandate with a routing code, and document them

## 0.27.0 (2026-07-30)

- ✨ Accept `details` when changing an invoice status, and report the last transition in `status_details`
- 💥 Set the periodicity per mandate on `/settings/periodicity/{mandate_id}`, derived from its VAT regime
- ✨ Allow setting `vat_regime` at mandate creation, single and batch

## 0.26.10 (2026-07-29)

- 💥 Correct the Peppol recipient of a routing-code mandate
- 📝 Fix guide "Mandates and Peppol electronic addresses"

## 0.26.8 (2026-07-28)

- 💥 Correct the Peppol recipient of a SIRET mandate

## 0.26.7 (2026-07-27)

- 📝 Document that a mandate's `start_date` may still be modified

## 0.26.6 (2026-07-23)

- ✨ Add a `vat_regime` field to mandates

## 0.26.3 (2026-07-17)

- ✨ Implement endpoint `/clients/{client_id}/desktop_token`

## 0.26.0 (2026-07-20)

- 📝 Update specifications of endpoint `/reporting`

## 0.25.0 (2026-07-06)

- 📝 Document that mandates created without `end_date` never expire
- ✨ Implement endpoint `/clients/onboarding-link/status`
- ✨ Implement endpoint `/directory/{siren}` in production

## 0.24.0 (2026-06-22)

- ✨ Add FR Extended and CreditNote document type entries in Peppol
- 🔨 Fix 500 on mandate deletion

## 0.23.0 (2026-06-15)

- 💥 Model full delivery information (BG-13/BG-15) end-to-end; replace the flat `delivery_location_identifier`, `actual_delivery_date` and `deliver_to_country_code` invoice fields with a nested `delivery` object
- ✨ Add French CIUS (CTC) Schematron validation for UBL and CII invoices
- ✨ Implement credit notes
- 📝 Deprecate field `file_attachment` in mandate endpoint
- ✨ Add setting for KYB delegation in sandbox
- ✨ Send webhook on mandate deletion
- 📝 Improve documentation of the `/health` endpoint
- ✨ Add endpoint `/invoicing/invoices/{invoice_id}/mark_as_cashed` for outbound invoices
- 🔨 Fix `contract_reference`, `project_reference` and `sales_order_reference` not preserved when receiving or sending UBL/CII invoices over Peppol

## 0.22.0 (2026-06-01)

- ♻️  Cleanup existing mandates with invalid directory entries
- ✨ Include Peppol electronic address in directory response
- 🔨 Prevent creation of mandates with both `suffix` and `siret`
- 🔨 Include `client_id` in webhook `invoice.status_updated` data payload
- 📝 Document invoicing webhooks
- ✨ Send webhooks on invoice status update
- 🔨 Fix 500 on `/webhooks/test` when no webhook is configured

## 0.21.0 (2026-05-25)

- 💥 Initialize new mandates with status `PENDING_KYB`
- ✨ Implement endpoint `/clients/onboarding-link`
- ✨ Implement endpoint `/directory/{siren}` in sandbox
- 📝 Document usage of `emit_only` during mandate creation

## 0.20.0 (2026-05-12)

- ✨ Add endpoint `/invoicing/invoices/{invoice_id}/mark_as_paid` and new `paid` invoice status
- 🔥 Remove route `/mandates/directory/{siren}`
- 🔨 Fix documentation of the `/directory/{siren}` endpoint
- ✨ Add support for emission-only mandates
- 🌐 Add Invoicing error taxonomy following RFC 9457-like standard
- 💥 Change response schema of the File validation endpoint
- ✨ Add endpoint `/version` to fetch current api info
- ✨ Show peppol address in mandate details response
- ✨ Add support for EN16931 base quantity (BT-149/BT-150)
- 📝 Include CHANGELOG in API Docs


Version: 0.32.0

## Servers

Dev server
```
https://pdp.seqino.dev/api
```

Production server
```
https://pa.seqino.com/api
```

## Security

### APIKeyHeader

Type: apiKey
In: header
Name: Authorization

## Download OpenAPI description

 - [Seqino PDP API](https://pdp-api-v250704-iron.seqino.dev/_bundle/@l10n/fr-FR/api/@latest/openapi.yaml)

## 👥 Clients

 - [GET /clients](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/get_clients_clients_get.md): Get all clients with their details. Optionally filter by external_ref to find a specific client.
 - [POST /clients](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/create_client_clients_post.md): Create a new client with the provided details. This endpoint allows you to create new PDP client IDs that can be used with other API endpoints. Each client is associated with an external reference for
 - [GET /clients/{client_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/get_client_details_clients__client_id__get.md): Get detailed information about a specific client.
 - [PUT /clients/{client_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/update_client_clients__client_id__put.md): Update client details. This endpoint allows you to update an existing client's information. Only the fields provided in the request will be updated; fields not included will remain unchanged. **Note:*
 - [DELETE /clients/{client_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/delete_client_clients__client_id__delete.md): Delete a client by ID. **Important:** A client can only be deleted if they have no associated mandates. Delete all mandates for this client first before attempting to delete the client.
 - [POST /clients/{client_id}/desktop_token](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/create_desktop_token_clients__client_id__desktop_token_post.md)
 - [POST /clients/onboarding-link](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/generate_onboarding_link_clients_onboarding_link_post.md): Generate a Dotfile KYB onboarding link for a mandate in PENDING_KYB status. If no KYB case exists yet for this mandate, one is created on the fly. If a case already exists, a fresh link is returned fo
 - [GET /clients/onboarding-link/status](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/clients/get_client_onboarding_link_status_clients_onboarding_link_status_get.md)
## 📘 Directory

 - [GET /directory/{siren}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/directory/get_directory_entries_by_siren_directory__siren__get.md): Get all directory/routing entries for a given SIREN. Returns routing information for a company, including establishment details and routing configurations for electronic invoicing.
## 📝 Drafts

 - [POST /drafts](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/drafts/create_draft_drafts_post.md): Create a new invoice draft from EN16931-compatible JSON data. This endpoint allows you to create a draft invoice that can be validated and refined before final submission. Drafts support partial data
 - [GET /drafts/{draft_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/drafts/get_draft_drafts__draft_id__get.md): Get the details of a specific draft invoice. Returns the complete draft data including all fields and their current values. This is useful for retrieving draft state before making updates.
 - [PUT /drafts/{draft_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/drafts/update_draft_drafts__draft_id__put.md): Update an existing draft invoice. Completely replaces the draft content with the provided data. The draft will be re-validated after the update.
 - [DELETE /drafts/{draft_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/drafts/delete_draft_drafts__draft_id__delete.md): Delete a draft invoice. Permanently removes the draft from the system. This action cannot be undone. Once deleted, the draft_id becomes invalid and cannot be reused.
 - [POST /drafts/{draft_id}/validate](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/drafts/validate_draft_drafts__draft_id__validate_post.md): Validate a draft, finalize it with the provided invoice number, and submit it. Generates XML in the requested format and submits the invoice for processing. The draft record is promoted in-place (sam
 - [POST /drafts/validate-data](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/drafts/validate_invoice_data_drafts_validate_data_post.md): Validate invoice data against EN16931 requirements without creating a draft. Returns detailed validation results with specific error messages and suggestions. This endpoint helps identify issues befo
## 🧾 Invoicing

 - [GET /invoicing/invoice_data/{invoice_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/get_invoice_data_invoicing_invoice_data__invoice_id__get.md): Get the complete EN16931-compliant invoice data by ID.
 - [GET /invoicing/invoices/{invoice_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/get_invoice_download_links_invoicing_invoices__invoice_id__get.md): Get an invoice's current status, its status details, and file download links. Returns the invoice's lifecycle status and status details, plus download URLs for the requested format(s). If no format is
 - [GET /invoicing/invoices/{invoice_id}/ubl](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/download_invoice_as_ubl_invoicing_invoices__invoice_id__ubl_get.md): Download as UBL 2.1 XML (Peppol BIS 3.0). Returns original file if submitted as UBL.
 - [GET /invoicing/invoices/{invoice_id}/cii](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/download_invoice_as_cii_invoicing_invoices__invoice_id__cii_get.md): Download as CII XML (EN16931). Returns original file if submitted as CII.
 - [GET /invoicing/invoices/{invoice_id}/facturx](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/download_invoice_as_facturx_invoicing_invoices__invoice_id__facturx_get.md): Download as FacturX PDF (EN16931 CII embedded). Returns original file if submitted as FacturX.
 - [GET /invoicing/invoices/{invoice_id}/attachments/{attachment_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/download_invoice_attachment_invoicing_invoices__invoice_id__attachments__attachment_id__get.md): Download one supporting document (BG-24) embedded in the submitted invoice. The available attachments and their positions are listed in the `attachments` field of `GET /invoices/{invoice_id}`.
 - [GET /invoicing/invoices](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/list_invoices_invoicing_invoices_get.md): List invoices with status, direction, mandate, and time-based filtering options. This endpoint allows you to query invoices using various filters to find invoices that match your criteria.
 - [POST /invoicing/files/submit](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/submit_invoice_file_invoicing_files_submit_post.md): Submit an invoice file for outbound transmission. Invoices addressed to a private buyer are transmitted over the Peppol network; invoices addressed to a public entity (B2G) are transmitted to the publ
 - [POST /invoicing/files/validate](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/validate_invoice_file_invoicing_files_validate_post.md): Validate an invoice file without submitting it for processing. Returns the invoice summary on success. Raises a problem response on any format, XSD, or Schematron error — including the mandatory BR-FR
 - [POST /invoicing/invoices/{invoice_id}/accept](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/accept_invoice_invoicing_invoices__invoice_id__accept_post.md): Accept an inbound invoice, in full or in part. Supplying `details.partial_approval` approves only part of the invoice: it reports the invoice as partially approved, and states the motive and the amoun
 - [POST /invoicing/invoices/{invoice_id}/refuse](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/refuse_invoice_invoicing_invoices__invoice_id__refuse_post.md): Refuse an inbound invoice. The PPF requires a refusal to report a reason code (G7.08) and a comment (G7.25), so an omitted `details.reason_code` defaults to "CONTACT_ACHTR" and an omitted `details.com
 - [POST /invoicing/invoices/{invoice_id}/mark_as_paid](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/mark_invoice_as_paid_invoicing_invoices__invoice_id__mark_as_paid_post.md): Mark an inbound invoice as paid. A payment amount must state its VAT rate (P1.18), unless the invoice charges a single one.
 - [POST /invoicing/invoices/{invoice_id}/mark_as_cashed](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/mark_invoice_as_cashed_invoicing_invoices__invoice_id__mark_as_cashed_post.md): Mark an outbound invoice as cashed (supplier confirms receipt of payment).
 - [POST /invoicing/invoices/{invoice_id}/credit_note](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/create_credit_note_invoicing_invoices__invoice_id__credit_note_post.md): Create a credit note (avoir) cancelling an existing OUTGOING invoice. The credit note is derived from the original invoice document, keeping the same format and profile (Factur-X, UBL, or CII), the sa
 - [POST invoice.created](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/invoice_createdinvoice_created_post.md): Triggered when an invoice is created.
 - [POST invoice.received](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/invoice_receivedinvoice_received_post.md): Triggered when an invoice is received.
 - [POST invoice.status_updated](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/invoicing/invoice_status_updatedinvoice_status_updated_post.md): Triggered when the status of an invoice is updated.
## 🔄 Lifecycle

 - [GET /lifecycle-events](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/lifecycle/get_lifecycle_events_lifecycle_events_get.md): Get lifecycle events with optional filtering. - Without parameters: Returns all lifecycle events for the PDP client - With object_type only: Returns all events for that object type - With both paramet
## 📋 Mandates

 - [GET /mandates](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/get_client_mandates_mandates_get.md): Get all mandates for a client with their directory information. Returns a list of mandates with their associated directory entries, including routing information and establishment details.
 - [POST /mandates](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/create_mandate_mandates_post.md): Create a new mandate with its associated directory entry. This endpoint creates both: 1. A directory entry for routing invoices to the company 2. A mandate granting permission to manage invoices for t
 - [GET /mandates/{mandate_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/get_mandate_details_mandates__mandate_id__get.md): Get detailed information about a specific mandate.
 - [PATCH /mandates/{mandate_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/update_mandate_mandates__mandate_id__patch.md): Update a mandate's end_date. Allows patching the end_date of an existing mandate to extend or shorten its validity period. Set end_date to null to remove the expiry.
 - [DELETE /mandates/{mandate_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/revoke_mandate_mandates__mandate_id__delete.md): Revoke a mandate. This action soft-deletes the mandate, revoking the sponsor's permission to manage invoices for this entity. The associated directory entry remains active but the sponsor can no long
 - [POST /mandates/batch](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/create_mandates_batch_mandates_batch_post.md): Create multiple mandates in a single batch operation. This endpoint allows creating multiple mandates for a client at once, which is useful when onboarding clients with multiple entities or when impor
 - [GET /directory/{siren}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/get_directory_entries_by_siren_directory__siren__get.md): Get all directory/routing entries for a given SIREN. Returns routing information for a company, including establishment details and routing configurations for electronic invoicing.
 - [POST mandate.activated](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/mandate_activatedmandate_activated_post.md): Triggered when a mandate is successfully created and activated.
 - [POST mandate.created](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/mandate_createdmandate_created_post.md): Triggered when a mandate is successfully created but not yet active.
 - [POST mandate.expired](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/mandate_expiredmandate_expired_post.md): Triggered when an active mandate has expired and is no longer active.
 - [POST mandate.failed](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/mandate_failedmandate_failed_post.md): Triggered when a mandate could not be created or activated.
 - [POST mandate.revoked](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/mandates/mandate_revokedmandate_revoked_post.md): Triggered when a mandate is revoked.
## 🚀 Company Onboarding

 - [POST /clients/onboarding-link](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/company-onboarding/generate_onboarding_link_clients_onboarding_link_post.md): Generate a Dotfile KYB onboarding link for a mandate in PENDING_KYB status. If no KYB case exists yet for this mandate, one is created on the fly. If a case already exists, a fresh link is returned fo
 - [GET /clients/onboarding-link/status](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/company-onboarding/get_client_onboarding_link_status_clients_onboarding_link_status_get.md)
## 📊 Reporting

 - [POST /reporting/exempt-invoices](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/submit_exempt_invoice_reporting_exempt_invoices_post.md): Submit an exempt invoice for an international B2Bi transaction (F10 e-reporting, sub-flow 10.1). Rule G6.28 bars B2C on this flux — a consumer sale is never transmitted as an invoice, hence the mandat
 - [GET /reporting/exempt-invoices](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/list_exempt_invoices_reporting_exempt_invoices_get.md): List all exempt invoice records for the authenticated client in a given period.
 - [PUT /reporting/exempt-invoices/{invoice_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/correct_exempt_invoice_reporting_exempt_invoices__invoice_id__put.md): Correct a previously submitted exempt invoice (F10 MO — correctrice). Replaces the record identified by `invoice_id`.
 - [POST /reporting/b2c-transactions](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/submit_b2c_transactions_reporting_b2c_transactions_post.md): Submit aggregated B2C transaction data for a specific date (F10 sub-flow 10.3). The returned `transaction_report_id` can be used with PUT `/b2c-transactions/{transaction_report_id}` to correct the rec
 - [GET /reporting/b2c-transactions](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/list_b2c_transactions_reporting_b2c_transactions_get.md): List all B2C transaction records for the authenticated client in a given period.
 - [PUT /reporting/b2c-transactions/{transaction_report_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/correct_b2c_transactions_reporting_b2c_transactions__transaction_report_id__put.md): Correct a previously submitted B2C transaction record (F10 MO — correctrice). Rewrites the record identified by `transaction_report_id`, which keeps its id.
 - [POST /reporting/payments](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/record_payment_reporting_payments_post.md): Record a payment received by the client. Handles both sub-flow 10.2 (payment for a reported invoice, identified by invoice_number) and 10.4 (B2C payment total, no invoice_number).
 - [GET /reporting/payments](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/get_payments_reporting_payments_get.md): Get all payments for a client in a specific period.
 - [PUT /reporting/payments/{payment_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/reporting/update_payment_reporting_payments__payment_id__put.md): Correct a payment record, which keeps its id.
## ⚙️ Settings

 - [PUT /settings/periodicity/{mandate_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/settings/set_periodicity_settings_settings_periodicity__mandate_id__put.md): Set the VAT regime of a mandate. The VAT regime determines the data transmission periodicity: - `real_normal_monthly`: Régime réel normal mensuel - `real_normal_quarterly`: Régime réel normal trimestr
 - [GET /settings/periodicity/{mandate_id}](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/settings/get_periodicity_settings_settings_periodicity__mandate_id__get.md): Get the periodicity settings of a mandate, derived from its VAT regime.
## 📊 Usage

 - [GET /usage/metrics](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/usage/get_usage_metrics_usage_metrics_get.md): Get detailed usage metrics for a company within a specified period.
 - [GET /usage/summary](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/usage/get_usage_summary_usage_summary_get.md): Get a high-level usage summary for a company.
 - [GET /usage/limits](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/usage/get_usage_limits_usage_limits_get.md): Get usage limits and current usage statistics for a company.
 - [POST /usage/limits](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/usage/set_usage_limit_usage_limits_post.md): Set or update usage limits for a specific company endpoint.
 - [GET /usage/alerts](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/usage/get_usage_alerts_usage_alerts_get.md): Get usage alerts and warnings for a company.
 - [GET /usage/mandates](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/usage/get_mandate_stats_usage_mandates_get.md): Get mandate statistics for a sponsor. Returns the total number of mandates and average number of mandates per client for the sponsor identified by the X-PDP-Sponsor-Id header.
 - [GET /usage/clients](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/usage/get_client_stats_usage_clients_get.md): Get client statistics for a sponsor. Returns the total number of clients for the sponsor identified by the X-PDP-Sponsor-Id header.
## 🔔 Webhooks

 - [GET /webhooks/event-types](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/get_event_types_webhooks_event_types_get.md): Get information about available webhook event types and their payload structures. This endpoint provides documentation on: - All available event types you can subscribe to - Example payload structure
 - [GET /webhooks](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/get_webhook_webhooks_get.md): Get the current webhook configuration for this sponsor. Note: The webhook secret is NOT included in this response for security reasons.
 - [POST /webhooks](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/create_webhook_webhooks_post.md): Create a new webhook for the sponsor. Only one webhook is allowed per sponsor. The secret is returned only on creation. Store it securely - it cannot be retrieved later. The secret is used to genera
 - [DELETE /webhooks](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/delete_webhook_webhooks_delete.md): Delete the webhook configuration for this sponsor.
 - [PATCH /webhooks](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/update_webhook_webhooks_patch.md): Update the webhook configuration for this sponsor. Only the fields provided in the request body will be updated. The webhook secret cannot be changed via this endpoint.
 - [POST /webhooks/test](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/test_webhook_webhooks_test_post.md): Test the webhook connectivity for this sponsor.
 - [POST webhook.test](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/connectivity_testwebhook_test_post.md): Triggered when a webhook connectivity is tested.
 - [POST mandate.activated](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/mandate_activatedmandate_activated_post.md): Triggered when a mandate is successfully created and activated.
 - [POST mandate.created](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/mandate_createdmandate_created_post.md): Triggered when a mandate is successfully created but not yet active.
 - [POST mandate.expired](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/mandate_expiredmandate_expired_post.md): Triggered when an active mandate has expired and is no longer active.
 - [POST mandate.failed](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/mandate_failedmandate_failed_post.md): Triggered when a mandate could not be created or activated.
 - [POST mandate.revoked](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/mandate_revokedmandate_revoked_post.md): Triggered when a mandate is revoked.
 - [POST invoice.created](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/invoice_createdinvoice_created_post.md): Triggered when an invoice is created.
 - [POST invoice.received](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/invoice_receivedinvoice_received_post.md): Triggered when an invoice is received.
 - [POST invoice.status_updated](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/webhooks/invoice_status_updatedinvoice_status_updated_post.md): Triggered when the status of an invoice is updated.
 - [GET /health](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/other/health_check_health_get.md): Health check endpoint.
 - [GET /version](https://pdp-api-v250704-iron.seqino.dev/fr-fr/api/openapi/other/version_info_version_get.md): Version info endpoint.
