Aller au contenu

Référence de l’API

Générée à partir du même contrat que openapi.json(OpenAPI 3.1). Version 2026-10-01.Chaque réponse est renvoyée dans { data } ; les erreurs, dans { error, code, request_id, doc_url }.

Compte

GET/api/v1/me

Organisation et portée de la cléscope: read

curl https://cordhq.app/api/v1/me \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
orgobjectOrganisation propriétaire de la clé.
scopestringread ou write : ce que la clé peut faire.
mode"live" | "test"live ou test : avec test, tout se passe dans l’environnement de test, sans toucher aux données réelles.

Devis

GET/api/v1/cotizaciones

Lister les devisscope: readPagination par offset

Paramètres : limit, offset, cursor, status, folio, cliente_id

curl https://cordhq.app/api/v1/cotizaciones \
  -H "Authorization: Bearer sk_test_..."
Réponse : data[]
idstringIdentifiant (UUID).
foliostringNuméro lisible attribué par Cord, par exemple COT-0042.
clientestring | nullClient destinataire : nom de l’entreprise, ou les informations pour le créer s’il n’existe pas.
statusstringÉtat du devis : draft, sent, viewed, approved, rejected, expired, paid ou invoiced.
totalnumberMontant dans la devise indiquée par `moneda`.
monedastring | nullDevise ISO 4217.
terminosstring | nullLibellé lisible du délai dans la langue du compte (« À réception », « Net 45 ») ; pour comparer, utilisez terminos_codigo.
terminos_codigostring | nullCode stable du délai : contado ou net<N> (net7, net15, net30, net45, net60, net90).
vigenciastring | nullDate ISO 8601.
creadastring | nullDate ISO 8601.
link_publicostringLien public absolu du devis.
language"es" | "en" | "pt" | "fr" | "de" | nullLecture seule. Langue dans laquelle le devis a été envoyé : es, en, pt, fr ou de. null tant qu’il s’agit d’un brouillon, qui suit la langue du client.

POST/api/v1/cotizaciones

Créer un devisAccepte pk_scope: write

ChampTypeDescription
items obligatoireobject[]Lignes.
cliente_idstringID d’un client du répertoire.
clienteobjectClient destinataire : nom de l’entreprise, ou les informations pour le créer s’il n’existe pas.
terminos"contado" | "net7" | "net15" | "net30" | "net45" | "net60" | "net90"Conditions de paiement : contado ou net<N> (N jours de délai : 7, 15, 30, 45, 60 ou 90).
vigencia_diasintegerNombre de jours de validité du devis à compter de son envoi.
notasstringNotes internes ; le client ne les voit pas.
base_currencystringDevise de vente ISO 4217 : celle dans laquelle les prix sont saisis, le paiement encaissé et la facture émise. Par défaut : celle de l’entreprise.
fiscal_currencystringDevise comptable ISO 4217 ; si elle diffère de la devise de vente, la facture indique le taux de change.
iva_incluidobooleantrue si les prix saisis incluent déjà la taxe.
descuentoobject | nullRemise sur le document avant taxes, répartie entre les lignes au prorata de leur montant. Cord calcule le montant ; null la supprime.
cuponstringCode d’un coupon de l’entreprise. Cord vérifie sa validité, sa devise et ses utilisations ; s’il est fourni, il prime sur descuento. C’est la seule remise acceptée avec une clé publiable.
sendbooleanUniquement avec une clé secrète.
curl -X POST https://cordhq.app/api/v1/cotizaciones \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"cliente":{"empresa":"Acme"},"items":[{"descripcion":"Instalación","cantidad":1,"precio_unitario":12500,"tax_rate":0.16}],"base_currency":"MXN"}'
Réponse : data
idstringIdentifiant (UUID).
tokenstringJeton du lien public. C’est un identifiant d’accès : ne le publiez pas.
foliostringNuméro lisible attribué par Cord, par exemple COT-0042.
link_publicostringLien public absolu partagé avec le client.
needs_approvalbooleantrue s’il est retenu en attente de validation interne avant l’envoi.
motivostring | nullMotif, rédigé par une personne.
emailobjectAdresse e-mail.

GET/api/v1/cotizaciones/{id}

Récupérer un devisscope: read

curl https://cordhq.app/api/v1/cotizaciones/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
idstringIdentifiant (UUID).
foliostringNuméro lisible attribué par Cord, par exemple COT-0042.
clientestring | nullClient destinataire : nom de l’entreprise, ou les informations pour le créer s’il n’existe pas.
statusstringÉtat du devis : draft, sent, viewed, approved, rejected, expired, paid ou invoiced.
totalnumberMontant dans la devise indiquée par `moneda`.
monedastring | nullDevise ISO 4217.
terminosstring | nullLibellé lisible du délai dans la langue du compte (« À réception », « Net 45 ») ; pour comparer, utilisez terminos_codigo.
terminos_codigostring | nullCode stable du délai : contado ou net<N> (net7, net15, net30, net45, net60, net90).
vigenciastring | nullDate ISO 8601.
creadastring | nullDate ISO 8601.
link_publicostringLien public absolu du devis.
language"es" | "en" | "pt" | "fr" | "de" | nullLecture seule. Langue dans laquelle le devis a été envoyé : es, en, pt, fr ou de. null tant qu’il s’agit d’un brouillon, qui suit la langue du client.
notasstring | nullNotes internes ; le client ne les voit pas.
aprobacionobject | nullValidation interne exigée par une règle de l’entreprise ; null si elle ne s’applique pas.
itemsobject[]Lignes.
descuentoobject | nullRemise sur le document, appliquée avant taxes et répartie entre les lignes ; null s’il n’y en a pas. subtotal est déjà net.
eventosobject[]Liste d’événements ou de types d’événement. Vide = tous.

POST/api/v1/cotizaciones/{id}

Envoyer, renvoyer, approuver, refuser ou marquer comme payéscope: write

ChampTypeDescription
action obligatoire"send" | "resend" | "approve" | "reject" | "mark_paid"Action à exécuter ; chacune exige le bon état préalable et est idempotente avec Idempotency-Key.
payment_methodstringMoyen de paiement lors du marquage comme payé : transferencia, efectivo, tarjeta…
curl -X POST https://cordhq.app/api/v1/cotizaciones/ID \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"action":"send"}'
Réponse : data
idstringIdentifiant (UUID).

DELETE/api/v1/cotizaciones/{id}

Supprimer un brouillonscope: write

curl -X DELETE https://cordhq.app/api/v1/cotizaciones/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
idstringIdentifiant (UUID).

POST/api/v1/cotizaciones/ia

Proposer des lignes à partir du texte d’une commandescope: write

ChampTypeDescription
texto obligatoirestringTexte libre de la commande.
curl -X POST https://cordhq.app/api/v1/cotizaciones/ia \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"texto":"…"}'
Réponse : data
itemsany[]Lignes.
monedastringDevise ISO 4217 des montants.

Clients

GET/api/v1/clientes

Lister les clientsscope: readPagination par offset

Paramètres : limit, offset, cursor, q, email

curl https://cordhq.app/api/v1/clientes \
  -H "Authorization: Bearer sk_test_..."
Réponse : data[]
idstringIdentifiant (UUID).
empresastringNom de l’entreprise ou de la personne.
contactostringNom de la personne à contacter.
emailstringAdresse e-mail.
telefonostringTéléphone avec l’indicatif international.
rfcstringIdentifiant fiscal : RFC, NIF, EIN…
terminosstringLibellé lisible des conditions de paiement.
terminosCodestringCode des conditions de paiement : contado ou net<N> (net7, net15, net30, net45, net60, net90).
limitenumberPlafond de crédit du client, dans la devise de l’entreprise.
nivelstringNiveau ou segment du client.
descuentoPctnumberRemise par défaut du client, en pourcentage.
regimenFiscalstringCode de régime fiscal du SAT (Mexique).
usoCfdistringCode d’usage du CFDI (Mexique).
cpFiscalstringCode postal de l’adresse fiscale (Mexique).
countryCodestringPays ISO 3166-1 alpha-2.
language"es" | "en" | "pt" | "fr" | "de" | nullLangue des documents que reçoit le client : es, en, pt, fr ou de ; null = celle de l’organisation. Les devis et les factures conservent la langue dans laquelle ils ont été envoyés ou émis ; la modifier ne réécrit pas ce qui a déjà été envoyé. Toute autre valeur répond 400 avec field: language.

POST/api/v1/clientes

Créer un clientscope: write

ChampTypeDescription
empresa obligatoirestringNom de l’entreprise ou de la personne.
language"es" | "en" | "pt" | "fr" | "de" | nullLangue des documents que reçoit le client : es, en, pt, fr ou de ; null = celle de l’organisation. Les devis et les factures conservent la langue dans laquelle ils ont été envoyés ou émis ; la modifier ne réécrit pas ce qui a déjà été envoyé. Toute autre valeur répond 400 avec field: language.
curl -X POST https://cordhq.app/api/v1/clientes \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"empresa":"…"}'
Réponse : data
idstringIdentifiant (UUID).

GET/api/v1/clientes/{id}

Récupérer un clientscope: read

curl https://cordhq.app/api/v1/clientes/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
idstringIdentifiant (UUID).
empresastringNom de l’entreprise ou de la personne.
contactostringNom de la personne à contacter.
emailstringAdresse e-mail.
telefonostringTéléphone avec l’indicatif international.
rfcstringIdentifiant fiscal : RFC, NIF, EIN…
terminosstringLibellé lisible des conditions de paiement.
terminosCodestringCode des conditions de paiement : contado ou net<N> (net7, net15, net30, net45, net60, net90).
limitenumberPlafond de crédit du client, dans la devise de l’entreprise.
nivelstringNiveau ou segment du client.
descuentoPctnumberRemise par défaut du client, en pourcentage.
regimenFiscalstringCode de régime fiscal du SAT (Mexique).
usoCfdistringCode d’usage du CFDI (Mexique).
cpFiscalstringCode postal de l’adresse fiscale (Mexique).
countryCodestringPays ISO 3166-1 alpha-2.
language"es" | "en" | "pt" | "fr" | "de" | nullLangue des documents que reçoit le client : es, en, pt, fr ou de ; null = celle de l’organisation. Les devis et les factures conservent la langue dans laquelle ils ont été envoyés ou émis ; la modifier ne réécrit pas ce qui a déjà été envoyé. Toute autre valeur répond 400 avec field: language.

PATCH/api/v1/clientes/{id}

Mettre à jour les coordonnéesscope: write

ChampTypeDescription
language"es" | "en" | "pt" | "fr" | "de" | nullLangue des documents que reçoit le client : es, en, pt, fr ou de ; null = celle de l’organisation. Les devis et les factures conservent la langue dans laquelle ils ont été envoyés ou émis ; la modifier ne réécrit pas ce qui a déjà été envoyé. Toute autre valeur répond 400 avec field: language.
curl -X PATCH https://cordhq.app/api/v1/clientes/ID \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{}'
Réponse : data
idstringIdentifiant (UUID).

Produits

GET/api/v1/productos

Lister les produitsAccepte pk_scope: readPagination par offset

Paramètres : limit, offset, cursor

curl https://cordhq.app/api/v1/productos \
  -H "Authorization: Bearer sk_test_..."
Réponse : data[]
idstringIdentifiant (UUID).
skustringCode interne du produit.
nombrestringNom.
unidadstringUnité de mesure : pièce, kg, heure…
descripcionstringDescription telle que le client la voit.
precionumberMontant dans la devise indiquée par `moneda`.
costonumberJamais exposé à une clé publiable.
activobooleanfalse s’il est désactivé : il est conservé mais n’est pas utilisé.
createdAtstring | nullDate ISO 8601.
preciosVolumenobject[]Prix dégressifs par quantité.
existenciasnumber | nullUnités disponibles ; null si le stock n’est pas suivi.
taxRatenumber | nullTaxe proposée lorsque le produit est ajouté à une ligne, sous forme de fraction 0–1 ; null = celle par défaut de l’organisation.
claveSatstring | nullCode de produit ou de service du SAT (c_ClaveProdServ, 8 chiffres) pour le CFDI au Mexique ; null s’il n’a pas été classé.
claveUnidadSatstring | nullCode d’unité du SAT (c_ClaveUnidad, comme H87 ou E48) pour le CFDI au Mexique ; null = déduit de l’unité.

POST/api/v1/productos

Créer un produitscope: write

ChampTypeDescription
nombre obligatoirestringNom.
curl -X POST https://cordhq.app/api/v1/productos \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"nombre":"…"}'
Réponse : data
idstringIdentifiant (UUID).

Factures

GET/api/v1/facturas

Lister les facturesscope: readPagination par curseur

Paramètres : limit, cursor, estado, cliente, desde, hasta, q

curl https://cordhq.app/api/v1/facturas \
  -H "Authorization: Bearer sk_test_..."
Réponse : data[]
idstringIdentifiant (UUID).
numerostring | nullNuméro de la facture dans sa série.
folio_fiscalstring | nullIdentifiant auprès de l’administration fiscale (UUID du CFDI au Mexique) ; null s’il ne s’applique pas.
clientestring | nullClient destinataire : nom de l’entreprise, ou les informations pour le créer s’il n’existe pas.
estadostringdraft, open, paid, void ou uncollectible.
estado_fiscalstringÉtat de l’émission : pending, issued, cancelled ou error.
paisstringPays ISO 3166-1 alpha-2.
tipostringType de document : cfdi_40, cfdi_egreso, proforma, commercial_invoice, commercial_credit_note, verifactu_invoice ou verifactu_credit_note.
documento"factura" | "factura_proforma" | "nota_credito" | "nota_debito"Intitulé du document. factura_proforma est une facture pro forma : ce n’est pas une facture et elle n’a pas de valeur fiscale. Couvre le type proforma et, en Espagne, tout document sans enregistrement Verifactu.
monedastring | nullDevise ISO 4217.
totalnumberMontant dans la devise indiquée par `moneda`.
pagadonumberMontant dans la devise indiquée par `moneda`.
saldonumberMontant dans la devise indiquée par `moneda`.
vencestring | nullDate ISO 8601.
vencidabooleantrue si la date d’échéance est dépassée avec un reste à payer.
cotizacion_idstring | nullID du devis associé.
creadastring | nullDate ISO 8601.
language"es" | "en" | "pt" | "fr" | "de" | nullLecture seule. Langue dans laquelle la facture a été émise : es, en, pt, fr ou de. null tant qu’il s’agit d’un brouillon.

POST/api/v1/facturas

Créer une facture en brouillonscope: write

ChampTypeDescription
cliente_id obligatoirestringID d’un client du répertoire.
items obligatoireobject[]Lignes.
currencystringDevise ISO 4217.
due_datestringDate d’échéance, YYYY-MM-DD.
service_datestringDate de la prestation ou de la livraison (Leistungsdatum), YYYY-MM-DD. Sans elle, la facture indique qu’elle coïncide avec la date d’émission.
service_date_endstringFin de la période de prestation, YYYY-MM-DD. Nécessite service_date et ne peut pas être antérieure.
notasstringNotes internes ; le client ne les voit pas.
iva_incluidobooleantrue si les prix saisis incluent déjà la taxe.
document_mode"commercial" | "fiscal"commercial ou fiscal. Sans lui, fiscal si l’offre l’inclut et que le pays l’a activé ; fiscal sans cela répond 400.
fx_buffer_pctnumberMarge de couverture en points de pourcentage sur le taux de change de référence (2 = +2 %) ; plafonnée à 25. Par défaut 0.
descuentoobject | nullRemise sur le document avant taxes, répartie entre les lignes au prorata de leur montant. Cord calcule le montant ; null la supprime.
cuponstringCode d’un coupon de l’entreprise. Cord vérifie sa validité, sa devise et ses utilisations ; s’il est fourni, il prime sur descuento. C’est la seule remise acceptée avec une clé publiable.
buyer_referencestringRéférence de l’acheteur pour sa comptabilité fournisseurs (en Allemagne, le Leitweg-ID de l’administration publique). Elle figure dans la facture électronique européenne (BT-10) et XRechnung l’exige. Sans elle, celle du client s’applique. Si l’adresse électronique du client est un Leitweg-ID (schéma 0204), ses chiffres de contrôle sont vérifiés (ISO/IEC 7064 MOD 97-10) et une référence qui échoue répond 400.
purchase_orderstringNuméro du bon de commande du client (BT-13 de la facture électronique européenne).
curl -X POST https://cordhq.app/api/v1/facturas \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"cliente_id":"…","items":[{"descripcion":"…","cantidad":1,"precio_unitario":1}]}'
Réponse : data
idstringIdentifiant (UUID).

GET/api/v1/facturas/{id}

Récupérer une facturescope: read

curl https://cordhq.app/api/v1/facturas/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
idstringIdentifiant (UUID).
numerostring | nullNuméro de la facture dans sa série.
folio_fiscalstring | nullIdentifiant auprès de l’administration fiscale (UUID du CFDI au Mexique) ; null s’il ne s’applique pas.
clientestring | nullClient destinataire : nom de l’entreprise, ou les informations pour le créer s’il n’existe pas.
estadostringdraft, open, paid, void ou uncollectible.
estado_fiscalstringÉtat de l’émission : pending, issued, cancelled ou error.
paisstringPays ISO 3166-1 alpha-2.
tipostringType de document : cfdi_40, cfdi_egreso, proforma, commercial_invoice, commercial_credit_note, verifactu_invoice ou verifactu_credit_note.
documento"factura" | "factura_proforma" | "nota_credito" | "nota_debito"Intitulé du document. factura_proforma est une facture pro forma : ce n’est pas une facture et elle n’a pas de valeur fiscale. Couvre le type proforma et, en Espagne, tout document sans enregistrement Verifactu.
monedastring | nullDevise ISO 4217.
totalnumberMontant dans la devise indiquée par `moneda`.
pagadonumberMontant dans la devise indiquée par `moneda`.
saldonumberMontant dans la devise indiquée par `moneda`.
vencestring | nullDate ISO 8601.
vencidabooleantrue si la date d’échéance est dépassée avec un reste à payer.
cotizacion_idstring | nullID du devis associé.
creadastring | nullDate ISO 8601.
language"es" | "en" | "pt" | "fr" | "de" | nullLecture seule. Langue dans laquelle la facture a été émise : es, en, pt, fr ou de. null tant qu’il s’agit d’un brouillon.
subtotalnumberMontant dans la devise indiquée par `moneda`.
impuestosnumberMontant dans la devise indiquée par `moneda`.
moneda_contablestring | nullDevise ISO 4217.
tipo_cambionumber | nullTaux de change déclaré de la devise de vente vers la devise comptable ; null si ce sont les mêmes.
total_contablenumber | nullTotal converti dans la devise comptable.
notasstring | nullNotes internes ; le client ne les voit pas.
nota_credito_destring | nullID de la facture que corrige cet avoir.
emisoranyInformations fiscales de l’émetteur.
receptoranyInformations fiscales du client destinataire de la facture.
descuentoobject | nullRemise sur le document, appliquée avant taxes et répartie entre les lignes ; null s’il n’y en a pas. subtotal est déjà net.
conceptosobject[]Lignes de la facture avec leur taxe.
pagosobject[]Paiements reçus.

POST/api/v1/facturas/{id}

Émettre, envoyer, annuler, enregistrer un paiement ou un avoirscope: write

ChampTypeDescription
action obligatoire"finalize" | "send" | "void" | "payment" | "credit_note"Action à exécuter ; chacune exige le bon état préalable et est idempotente avec Idempotency-Key.
montonumberMontant dans la devise indiquée par moneda.
monedastringDevise ISO 4217 des montants.
metodostringMoyen de paiement : transferencia, efectivo, tarjeta…
referenciastringRéférence du paiement ou du prestataire.
motivostringMotif, rédigé par une personne.
sin_comercio_exteriorbooleanMexique, à l’émission (finalize) : true confirme qu’un CFDI comportant des marchandises pour un client à l’étranger n’est pas une exportation définitive. Sans lui, cette émission répond 409 avec le code comercio_exterior, car Cord ne génère pas le complément de commerce extérieur.
curl -X POST https://cordhq.app/api/v1/facturas/ID \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"action":"finalize"}'
Réponse : data
idstringIdentifiant (UUID).

Recouvrement

GET/api/v1/cobranza

Créances à encaisserscope: read

curl https://cordhq.app/api/v1/cobranza \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
resumenanyTotaux en un coup d’œil.
aginganyCréances par ancienneté en quatre tranches fixes : vigente (non échues), d30 (1–30 jours de retard), d60 (31–60) et d60p (plus de 60). Chacune contient key, label, monto et n.
itemsany[]Lignes.
clientesanySolde regroupé par client.

Événements

GET/api/v1/events

Historique des événementsscope: readPagination par curseur

Paramètres : limit, cursor, type, object_id

curl https://cordhq.app/api/v1/events \
  -H "Authorization: Bearer sk_test_..."
Réponse : data[]
idstringIdentifiant (UUID).
typestringType d’événement, par exemple quote.approved.
objectstringType d’objet : quote, invoice, client, product, task, promise…
object_idstring | nullID de l’objet concerné.
dataobjectContenu de la réponse ou de l’événement.
actorstring | nullQui l’a fait : user, api, mcp, client (le destinataire du lien public) ou system.
created_atstringDate de création, ISO 8601.

Tâches

POST/api/v1/tareas

Créer une tâchescope: write

ChampTypeDescription
titulo obligatoirestringCe qu’il faut faire.
due_datestringDate d’échéance, YYYY-MM-DD.
cotizacion_idstringID du devis associé.
factura_idstringID de la facture associée (l’`id` de /facturas).
curl -X POST https://cordhq.app/api/v1/tareas \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"titulo":"…"}'
Réponse : data
idstringIdentifiant (UUID).

Workflows

POST/api/v1/workflows/{id}/invoke

Lancer un workflow « Vous le lancez » sur des devis ou des facturesscope: write

ChampTypeDescription
objeto obligatoire"quote" | "invoice"Type de document : quote (devis) ou invoice (facture) ; il doit correspondre au déclencheur du workflow.
ids obligatoirestring[]Identifiants (UUID) des documents, de 1 à 50.
curl -X POST https://cordhq.app/api/v1/workflows/ID/invoke \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"objeto":"quote","ids":["…"]}'
Réponse : data
documentosnumberNombre de documents envoyés qui existent dans l’organisation.
corridasnumberNombre d’exécutions démarrées : un document qui ne remplit pas le filtre du workflow ou qui y est déjà passé ne compte pas.

Webhooks

GET/api/v1/webhooks

Endpoints créés par cette cléscope: read

curl https://cordhq.app/api/v1/webhooks \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
idstringIdentifiant (UUID).
urlstringURL HTTPS qui reçoit les événements.
eventosstring[]Liste d’événements ou de types d’événement. Vide = tous.
activobooleanfalse s’il est désactivé : il est conservé mais n’est pas utilisé.
created_atstringDate de création, ISO 8601.

POST/api/v1/webhooks

Créer un endpoint (le secret n’est renvoyé qu’une fois)scope: write

ChampTypeDescription
url obligatoirestringURL HTTPS qui reçoit les événements.
eventosstring[]Liste d’événements ou de types d’événement. Vide = tous.
curl -X POST https://cordhq.app/api/v1/webhooks \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"url":"…"}'
Réponse : data
idstringIdentifiant (UUID).
urlstringURL HTTPS qui reçoit les événements.
eventosstring[]Liste d’événements ou de types d’événement. Vide = tous.
activobooleanfalse s’il est désactivé : il est conservé mais n’est pas utilisé.
created_atstringDate de création, ISO 8601.
secretstringSecret pour vérifier la signature. Il n’est affiché qu’une fois.

DELETE/api/v1/webhooks/{id}

Supprimer un endpointscope: write

curl -X DELETE https://cordhq.app/api/v1/webhooks/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
idstringIdentifiant (UUID).

Elements

GET/api/v1/elements/config

Configuration affichée par Cord ElementsAccepte pk_scope: read

curl https://cordhq.app/api/v1/elements/config \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
object"elements_config"Type d’objet : quote, invoice, client, product, task, promise…
orgobjectOrganisation propriétaire de la clé.
monedasstring[]Devises que l’entreprise propose dans ses devis.
impuestosobjectTaxes du document ou catalogue de taxes.
terminos"contado" | "net7" | "net15" | "net30" | "net45" | "net60" | "net90"[]Conditions de paiement : contado ou net<N> (N jours de délai : 7, 15, 30, 45, 60 ou 90).
terminos_default"contado" | "net7" | "net15" | "net30" | "net45" | "net60" | "net90"Conditions de paiement par défaut.
vigencia_dias_defaultnumberValidité par défaut, en jours.
fiscalobjectInformations fiscales.

POST/api/v1/elements/ai-draft

Lignes générées par l’IA en streaming (text/event-stream)Accepte pk_scope: write

ChampTypeDescription
textostringTexte libre de la commande.
archivostringJPG, PNG ou PDF, 4 Mo maximum.
curl -X POST https://cordhq.app/api/v1/elements/ai-draft \
  -H "Authorization: Bearer sk_test_..." \
  -F "texto=5 sacos de cemento y 2 de arena"

Répond en text/event-stream avec les événements item, done et error.

Mode test

POST/api/v1/test_helpers/fiscal

Forcer le résultat de la prochaine émissionsk_test_ uniquementscope: write

ChampTypeDescription
siguiente_resultado obligatoire"exito" | "pac_caido" | "receptor_invalido" | "certificado_vencido" | "timbre_duplicado"Résultat de la prochaine émission fiscale dans l’environnement de test.
curl -X POST https://cordhq.app/api/v1/test_helpers/fiscal \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"siguiente_resultado":"exito"}'
Réponse : data
siguiente_resultadostringRésultat de la prochaine émission fiscale dans l’environnement de test.

POST/api/v1/test_helpers/cotizaciones/{id}

Simuler une consultation ou une expirationsk_test_ uniquementscope: write

ChampTypeDescription
accion obligatoire"vista" | "vencer"Ce qu’il faut simuler : vista (le client ouvre le lien) ou vencer (le devis expire).
curl -X POST https://cordhq.app/api/v1/test_helpers/cotizaciones/ID \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"accion":"vista"}'
Réponse : data
idstringIdentifiant (UUID).

POST/api/v1/test_helpers/webhooks

Déclencher un webhooksk_test_ uniquementscope: write

ChampTypeDescription
evento obligatoirestringType d’événement, par exemple quote.approved.
objeto_idstringID d’un devis ou d’une facture de l’environnement de test ; sans lui, des données d’exemple sont utilisées.
curl -X POST https://cordhq.app/api/v1/test_helpers/webhooks \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"evento":"…"}'
Réponse : data
eventostringType d’événement, par exemple quote.approved.
datos"real" | "ejemplo"real si les données de l’objet indiqué ont été utilisées ; ejemplo s’il s’agit de données fictives.

POST/api/v1/test_helpers/listen

Ouvrir une session cord listensk_test_ uniquementscope: write

ChampTypeDescription
eventosstring[]Liste d’événements ou de types d’événement. Vide = tous.
curl -X POST https://cordhq.app/api/v1/test_helpers/listen \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{}'
Réponse : data
idstringIdentifiant (UUID).
secretstringSecret pour vérifier la signature. Il n’est affiché qu’une fois.
eventosstring[]Liste d’événements ou de types d’événement. Vide = tous.
expirastringDate d’expiration, ISO 8601.

GET/api/v1/test_helpers/listen/{id}

Récupérer les événements de la sessionsk_test_ uniquementscope: write

curl https://cordhq.app/api/v1/test_helpers/listen/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
event_idstringID de l’événement ; dédupliquez à partir de celui-ci.
eventostringType d’événement, par exemple quote.approved.
bodystringCorps brut de l’événement ; transmettez-le sans modification pour que la signature soit valide.
headersobjectEn-têtes à transmettre tels quels, y compris la signature X-Cord-Signature-V1.

DELETE/api/v1/test_helpers/listen/{id}

Fermer une session cord listensk_test_ uniquementscope: write

curl -X DELETE https://cordhq.app/api/v1/test_helpers/listen/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
idstringIdentifiant (UUID).

Configuration

POST/api/v1/setup/plans

Proposer une configuration du compte (une personne l’approuve sur review_url)scope: write

ChampTypeDescription
sitiostringSite web de l’entreprise, par exemple votreentreprise.com.
descripcionstringDescription de l’entreprise : secteur d’activité, délais de paiement, taxes facturées ou retenues.
archivoobjectListe de prix (Excel, CSV, PDF ou photo) en base64, 3 Mo maximum.
curl -X POST https://cordhq.app/api/v1/setup/plans \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{}'
Réponse : data
object"setup_plan"Type d’objet : quote, invoice, client, product, task, promise…
idstringIdentifiant (UUID).
estado"generando" | "propuesto" | "aplicado" | "descartado" | "fallido"propuesto attend l’approbation d’une personne sur review_url.
review_urlstringPage où une personne connectée examine et applique la proposition. L’API ne l’applique jamais.

GET/api/v1/setup/plans/{id}

État d’une proposition de configurationscope: read

curl https://cordhq.app/api/v1/setup/plans/ID \
  -H "Authorization: Bearer sk_test_..."
Réponse : data
object"setup_plan"Type d’objet : quote, invoice, client, product, task, promise…
idstringIdentifiant (UUID).
estado"generando" | "propuesto" | "aplicado" | "descartado" | "fallido"propuesto attend l’approbation d’une personne sur review_url.
review_urlstringPage où une personne connectée examine et applique la proposition. L’API ne l’applique jamais.