CorceLinkDocumentation Espace client

Facturation

Vos factures et vos devis : liste, détail ligne par ligne et documents PDF.

Lister les factures

GET/v1/billing/invoices

Permission : billing:read

Paramètres de requête

ChampTypeDescription
statustexteValeurs : unpaid, overdue, paid, cancelled, refunded.
yearentierExemple : 2026.
limitentierNombre d’éléments par page (1 à 100) Par défaut : 20. De 1 à 100.
cursortexteCurseur renvoyé par la page précédente (`next_cursor`)

Réponse 200

ChampTypeDescription
dataliste de objet
data[].idtexteExemple : "inv-1402".
data[].numbertexteExemple : "2026-1402".
data[].statustexteValeurs : unpaid, overdue, paid, cancelled, refunded.
data[].issued_attexte
data[].due_attexte
data[].paid_attexte ou nullDate de création.
data[].subtotalobjetTotal hors taxes.
data[].subtotal.amountentierMontant en centimes. Exemple : 790.
data[].subtotal.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].taxobjetTaxes (0 en franchise de TVA).
data[].tax.amountentierMontant en centimes. Exemple : 790.
data[].tax.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].credit_appliedobjetCrédit du compte appliqué.
data[].credit_applied.amountentierMontant en centimes. Exemple : 790.
data[].credit_applied.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].totalobjet
data[].total.amountentierMontant en centimes. Exemple : 790.
data[].total.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].balanceobjetReste à régler.
data[].balance.amountentierMontant en centimes. Exemple : 790.
data[].balance.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].linesliste de objet
data[].lines[].descriptiontexteExemple : "VPS Start - vps-7c2e4a91.vps.corce.link".
data[].lines[].period_starttexte ou null
data[].lines[].period_endtexte ou null
data[].lines[].quantitynombreQuantité ; entière le plus souvent. Exemple : 1.
data[].lines[].unit_priceobjet
data[].lines[].discountobjetRemise de la ligne (devis).
data[].lines[].amountobjet
data[].pdf_urltexte
has_morebooléen
next_cursortexte ou null

Erreurs

curl "https://api.corcelink.fr/v1/billing/invoices" \
  -H "Authorization: Bearer $CORCELINK_API_KEY"

Réponse 200

{
  "data": [
    {
      "id": "inv-2",
      "number": "2026-1402",
      "status": "unpaid",
      "issued_at": "2026-10-08",
      "due_at": "2026-11-01",
      "paid_at": null,
      "subtotal": {
        "amount": 1190,
        "currency": "EUR"
      },
      "tax": {
        "amount": 0,
        "currency": "EUR"
      },
      "credit_applied": {
        "amount": 0,
        "currency": "EUR"
      },
      "total": {
        "amount": 1190,
        "currency": "EUR"
      },
      "balance": {
        "amount": 690,
        "currency": "EUR"
      },
      "pdf_url": "https://api.corcelink.fr/v1/billing/invoices/inv-2/pdf"
    },
    {
      "id": "inv-1",
      "number": "2026-1398",
      "status": "paid",
      "issued_at": "2026-09-08",
      "due_at": "2026-09-15",
      "paid_at": "2026-09-08T14:22:05Z",
      "subtotal": {
        "amount": 790,
        "currency": "EUR"
      },
      "tax": {
        "amount": 0,
        "currency": "EUR"
      },
      "credit_applied": {
        "amount": 0,
        "currency": "EUR"
      },
      "total": {
        "amount": 790,
        "currency": "EUR"
      },
      "balance": {
        "amount": 0,
        "currency": "EUR"
      },
      "pdf_url": "https://api.corcelink.fr/v1/billing/invoices/inv-1/pdf"
    },
    {
      "id": "inv-3",
      "number": "2026-1371",
      "status": "overdue",
      "issued_at": "2026-08-08",
      "due_at": "2026-08-15",
      "paid_at": null,
      "subtotal": {
        "amount": 790,
        "currency": "EUR"
      },
      "tax": {
        "amount": 0,
        "currency": "EUR"
      },
      "credit_applied": {
        "amount": 0,
        "currency": "EUR"
      },
      "total": {
        "amount": 790,
        "currency": "EUR"
      },
      "balance": {
        "amount": 790,
        "currency": "EUR"
      },
      "pdf_url": "https://api.corcelink.fr/v1/billing/invoices/inv-3/pdf"
    }
  ],
  "has_more": false,
  "next_cursor": null
}
Essayer avec votre clé

Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.

Lire une facture

GET/v1/billing/invoices/{invoice_id}

Permission : billing:read

Paramètres de chemin

ChampTypeDescription
invoice_idobligatoiretexteFormat : ^inv-[0-9]+$. Exemple : "inv-1402".

Réponse 200

ChampTypeDescription
idtexteExemple : "inv-1402".
numbertexteExemple : "2026-1402".
statustexteValeurs : unpaid, overdue, paid, cancelled, refunded.
issued_attexte
due_attexte
paid_attexte ou nullDate de création.
subtotalobjetTotal hors taxes.
subtotal.amountentierMontant en centimes. Exemple : 790.
subtotal.currencytexteDevise ISO 4217. Exemple : "EUR".
taxobjetTaxes (0 en franchise de TVA).
tax.amountentierMontant en centimes. Exemple : 790.
tax.currencytexteDevise ISO 4217. Exemple : "EUR".
credit_appliedobjetCrédit du compte appliqué.
credit_applied.amountentierMontant en centimes. Exemple : 790.
credit_applied.currencytexteDevise ISO 4217. Exemple : "EUR".
totalobjet
total.amountentierMontant en centimes. Exemple : 790.
total.currencytexteDevise ISO 4217. Exemple : "EUR".
balanceobjetReste à régler.
balance.amountentierMontant en centimes. Exemple : 790.
balance.currencytexteDevise ISO 4217. Exemple : "EUR".
linesliste de objet
lines[].descriptiontexteExemple : "VPS Start - vps-7c2e4a91.vps.corce.link".
lines[].period_starttexte ou null
lines[].period_endtexte ou null
lines[].quantitynombreQuantité ; entière le plus souvent. Exemple : 1.
lines[].unit_priceobjet
lines[].unit_price.amountentierMontant en centimes. Exemple : 790.
lines[].unit_price.currencytexteDevise ISO 4217. Exemple : "EUR".
lines[].discountobjetRemise de la ligne (devis).
lines[].discount.amountentierMontant en centimes. Exemple : 790.
lines[].discount.currencytexteDevise ISO 4217. Exemple : "EUR".
lines[].amountobjet
lines[].amount.amountentierMontant en centimes. Exemple : 790.
lines[].amount.currencytexteDevise ISO 4217. Exemple : "EUR".
pdf_urltexte

Erreurs

curl "https://api.corcelink.fr/v1/billing/invoices/inv-1402" \
  -H "Authorization: Bearer $CORCELINK_API_KEY"

Réponse 200

{
  "id": "inv-2",
  "number": "2026-1402",
  "status": "unpaid",
  "issued_at": "2026-10-08",
  "due_at": "2026-11-01",
  "paid_at": null,
  "subtotal": {
    "amount": 1190,
    "currency": "EUR"
  },
  "tax": {
    "amount": 0,
    "currency": "EUR"
  },
  "credit_applied": {
    "amount": 0,
    "currency": "EUR"
  },
  "total": {
    "amount": 1190,
    "currency": "EUR"
  },
  "balance": {
    "amount": 690,
    "currency": "EUR"
  },
  "pdf_url": "https://api.corcelink.fr/v1/billing/invoices/inv-2/pdf",
  "lines": [
    {
      "description": "VPS Start (vps-7c2e4a91.vps.corce.link)",
      "period_start": "2026-10-08",
      "period_end": "2026-11-07",
      "quantity": 1,
      "unit_price": {
        "amount": 790,
        "currency": "EUR"
      },
      "amount": {
        "amount": 790,
        "currency": "EUR"
      }
    },
    {
      "description": "Réseau privé (production, Plage 10.20.1.0/24)",
      "period_start": "2026-10-08",
      "period_end": "2026-11-07",
      "quantity": 1,
      "unit_price": {
        "amount": 400,
        "currency": "EUR"
      },
      "amount": {
        "amount": 400,
        "currency": "EUR"
      }
    }
  ]
}
Essayer avec votre clé

Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.

Télécharger une facture

GET/v1/billing/invoices/{invoice_id}/pdf

Permission : billing:read

Paramètres de chemin

ChampTypeDescription
invoice_idobligatoiretexteFormat : ^inv-[0-9]+$. Exemple : "inv-1402".

Réponse 200

Le document PDF.

Erreurs

curl "https://api.corcelink.fr/v1/billing/invoices/inv-1402/pdf" \
  -H "Authorization: Bearer $CORCELINK_API_KEY" \
  -o facture.pdf

Lister les devis

GET/v1/billing/quotes

Permission : billing:read

Paramètres de requête

ChampTypeDescription
limitentierNombre d’éléments par page (1 à 100) Par défaut : 20. De 1 à 100.
cursortexteCurseur renvoyé par la page précédente (`next_cursor`)

Réponse 200

ChampTypeDescription
dataliste de objet
data[].idtexteExemple : "qt-7".
data[].numbertexteExemple : "7".
data[].subjecttexteExemple : "Migration de la messagerie professionnelle".
data[].statustexteValeurs : pending, accepted, declined, expired.
data[].issued_attexte
data[].valid_untiltexte ou null
data[].subtotalobjet
data[].subtotal.amountentierMontant en centimes. Exemple : 790.
data[].subtotal.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].taxobjet
data[].tax.amountentierMontant en centimes. Exemple : 790.
data[].tax.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].totalobjet
data[].total.amountentierMontant en centimes. Exemple : 790.
data[].total.currencytexteDevise ISO 4217. Exemple : "EUR".
data[].linesliste de objet
data[].lines[].descriptiontexteExemple : "VPS Start - vps-7c2e4a91.vps.corce.link".
data[].lines[].period_starttexte ou null
data[].lines[].period_endtexte ou null
data[].lines[].quantitynombreQuantité ; entière le plus souvent. Exemple : 1.
data[].lines[].unit_priceobjet
data[].lines[].discountobjetRemise de la ligne (devis).
data[].lines[].amountobjet
data[].pdf_urltexte
has_morebooléen
next_cursortexte ou null

Erreurs

curl "https://api.corcelink.fr/v1/billing/quotes" \
  -H "Authorization: Bearer $CORCELINK_API_KEY"

Réponse 200

{
  "data": [
    {
      "id": "qt-1",
      "number": "1",
      "subject": "Migration de la messagerie",
      "status": "pending",
      "issued_at": "2026-10-20",
      "valid_until": "2026-11-16",
      "subtotal": {
        "amount": 45000,
        "currency": "EUR"
      },
      "tax": {
        "amount": 0,
        "currency": "EUR"
      },
      "total": {
        "amount": 45000,
        "currency": "EUR"
      },
      "pdf_url": "https://api.corcelink.fr/v1/billing/quotes/qt-1/pdf"
    },
    {
      "id": "qt-2",
      "number": "2",
      "subject": "Ancien devis",
      "status": "expired",
      "issued_at": "2026-01-01",
      "valid_until": "2026-01-31",
      "subtotal": {
        "amount": 10000,
        "currency": "EUR"
      },
      "tax": {
        "amount": 0,
        "currency": "EUR"
      },
      "total": {
        "amount": 10000,
        "currency": "EUR"
      },
      "pdf_url": "https://api.corcelink.fr/v1/billing/quotes/qt-2/pdf"
    }
  ],
  "has_more": false,
  "next_cursor": null
}
Essayer avec votre clé

Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.

Lire un devis

GET/v1/billing/quotes/{quote_id}

Permission : billing:read

Paramètres de chemin

ChampTypeDescription
quote_idobligatoiretexteFormat : ^qt-[0-9]+$. Exemple : "qt-7".

Réponse 200

ChampTypeDescription
idtexteExemple : "qt-7".
numbertexteExemple : "7".
subjecttexteExemple : "Migration de la messagerie professionnelle".
statustexteValeurs : pending, accepted, declined, expired.
issued_attexte
valid_untiltexte ou null
subtotalobjet
subtotal.amountentierMontant en centimes. Exemple : 790.
subtotal.currencytexteDevise ISO 4217. Exemple : "EUR".
taxobjet
tax.amountentierMontant en centimes. Exemple : 790.
tax.currencytexteDevise ISO 4217. Exemple : "EUR".
totalobjet
total.amountentierMontant en centimes. Exemple : 790.
total.currencytexteDevise ISO 4217. Exemple : "EUR".
linesliste de objet
lines[].descriptiontexteExemple : "VPS Start - vps-7c2e4a91.vps.corce.link".
lines[].period_starttexte ou null
lines[].period_endtexte ou null
lines[].quantitynombreQuantité ; entière le plus souvent. Exemple : 1.
lines[].unit_priceobjet
lines[].unit_price.amountentierMontant en centimes. Exemple : 790.
lines[].unit_price.currencytexteDevise ISO 4217. Exemple : "EUR".
lines[].discountobjetRemise de la ligne (devis).
lines[].discount.amountentierMontant en centimes. Exemple : 790.
lines[].discount.currencytexteDevise ISO 4217. Exemple : "EUR".
lines[].amountobjet
lines[].amount.amountentierMontant en centimes. Exemple : 790.
lines[].amount.currencytexteDevise ISO 4217. Exemple : "EUR".
pdf_urltexte

Erreurs

curl "https://api.corcelink.fr/v1/billing/quotes/qt-7" \
  -H "Authorization: Bearer $CORCELINK_API_KEY"

Réponse 200

{
  "id": "qt-1",
  "number": "1",
  "subject": "Migration de la messagerie",
  "status": "pending",
  "issued_at": "2026-10-20",
  "valid_until": "2026-11-16",
  "subtotal": {
    "amount": 45000,
    "currency": "EUR"
  },
  "tax": {
    "amount": 0,
    "currency": "EUR"
  },
  "total": {
    "amount": 45000,
    "currency": "EUR"
  },
  "pdf_url": "https://api.corcelink.fr/v1/billing/quotes/qt-1/pdf",
  "lines": [
    {
      "description": "Audit de la messagerie (Inventaire des boîtes)",
      "period_start": null,
      "period_end": null,
      "quantity": 1,
      "unit_price": {
        "amount": 20000,
        "currency": "EUR"
      },
      "discount": {
        "amount": 0,
        "currency": "EUR"
      },
      "amount": {
        "amount": 20000,
        "currency": "EUR"
      }
    },
    {
      "description": "Migration par boîte",
      "period_start": null,
      "period_end": null,
      "quantity": 5,
      "unit_price": {
        "amount": 5556,
        "currency": "EUR"
      },
      "discount": {
        "amount": 2778,
        "currency": "EUR"
      },
      "amount": {
        "amount": 25002,
        "currency": "EUR"
      }
    }
  ]
}
Essayer avec votre clé

Votre clé reste dans ce navigateur et n’est envoyée qu’à api.corcelink.fr.

Télécharger un devis

GET/v1/billing/quotes/{quote_id}/pdf

Permission : billing:read

Paramètres de chemin

ChampTypeDescription
quote_idobligatoiretexteFormat : ^qt-[0-9]+$. Exemple : "qt-7".

Réponse 200

Le document PDF.

Erreurs

curl "https://api.corcelink.fr/v1/billing/quotes/qt-7/pdf" \
  -H "Authorization: Bearer $CORCELINK_API_KEY" \
  -o devis.pdf