Ontwikkelaars · Integratie
Referentie
Alle endpoints in één tabel, gegenereerd uit de OpenAPI-beschrijving. Dezelfde beschrijving draait live.
OpenAPI
De machineleesbare beschrijving staat op https://docs.cijfr.com/openapi.json (CORS open) en op https://api.cijfr.com/api/v1/openapi. Importeer hem in Postman, Insomnia of je eigen codegen.
curl https://docs.cijfr.com/openapi.jsonEndpoints
GET /api/v1/me
Current organisation, plan, profile and scopes
scope none
GET /api/v1/customers
List customers
scope customers:read
POST /api/v1/customers
Create a customer. externalId upserts on your own id.
scope customers:write
- name? string
- companyName? string
- contactName? string
- type string · `company`, `person`
- email? string email
- phone? string
- externalId? string
- addressLine1? string
- addressLine2? string
- postalCode? string
- city? string
- countryCode string
- btwId? string
- kvkNumber? string
- paymentTermDays? integer
- language? string · `nl`, `en`
- notes? string
- metadata? object
GET /api/v1/customers/{id}
Retrieve one customer
scope customers:read
PATCH /api/v1/customers/{id}
Update a customer
scope customers:write
- name? string
- companyName? string
- contactName? unknown
- email? unknown
- phone? unknown
- externalId? unknown
- addressLine1? unknown
- addressLine2? unknown
- postalCode? unknown
- city? unknown
- countryCode? string
- btwId? unknown
- kvkNumber? unknown
- paymentTermDays? integer
- language? string · `nl`, `en`
- notes? unknown
- metadata? object
DELETE /api/v1/customers/{id}
Archive a customer (documents stay linked)
scope customers:write
GET /api/v1/products
List products
scope products:read
POST /api/v1/products
Create a product
scope products:write
- name string
- unitPriceCents integer
- vatRateBps? unknown
- vatTreatment? string · `standard_21`, `reduced_9`, `zero`, `exempt`, `reverse_charge`, `intra_community`
- unit string
- sku? string
- externalId? string
- metadata? object
GET /api/v1/products/{id}
Retrieve one product
scope products:read
PATCH /api/v1/products/{id}
Update a product
scope products:write
- name? string
- unitPriceCents? integer
- vatRateBps? unknown
- vatTreatment? string · `standard_21`, `reduced_9`, `zero`, `exempt`, `reverse_charge`, `intra_community`
- unit? string
- sku? unknown
- externalId? unknown
- metadata? object
DELETE /api/v1/products/{id}
Archive a product
scope products:write
GET /api/v1/invoices
List invoices
scope invoices:read
POST /api/v1/invoices
Create an invoice. send:true issues it (gap-free number, locked) and emails the customer.
scope invoices:write
- customerId string uuid
- issueDate? string date
- dueDate? string date
- profileId? string uuid
- reference? string
- subject? string
- notes? string
- terms? string
- locale? string · `nl`, `en`
- externalId? string
- metadata? object
- lines array
- send boolean
GET /api/v1/invoices/{id}
Retrieve one invoice with lines and customer. ?expand=payments,credit_notes,reminders adds related rows.
scope invoices:read
PATCH /api/v1/invoices/{id}
Update a DRAFT invoice
scope invoices:write
- customerId? string uuid
- issueDate? string date
- dueDate? string date
- deliveryDate? string date
- reference? unknown
- subject? unknown
- notes? unknown
- terms? unknown
- expiresOn? unknown
- externalId? unknown
- metadata? object
- lines? array
DELETE /api/v1/invoices/{id}
Delete a DRAFT invoice
scope invoices:write
POST /api/v1/invoices/{id}/send
Issue and email a draft invoice
scope invoices:write
POST /api/v1/invoices/{id}/payments
Register a manual incoming payment (bank transfer etc.). operationId makes the call safely repeatable.
scope payments:write
- amountCents integer
- paidAt string date
- method string · `ideal`, `bancontact`, `creditcard`, `sepa`, `bank_transfer`, `cash`, `other`
- reference? string
- operationId? string
POST /api/v1/invoices/{id}/credit-notes
Create a credit note on a sent invoice: full credit, or a subset via lines[].sourceLineId + quantity. send:true issues and emails it.
scope credit-notes:write
- lines? array
- reason? string
- send boolean
- externalId? string
- metadata? object
GET /api/v1/invoices/{id}/reminders
Reminder history for one invoice
scope reminders:read
POST /api/v1/invoices/{id}/reminders
Send the next legal reminder (Dutch dunning ladder)
scope reminders:write
POST /api/v1/invoices/{id}/checkout
Create or reuse the PSP checkout link for the remaining balance
scope invoices:write
- method? string
GET /api/v1/invoices/{id}/pdf
Invoice PDF (application/pdf)
scope invoices:read
GET /api/v1/invoices/{id}/ubl
Invoice as UBL 2.1 XML
scope invoices:read
GET /api/v1/quotes
List quotes
scope quotes:read
POST /api/v1/quotes
Create a quote. send:true issues and emails it; acceptance stays on the public link.
scope quotes:write
- customerId string uuid
- issueDate? string date
- dueDate? string date
- profileId? string uuid
- reference? string
- subject? string
- notes? string
- terms? string
- locale? string · `nl`, `en`
- externalId? string
- metadata? object
- lines array
- expiresOn? string date
- send boolean
GET /api/v1/quotes/{id}
Retrieve one quote with lines
scope quotes:read
PATCH /api/v1/quotes/{id}
Update a DRAFT quote
scope quotes:write
- customerId? string uuid
- issueDate? string date
- dueDate? string date
- deliveryDate? string date
- reference? unknown
- subject? unknown
- notes? unknown
- terms? unknown
- expiresOn? unknown
- externalId? unknown
- metadata? object
- lines? array
DELETE /api/v1/quotes/{id}
Delete a DRAFT quote
scope quotes:write
POST /api/v1/quotes/{id}/send
Issue and email a draft quote
scope quotes:write
POST /api/v1/quotes/{id}/convert
Copy a quote into a draft invoice (source quote untouched)
scope quotes:write
GET /api/v1/quotes/{id}/pdf
Quote PDF (application/pdf)
scope quotes:read
GET /api/v1/credit-notes
List credit notes
scope credit-notes:read
GET /api/v1/credit-notes/{id}
Retrieve one credit note with lines
scope credit-notes:read
PATCH /api/v1/credit-notes/{id}
Update a DRAFT credit note
scope credit-notes:write
- customerId? string uuid
- issueDate? string date
- dueDate? string date
- deliveryDate? string date
- reference? unknown
- subject? unknown
- notes? unknown
- terms? unknown
- expiresOn? unknown
- externalId? unknown
- metadata? object
- lines? array
DELETE /api/v1/credit-notes/{id}
Delete a DRAFT credit note
scope credit-notes:write
POST /api/v1/credit-notes/{id}/send
Issue and email a draft credit note
scope credit-notes:write
GET /api/v1/credit-notes/{id}/pdf
Credit note PDF (application/pdf)
scope credit-notes:read
GET /api/v1/credit-notes/{id}/ubl
Credit note as UBL 2.1 XML
scope credit-notes:read
GET /api/v1/payments
List payments
scope payments:read
GET /api/v1/payments/{id}
Retrieve one payment
scope payments:read
POST /api/v1/payments/{id}/reverse
Reverse a payment: allocation undone, reversal journal entry posted
scope payments:write
GET /api/v1/expenses
List expenses
scope expenses:read
POST /api/v1/expenses
Create an expense (header + excl-VAT lines) and post it to the journal
scope expenses:write
- kind string · `receipt`, `incoming_invoice`
- supplierName? string
- title? string
- invoiceNumber? string
- expenseDate string date
- dueDate? string date
- amountInclCents? integer
- vatAmountCents? integer
- vatTreatment string · `standard`, `reverse_charge`, `eu_service`, `import`, `article_23`, `import_customs`, `bua`, `foreign_vat`
- deductiblePercent integer
- amountsIncludeVat boolean
- paymentMethod? string · `ideal`, `bancontact`, `creditcard`, `sepa`, `bank_transfer`, `cash`, `other`, `bank`
- paidAt? string date
- notes? string
- lines? array
- currency string · `EUR`, `USD`, `GBP`, `CHF`, `SEK`, `NOK`, `DKK`, `PLN`, `CZK`, `HUF`, `RON`, `TRY`, `ISK`, `JPY`, `CAD`, `AUD`, `NZD`, `CNY`, `HKD`, `SGD`, `KRW`, `INR`, `IDR`, `MYR`, `PHP`, `THB`, `MXN`, `BRL`, `ZAR`, `ILS`
- fxSource string · `ecb`, `bank_sell`
- fxMoment string · `invoice`, `supply`, `statutory`
- supplyDate? string date
- bankRate? string
- externalId? string
- metadata? object
GET /api/v1/expenses/{id}
Retrieve one expense with its lines
scope expenses:read
PATCH /api/v1/expenses/{id}
Update an expense; the posted journal entry is reversed and reposted
scope expenses:write
- supplierName? unknown
- title? unknown
- invoiceNumber? unknown
- expenseDate? string date
- dueDate? unknown
- vatTreatment? string · `standard`, `reverse_charge`, `eu_service`, `import`, `article_23`, `import_customs`, `bua`, `foreign_vat`
- amountsIncludeVat? boolean
- deductiblePercent? integer
- paymentMethod? unknown
- paidAt? unknown
- notes? unknown
- amountInclCents? integer
- vatAmountCents? integer
- lines? array
- currency? string · `EUR`, `USD`, `GBP`, `CHF`, `SEK`, `NOK`, `DKK`, `PLN`, `CZK`, `HUF`, `RON`, `TRY`, `ISK`, `JPY`, `CAD`, `AUD`, `NZD`, `CNY`, `HKD`, `SGD`, `KRW`, `INR`, `IDR`, `MYR`, `PHP`, `THB`, `MXN`, `BRL`, `ZAR`, `ILS`
- fxSource? string · `ecb`, `bank_sell`
- fxMoment? string · `invoice`, `supply`, `statutory`
- supplyDate? unknown
- bankRate? unknown
- externalId? unknown
- metadata? object
DELETE /api/v1/expenses/{id}
Soft-delete an expense
scope expenses:write
GET /api/v1/expenses/{id}/receipt
Download URL for the stored receipt (fetch it with the same API key)
scope expenses:read
POST /api/v1/expenses/{id}/receipt
Returns uploadUrl; PUT the receipt bytes there with the same API key
scope expenses:write
PUT /api/v1/expenses/{id}/receipt
Stores the receipt bytes sent as the raw request body
scope expenses:write
POST /api/v1/expenses/{id}/extract
Reads the stored receipt and returns a draft. Nothing is posted until the user saves.
scope expenses:write
GET /api/v1/expenses/{id}/receipt/download
Streams the stored receipt file (private storage)
scope expenses:read
GET /api/v1/subscriptions
List recurring schedules
scope subscriptions:read
POST /api/v1/subscriptions
Create a subscription from invoice-like lines
scope subscriptions:write
- customerId string uuid
- freq string · `weekly`, `monthly`, `quarterly`, `yearly`
- interval integer
- autoSendEmail boolean
- autoSendPost boolean
- profileId? string uuid
- externalId? string
- metadata? object
- lines array
GET /api/v1/subscriptions/{id}
Retrieve one schedule with its source invoice
scope subscriptions:read
PATCH /api/v1/subscriptions/{id}
Pause/resume or change cadence
scope subscriptions:write
- isActive? boolean
- autoSendEmail? boolean
- autoSendPost? boolean
- freq? string · `weekly`, `monthly`, `quarterly`, `yearly`
- interval? integer
DELETE /api/v1/subscriptions/{id}
Deactivate and archive a schedule
scope subscriptions:write
GET /api/v1/checkouts
List hosted checkout sessions
scope checkouts:read
POST /api/v1/checkouts
Create a hosted checkout; the response `url` is the Cijfr-hosted payment page
scope checkouts:write
- title string
- kind string · `fixed`, `subscription`, `platform_plan`, `platform_credits`
- metadata? object
- profileId? string uuid
- lines array
- options? array
- allowDowngrade boolean
- currentOptionId? string
- currentInterval? string · `week`, `month`, `quarter`, `year`
- scheduleRenewal boolean
- customer? object
- redirectUrl? string uri
- description? string
- cancelUrl? string uri
- customerType? string · `business`, `consumer`, `choose`
- methods? array
- requiresShipping boolean
- expiresInHours integer
GET /api/v1/checkouts/{id}
Retrieve one checkout session
scope checkouts:read
GET /api/v1/ledger/accounts
Chart of accounts (RGS-keyed)
scope ledger:read
GET /api/v1/ledger/entries
Journal entries
scope ledger:read
GET /api/v1/ledger/entries/{id}
One journal entry with balanced lines
scope ledger:read
GET /api/v1/ledger/periods
VAT/bookkeeping periods
scope ledger:read
GET /api/v1/vat/effects
Per-document VAT effects
scope ledger:read
GET /api/v1/vat/returns
Prepared/submitted VAT returns
scope ledger:read
GET /api/v1/vat/returns/{id}
One VAT return with its rubriek boxes
scope ledger:read
GET /api/v1/webhooks
List webhook endpoints (secrets never returned)
scope webhooks:read
POST /api/v1/webhooks
Create a webhook endpoint; the signing secret is returned exactly once
scope webhooks:write
- url string uri
- events array
GET /api/v1/webhooks/{id}
Retrieve one webhook endpoint
scope webhooks:read
PATCH /api/v1/webhooks/{id}
Update URL, event filter or active flag
scope webhooks:write
- url? string uri
- events? array
- isActive? boolean
DELETE /api/v1/webhooks/{id}
Delete a webhook endpoint
scope webhooks:write
GET /api/v1/webhooks/{id}/deliveries
Delivery history for one endpoint
scope webhooks:read
POST /api/v1/webhooks/{id}/rotate-secret
Rotate the signing secret; the new value is returned exactly once
scope webhooks:write
POST /api/v1/webhooks/{id}/test
Deliver a webhook.test event to the endpoint and report the result
scope webhooks:write
GET /api/v1/webhook-deliveries
All webhook deliveries
scope webhooks:read
GET /api/v1/webhook-deliveries/{id}
Inspect one delivery attempt
scope webhooks:read
POST /api/v1/webhook-deliveries/{id}/retry
Re-deliver one failed delivery now
scope webhooks:write
POST /api/v1/agent/chat
One agent turn, non-streaming. Returns { data: { text, widgets } } where widgets are proposals/choices/actions the client renders; proposals confirm through the regular write endpoints. Requires agent:write.
scope agent:write
- messages array
- tier? string · `low`, `high`
GET /api/v1/store/stores
List stores and sites in this organisation, including each publishable storefront_token.
scope store:read
POST /api/v1/store/stores
Create a draft store or site in this organisation. The response is the id and the publishable storefront_token for that shop. It is not an order link or a download token.
scope store:write
PATCH /api/v1/store/stores/{id}
Rename a store or site in this organisation, or change its slug. The slug can change only while the shop has never been published, because buyer mails and order links carry it. A slug already taken is a conflict. A shop from another organisation is not found.
scope store:write
GET /api/v1/store/stores/{id}/chrome
Read the theme, header and footer of a shop in this organisation. An unreadable part is null. A shop from another organisation is not found.
scope store:read
PATCH /api/v1/store/stores/{id}/chrome
Update the theme, header or footer of a shop in this organisation. Only the fields in the body change. An unreadable stored part must be replaced in the same request. A link must be a path or https. A shop from another organisation is not found.
scope store:write
POST /api/v1/store/stores/{id}/publish
Publish or pause a store or site in this organisation. publish is true or false. Publishing requires the organisation KvK number already stored on the account. The request cannot supply a different number. The front page has to exist and be readable. Its address may differ from home.
scope store:write
PATCH /api/v1/store/products/{id}
Update a product in this organisation. Only the fields in the body change. price_incl_cents is an integer number of cents. An unknown kind, rate, status, or weight is rejected. A product from another organisation is not found. Changing the address moves shop links that used /product/{slug}. If a link cannot move, the address stays.
scope store:write
GET /api/v1/store/products/{id}/images
List the pictures on a product in this organisation. The storage path is not included. A product from another organisation is not found.
scope store:read
POST /api/v1/store/products/{id}/images
Attach a picture to a product in this organisation. The body is multipart form data with one file. png, jpeg, webp, and gif are accepted. A ninth picture is refused. A product from another organisation is not found.
scope store:write
DELETE /api/v1/store/products/{id}/images/{imageId}
Remove a picture from a product in this organisation. The picture stays in the shop. A picture that is not on this product is not found.
scope store:write
GET /api/v1/store/products/{id}/files
List the download files on a product in this organisation. The storage path is not included. A product from another organisation is not found.
scope store:read
POST /api/v1/store/products/{id}/files
Attach a download file to a digital product in this organisation. The body is multipart form data with one file. The type has to match the extension, and the bytes have to match that type. A program, a script, or HTML is refused. A physical product is refused. A product from another organisation is not found.
scope store:write
POST /api/v1/store/products/{id}/variants
Add an option to a product in this organisation. price_incl_cents is an integer number of cents, or null to use the product price. inventory_qty is a whole number. A product from another organisation is not found.
scope store:write
PATCH /api/v1/store/products/{id}/variants/{variantId}
Update an option on a product in this organisation. Only the fields in the body change. An option from another product is not found.
scope store:write
DELETE /api/v1/store/products/{id}/variants/{variantId}
Remove an option from a product in this organisation. Past orders keep the title already stored on the line. An option from another product is not found.
scope store:write
POST /api/v1/store/products/{id}/status
Set a product in this organisation to draft, active, or archived. A product from another organisation is not found.
scope store:write
GET /api/v1/store/products
List store products
scope store:read
POST /api/v1/store/products
Create a draft product in a store owned by this organisation. price_incl_cents is an integer number of cents. kind is physical or digital. vat_treatment is a known rate. weight_grams is whole grams, or omitted. An unknown kind, rate, or weight is rejected. The list includes each option and its price, stock, and the product's image ids.
scope store:write
GET /api/v1/store/collections
List collections in a shop, including the products in each one.
scope store:read
POST /api/v1/store/collections
Create a collection in a shop owned by this organisation. The slug comes from the title when it is omitted. A reserved slug is refused. product_ids must already belong to this shop. A slug already used in the shop is rejected.
scope store:write
PATCH /api/v1/store/collections/{id}
Update a collection in this organisation. Send title, slug, product_ids, or any of them. product_ids is the full list. A new title without a slug moves the slug along. A product from another shop is refused. A collection from another organisation is not found.
scope store:write
DELETE /api/v1/store/collections/{id}
Remove a collection in this organisation. A collection that a discount is scoped to is a conflict: change or remove that discount first.
scope store:write
GET /api/v1/store/discounts
List shop discounts, including how many times each code has been used.
scope store:read
POST /api/v1/store/discounts
Create a discount in a shop owned by this organisation. kind is percent or fixed. percent_bps is an integer from 1 to 10000. amount_incl_cents is an integer number of cents. A window without an offset is Europe/Amsterdam. A code already used in the shop is rejected.
scope store:write
PATCH /api/v1/store/discounts/{id}
Update a discount in this organisation. Only the fields in the body change. The number of uses stays. A discount from another organisation is not found.
scope store:write
DELETE /api/v1/store/discounts/{id}
Remove a discount in this organisation that has never been used. A used code stays on its orders and is a conflict: pause it instead.
scope store:write
POST /api/v1/store/discounts/{id}/status
Pause or resume a discount in this organisation. status is active or paused. A discount from another organisation is not found.
scope store:write
GET /api/v1/store/shipping
List shipping zones and rates for a shop in this organisation.
scope store:read
POST /api/v1/store/shipping/zones
Create a shipping zone. countries are two-letter codes. An empty list is the rest of the world. A word that is not a code is rejected. A shop from another organisation is not found.
scope store:write
PATCH /api/v1/store/shipping/zones/{id}
Update a shipping zone in this organisation. Only the fields in the body change. Rates in the zone stay. A zone from another organisation is not found.
scope store:write
DELETE /api/v1/store/shipping/zones/{id}
Remove a shipping zone that has no rates. A zone that still has rates is rejected. A zone from another organisation is not found.
scope store:write
POST /api/v1/store/shipping/rates
Create a shipping rate in a zone of this organisation. price_incl_cents is an integer number of cents. carrier is manual, postnl, dhl, dpd, ups, or gls. A minimum weight above the maximum is rejected.
scope store:write
PATCH /api/v1/store/shipping/rates/{id}
Update a shipping rate in this organisation. Only the fields in the body change. The rate stays in its zone. A rate from another organisation is not found.
scope store:write
DELETE /api/v1/store/shipping/rates/{id}
Remove a shipping rate in this organisation. Past orders keep the rate name already stored. A rate from another organisation is not found.
scope store:write
GET /api/v1/store/pages
List shop pages in this organisation. An unreadable document is null. Drafts are included.
scope store:read
POST /api/v1/store/pages
Create a draft page in a shop owned by this organisation. The slug is taken from the title when it is omitted. A shop from another organisation is not found.
scope store:write
PATCH /api/v1/store/pages/{id}
Update a page in this organisation. Only the fields in the body change. An unreadable stored document must be replaced in the same request. The shop home cannot be unpublished. A slug must be a page address. A reserved slug is refused. A slug already used in the shop is rejected. A page from another organisation is not found.
scope store:write
DELETE /api/v1/store/pages/{id}
Remove a page in this organisation. The shop home is a conflict: make another published page the home first. Links to the removed address stay until you change them.
scope store:write
POST /api/v1/store/pages/{id}/home
Make a published page the shop home. The previous home stops being the home. A draft is rejected. A page from another organisation is not found.
scope store:write
GET /api/v1/store/orders
List store orders with lines, the discount, the shipping amount, the chosen shipping method, and the shipping address. A free method is still named. The buyer link is not included. Older orders are on the next page: pass cursor from next_cursor. status narrows the list to one order status.
scope store:read
POST /api/v1/store/orders/{id}/fulfill
Mark a paid order in this organisation as shipped. A tracking URL, when set, must start with https://. Customer email and address are not returned.
scope store:write
POST /api/v1/store/orders/{id}/refund
Refund a paid or shipped order in this organisation. The payment goes back through the shop's payment provider, then a credit note is issued. A later call on an already refunded order changes nothing. The response includes the credit note id. Customer email is not returned.
scope store:write
GET /api/storefront/pages
Published pages, theme, header and footer for the shop in x-cijfr-storefront-token. Drafts are left out. A site returns its pages and no catalogue. The page id is not included.
scope none
GET /api/storefront/products
List active products for the shop in x-cijfr-storefront-token. Prices are integer cents including VAT, and they are the amount checkout charges for one item. from_price_incl_cents is the lowest price the buyer can still choose. price_from is true when those options differ. A sold-out cheaper option does not set that price while another option is in stock. available is true when the buyer can add it. A digital product with no file is not available. The quantity is not included. A site is not a store.
scope none
GET /api/storefront/products/{slug}
One active product in this shop. Prices are the amount checkout charges for one item. from_price_incl_cents is the lowest price the buyer can still choose. A product from another shop, or a site, is not found.
scope none
POST /api/storefront/shipping
Quote shipping for this shop without opening an order. country is two letters. Prices are whole cents. A site is not a store.
scope none
POST /api/storefront/checkout
Start checkout for this shop. The server prices the lines, requires a complete address, and returns the payment URL. A shop without a KvK number does not open an order. When expectedTotalCents is set, the order opens only at that total. When cartToken is set, those quantities leave that cart before the order opens, and they go back if the order does not open. A second checkout of the same cart does not open another order. A site is not a store.
scope none
GET /api/storefront/cart
Read one cart for the shop in x-cijfr-storefront-token. Pass the cart token as token. The response uses server prices and does not rotate the token. Repeated lines of one option are returned as one line. checkout is cart when nothing is left, lines when the cart holds more than 40 products, null when every line can be bought, otherwise product, file, stock, or quantity. quantity means the same option adds up to more than 99. Products past 40 stay in the response. total_incl_cents is the shelf line. charge_incl_cents is the amount checkout charges for that line before a discount and before shipping. payable_goods_incl_cents is the goods total of those charges. It is null when checkout is not null. A cart from another shop is not found. A site is not a store.
scope none
POST /api/storefront/cart
Add a product, or set an absolute quantity when set is true. Quantity 0 removes the line. The response token replaces the previous cart token. A parallel add is applied to the newer cart. Three lost races are a conflict. Prices are the server prices. Repeated lines of one option are returned as one line. checkout is cart when nothing is left, lines when the cart holds more than 40 products, null when every line can be bought, otherwise product, file, stock, or quantity. A new product is refused once the cart holds 40. Products already stored stay. quantity means the same option adds up to more than 99. total_incl_cents is the shelf line. charge_incl_cents is the amount checkout charges for that line before a discount and before shipping. payable_goods_incl_cents is the goods total of those charges. It is null when checkout is not null. A digital product with no file is refused.
scope none
GET /api/v1/sign/envelopes
List sign envelopes
scope sign:read
POST /api/v1/sign/envelopes
Create a draft envelope from a PDF. This does not send. A request that asks to send is rejected. An envelope without fields is never sent from this endpoint. Place fields in the workspace before sending.
scope sign:write
GET /api/v1/kyoosk/orders
List KYOOSK orders with their lines. Paid orders carry the receipt document_id
scope kyoosk:read
GET /api/v1/kyoosk/products
List KYOOSK menu products
scope kyoosk:read
GET /api/v1/kyoosk/kiosks
List KYOOSK kiosks. Device tokens and PIN hashes are never returned
scope kyoosk:read
GET /api/v1/openapi
This OpenAPI document as JSON (unauthenticated, CORS open)
scope none
POST /api/v1/credits
Add mail credits
scope credits:write
- orgId string uuid
- credits integer
- reason string