Skip to content

Endpoints

Document endpoints require Authorization: Bearer <api-key> and X-Issuer-Id: <issuer-id>. Tenant settings, issuer management, and key management require only Authorization: Bearer <api-key>. Registration and email verification are public.

Run in Postman

Registration (public)

MethodPathDescription
POST/v1/registerSelf-service: create tenant + issuer + sandbox API key. New accounts only — if the email already exists, rejects with 409 CONFLICT (use /v1/recover instead).
POST/v1/recoverRecover access to an existing account with the same P12 certificate — revokes and reissues the current environment's key only if the certificate matches the one on file
GET/v1/verify-email/checkCheck whether a verification token is valid, without consuming it — safe for email link-scanners to prefetch
POST/v1/verify-emailConfirm verification with the token — activates the tenant; call only on explicit user action
GET/v1/verify-emailLegacy combined check-and-consume endpoint, kept for backward compatibility
POST/v1/resend-verificationResend verification email (regenerates token)

Agreements (public)

MethodPathDescription
GET/v1/agreementsList current published version of each document type (TERMS, PRIVACY, DPA) — read version from here and pass it as termsVersion when accepting via POST /v1/tenants/agreements
GET/v1/agreements/:typeFetch the current document rendered as HTML — embed in a modal or page in your registration UI

Tiers (public)

MethodPathDescription
GET/v1/tiersFull subscription tier catalog — quota, monthly/yearly price, overage rate, document types, limits

Payments (authenticated)

MethodPathDescription
PATCH/v1/payments/:id/proofUpload proof of an SPI bank transfer for a pending subscription payment — up to 5 files per request, nothing already uploaded is ever overwritten. A REJECTED payment can be re-submitted; only VERIFIED blocks further uploads.
GET/v1/payments/:id/proofsList every active proof file uploaded for a payment
GET/v1/payments/:id/proofs/:proofIdDownload one specific proof file
DELETE/v1/payments/:id/proofs/:proofIdSoft-delete a proof file from your own view (your provider can still see it)

Subscriptions (authenticated)

MethodPathDescription
POST/v1/subscriptionsStart a paid subscription for the authenticated tenant — works while still in sandbox or after promotion, requires a verified email
GET/v1/subscriptions/meFull subscription/payment history, newest first, with rejection_reason_code when applicable — payment reviews and renewals fire notifications too, but activation itself doesn't, so this is still how a tenant checks status
POST/v1/subscriptions/change-tierUpgrade (immediate, prorated payment) or downgrade (scheduled, no payment) an existing ACTIVE subscription's tier — use DELETE below to cancel entirely
DELETE/v1/subscriptionsSchedule a cancellation at period end — drops the tenant to FREE with no refund when current_period_end passes

Tenants (authenticated)

MethodPathDescription
GET/v1/tenants/meResolve the tenant (id, email, tier, status, quota, environment, agreement acceptance) for the authenticated API key
PATCH/v1/tenants/languageUpdate the preferred language for outgoing emails
POST/v1/tenants/promotePromote the tenant to production — revokes all sandbox keys and creates matching production keys
GET/v1/tenants/agreementsCheck whether any agreements need acceptance — returns which types are outdated. Lazily generates PENDING instances for any new template versions; third-party integrators should poll this periodically
POST/v1/tenants/agreementsAccept all PENDING agreements — required before promoting to production
GET/v1/tenants/agreements/historyList all personalized agreement instances for the tenant, with status and acceptance timestamps
GET/v1/tenants/agreements/:typeRender the tenant's personalized document as HTML — includes their business name/RUC and the dates as of when the account was created
GET/v1/tenants/eventsFull tenant-level audit trail (verification, subscription, payment, tier/billing-interval change history), chronological
POST/v1/tenants/retry-failed-documentsRecovers every stuck document for the tenant (failed send/authorize after exhausting automatic retries) — covers all issuers, no X-Issuer-Id needed (Retry All Failed Documents)

Issuers (authenticated)

MethodPathDescription
GET/v1/issuersList all active issuers (branches / issue points) for the tenant
POST/v1/issuersCreate a new branch or issue point — inherits cert from an existing issuer of the tenant. Does NOT mint a new API key.
GET/v1/issuers/:idGet a single issuer's profile (name, RUC, cert expiry)
PATCH/v1/issuers/:idEdit tradeName and/or branchAddress
DELETE/v1/issuers/:idSoft-delete an issuer (blocked if it's the last one or has issued documents)
PATCH/v1/issuers/:id/activateReactivate a soft-deleted issuer (re-checks plan branch/issue-point limits)
PATCH/v1/issuers/:id/logoUpload or replace the issuer logo shown in RIDE PDFs (PNG/JPEG/GIF, max 500 KB)
PATCH/v1/issuers/:id/certificateRenew the issuer's P12 certificate (private key + cert) — e.g. when it has expired
GET/v1/issuers/:id/document-typesList active document types for the issuer
POST/v1/issuers/:id/document-typesEnable a document type for the issuer
DELETE/v1/issuers/:id/document-types/:codeDisable a document type for the issuer
GET/v1/issuers/:id/sequentialsView current and next sequential numbers per document type, by environment
PATCH/v1/issuers/:id/sequentials/:documentTypeManually set the next sequential number for one document type/environment

API keys (authenticated)

MethodPathDescription
GET/v1/keysList all active keys for the tenant (label, environment, created_at)
POST/v1/keysMint a new named key (label, optional environment)
DELETE/v1/keys/:idRevoke an API key. Cannot revoke the key used for the current request.

Documents

Every document endpoint requires both Authorization: Bearer <key> and X-Issuer-Id: <issuer-id>.

MethodPathDescription
GET/v1/documentsList documents with filtering and pagination
GET/v1/documents/statsPer-type document stats for the current month + needs-attention count
POST/v1/documentsCreate and sign a document — invoice (Create Invoice) or credit note (Create Credit Note), selected by documentType
GET/v1/documents/:accessKeyGet a document by access key
POST/v1/documents/:accessKey/sendQueue submission to SRI (Send to SRI — returns 202, async)
POST/v1/documents/:accessKey/send/retryRecovers a stuck document after its automatic send/authorize retries are exhausted (Retry Send/Authorize — returns 202, async)
GET/v1/documents/:accessKey/authorizeQueue an SRI authorization check (Check Authorization — returns 202, async)
POST/v1/documents/:accessKey/rebuildRebuild and re-sign a rejected document
GET/v1/documents/:accessKey/rideDownload RIDE PDF
GET/v1/documents/:accessKey/xmlDownload signed XML
GET/v1/documents/:accessKey/eventsGet audit event history
GET/v1/documents/:accessKey/sri-responsesRaw SRI reception/authorization call outcomes (status + messages) for this document
GET/v1/documents/:accessKey/credit-notesSum of AUTHORIZED credit notes issued against this document + remaining balance
POST/v1/documents/email-retryRetry all failed/pending emails (batch)
POST/v1/documents/:accessKey/email-retryRetry email for a single document

Notifications (authenticated)

Tenant-level alerts for document events and certificate status. Supply X-Issuer-Id to filter to a specific issuer; omit to receive notifications across all your issuers. Use ?sinceId=<id> to efficiently poll only new notifications since your last request.

MethodPathDescription
GET/v1/notificationsList active notifications (read and unread). Optional ?sinceId=<id> for catch-up polling.
POST/v1/notifications/:id/readMark a notification as read
GET/v1/notifications/preferencesGet notification type preferences for the tenant
PATCH/v1/notifications/preferencesEnable or disable notification types

Webhooks (authenticated)

Register HTTPS callback URLs to receive event notifications in near-real time.

MethodPathDescription
POST/v1/webhooksRegister a new webhook endpoint (secret shown once)
GET/v1/webhooksList active webhook endpoints (secrets excluded)
PATCH/v1/webhooks/:idUpdate URL, event subscriptions, or active flag
DELETE/v1/webhooks/:idDeregister an endpoint (soft-delete)

Monitoring

MethodPathAuthDescription
GET/healthNoneDB connectivity check for liveness probes

Comprobify API Documentation