PaperTotal API
The PaperTotal API. Send a key as Authorization: Bearer ptk_live_.... A key reaches one workspace and only the scopes it was given. An OAuth access token (pta_...) goes on the same header and reaches the same routes, within the scopes the person granted.
Requests are limited per workspace, across all of its keys and tokens: 600 a minute on Business, 120 on Pro, 60 on Starter and 30 with no plan. Past that the API answers 429 with code RATE_LIMITED and a Retry-After header.
Money is an integer in minor units with a currency code, dates are YYYY-MM-DD, and every error has the same body with a stable code and a message written for a person.
Sending a file. Ask POST /v1/uploads for a ticket, saying what the file is for (purpose), its type and its size in bytes. PUT exactly that many bytes to the ticket's url, with its headers and no others: the file goes straight to storage and never through this API. Then call the route the file is for with JSON naming uploadId where it would otherwise take a multipart file: POST /v1/documents or any other route that reads a document, such as POST /v1/documents/classify, POST /v1/parse or POST /v1/split, for document, POST /v1/expenses/{id}/receipts for expense_receipt, POST /v1/mileage/{id}/odometer-photos for odometer_photo, POST /v1/approvals/policy for policy_document, the statement imports under /v1/payment-accounts for statement, and POST /v1/attachments for attachment. Nothing counts until that route has checked the stored file: its bytes decide its type, and a file that is not acceptable is refused there and deleted. The ticket stops working at expiresAt, and a failed PUT is treated as an expired one: ask for a new ticket and try once more. A multipart file on the same routes still works, and is the simple way for a script.
A key can require signed requests. Send X-PaperTotal-Request-Timestamp with the Unix time and X-PaperTotal-Request-Signature with the hex HMAC-SHA256 of "<timestamp>.<METHOD>.<path and query>.<raw body>", using the key's client secret. A signature is good for 30 minutes either way, and one that is sent is always checked. It covers a JSON body or none, so send a file as file_data when signing.
Base URL: https://api.papertotal.com
Need help with the API? Write to [email protected] with the X-Request-Id of the call. A person answers by email.
Try a call from the web app, with your own session or a key you paste.
analytics
GET /v1/analytics/by-category Spending by category
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json Breakdown
GET /v1/analytics/by-department Spending by department
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json Breakdown
GET /v1/analytics/by-member Spending by member
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json Breakdown
GET /v1/analytics/by-merchant Spending by merchant
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json Breakdown
GET /v1/analytics/by-project Spending by project
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json Breakdown
GET /v1/analytics/by-tag Spending by tag
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json Breakdown
GET /v1/analytics/summary Spending totals for a period, with the period before it
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json AnalyticsSummary
GET /v1/analytics/trend Spending over time
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
limit | query | integer |
interval | query | day week month quarter year running |
groupCurrency | query | string |
Response
200 Success.
application/json Trend
api keys
GET /v1/api-keys/verify See what the calling key grants
Any key may call this about itself, whatever its scopes. It says what the key can reach, in which workspace, and until when. Every other route under /v1/api-keys takes a person, so a key cannot mint a stronger key.
Any API key can call this, whatever its scopes. Try it
Response
200 Success.
application/json ApiKeyVerification
attachments
POST /v1/attachments Make a file a comment or a message can carry
From a finished upload with the purpose attachment. Name its id in attachmentIds on a comment or a message. A file nothing names is deleted after a week.
Needs the expenses:write scope. Needs a live plan. Try it
Request body
application/json CreateAttachmentInput
Response
201 Success.
application/json Attachment
automation rules
GET /v1/automation-rules List automation rules
The workspace's rules, top to bottom. The first rule to set a field wins it.
Needs the rules:read scope. Try it
Response
200 Success.
application/json AutomationRuleList
POST /v1/automation-rules Add an automation rule
Conditions match on the expense, its line items, its tags and flags, the words on its document, or a question for Claude.
Needs the rules:write scope. Needs the policies.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Request body
application/json AutomationRuleInput
Response
201 Success.
application/json AutomationRule
DELETE /v1/automation-rules/{id} Delete an automation rule
Needs the rules:write scope. Needs the policies.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
PATCH /v1/automation-rules/{id} Change an automation rule
Needs the rules:write scope. Needs the policies.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateAutomationRuleInput
Response
200 Success.
application/json AutomationRule
POST /v1/automation-rules/{id}/apply Run a rule over expenses not yet submitted
A field a person set keeps their value. Running it twice changes nothing more.
Needs the rules:write scope. Needs the policies.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json AutomationApply
POST /v1/automation-rules/{id}/test Count what a saved rule would match
Changes nothing.
Needs the rules:write scope. Needs the policies.manage permission. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json AutomationPreview
GET /v1/automation-rules/export Export automation rules as a file
Every workspace rule, in order, with names in place of ids, so another workspace can import it. Needs policies.manage.
Needs the rules:read scope. Needs the policies.manage permission. Try it
Response
200 Success.
application/json RulesDocument
POST /v1/automation-rules/import Import automation rules from CSV
Needs the rules:write scope. Needs the policies.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Request body
application/json CatalogImportInput
Response
200 Success.
application/json CatalogImportResult
POST /v1/automation-rules/import-file Import automation rules from a file
Takes what the export route gives. Each name is looked up in this workspace, and a rule that names something it does not have comes back in errors, with the reason. A rule already here is skipped.
Needs the rules:write scope. Needs the policies.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Request body
application/json RulesDocument
Response
200 Success.
application/json CatalogImportResult
POST /v1/automation-rules/preview Count what some conditions would match
Changes nothing. The sample shows expenses, so it needs rules:write and policies.manage.
Needs the rules:write scope. Needs the policies.manage permission. Try it
Request body
application/json AutomationPreviewInput
Response
200 Success.
application/json AutomationPreview
POST /v1/automation-rules/reorder Put the rules in a new order
Needs the rules:write scope. Needs the policies.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Request body
application/json ReorderAutomationRulesInput
Response
200 Success.
application/json AutomationRuleOrder
bank statements
POST /v1/bank-statements Read a bank statement
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
202 Accepted. The document is still being read.
application/json DocumentUpload
POST /v1/bank-statements/async Read a bank statement in the background
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
bank statements set
GET /v1/bank-statements-set List bank statement sets
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json DocumentSetPage
POST /v1/bank-statements-set Split a PDF of bank statements and read each one
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Up to 250 pages and 50 MB. Answers at once. bank_statement_set.created says when every statement is read, and bank_statement_set.failed why not. Account numbers are masked in every view.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
202 Success.
application/json DocumentSet
GET /v1/bank-statements-set/{id} Get a bank statement set
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentSet
billing
GET /v1/billing Get the plan, seats and this month's usage
POST /v1/billing/cancel Cancel the subscription
GET /v1/billing/invoices List invoices
Newest first, from Stripe, with Stripe's own links to each invoice's page and PDF. A plan bought in a store has its invoices there.
Needs the billing:read scope. Needs the billing.manage permission. Try it
Response
200 Success.
application/json BillingInvoicePage
blueprints
GET /v1/blueprints List blueprints
This workspace's own, then the built-in catalogue.
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
documentType | query | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
Response
200 Success.
application/json BlueprintList
POST /v1/blueprints Create a blueprint
A strict subset of JSON schema: object, array, string, number, integer and boolean, nested up to four levels and up to 150 fields. A keyword outside it, such as $ref, pattern or anyOf, is refused by name. Needs settings.manage.
Needs the documents:write scope. Needs the settings.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Request body
application/json CreateBlueprintInput
Response
201 Success.
application/json Blueprint
DELETE /v1/blueprints/{name} Delete a blueprint
Results it made stay, and its name can be used again.
Needs the documents:write scope. Needs the settings.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
name required | path | string |
Response
204 Done, with no content.
GET /v1/blueprints/{name} Get a blueprint
PATCH /v1/blueprints/{name} Change a blueprint
A new schema or new field guidance adds a version. Results keep the version that made them.
Needs the documents:write scope. Needs the settings.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
name required | path | string |
Request body
application/json UpdateBlueprintInput
Response
200 Success.
application/json Blueprint
POST /v1/blueprints/draft Propose a blueprint from a sample
Multipart, or JSON naming an uploadId from POST /v1/uploads. Reads one sample and proposes fields. Nothing is saved until it is sent to POST /v1/blueprints. Costs one scan.
Needs the documents:write scope. Needs the settings.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Request body
multipart/form-data
file required | string (binary) |
application/json
uploadId required | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
Response
201 Success.
application/json BlueprintDraft
GET /v1/blueprints/draft/{documentId} Get a proposed blueprint
The document id from proposing one. Answers READING until it has been read.
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
documentId required | path | string |
Response
200 Success.
application/json BlueprintDraft
budgets
GET /v1/budgets List budgets
Needs the expenses:read scope. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json BudgetPage
GET /v1/budgets/{id} Get a budget and how it stands
business cards
POST /v1/business-cards Read a business card
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
202 Accepted. The document is still being read.
application/json DocumentUpload
categories
GET /v1/categories List categories
Needs the expenses:read scope. Try it
Parameters
q | query | string |
enabled | query | string |
type | query | EXPENSE COGS INCOME REFUND |
origin | query | SYSTEM CUSTOM ACCOUNTING |
headers | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json CategoryPage
POST /v1/categories Create a category
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Request body
application/json CategoryInput
Response
201 Success.
application/json Category
DELETE /v1/categories/{id} Delete a category
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/categories/{id} Get a category
PATCH /v1/categories/{id} Change a category
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateCategoryInput
Response
200 Success.
application/json Category
POST /v1/categories/import Import categories from CSV
Send the CSV as text/plain, or as JSON with a csv field. Rows that match an existing category update it. Columns: Name, Enabled, GL code, Payroll code, Comment required, Comment hint, Max expense. With mode=replace the list becomes what the file says: a category it leaves out is deleted, or turned off if something uses it, and a file with a row it cannot read changes nothing.
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
mode | query | merge replace |
Request body
application/json CatalogImportInput
Response
201 Success.
application/json CatalogImportResult
check with document
POST /v1/check-with-document Read a check with its remittance
Two documents, read apart: the check, and what came with it.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json CheckWithDocumentInput
Response
201 Success.
application/json CheckWithDocument
202 Accepted. One or both are still being read.
application/json CheckWithDocument
checks
POST /v1/checks Read a bank check
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
202 Accepted. The document is still being read.
application/json DocumentUpload
POST /v1/checks/async Read a bank check in the background
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
clients
GET /v1/clients GET /v1/clients
Needs the expenses:read scope. Try it
Response
POST /v1/clients POST /v1/clients
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Response
DELETE /v1/clients/{id} DELETE /v1/clients/:id
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
GET /v1/clients/{id} GET /v1/clients/:id
PATCH /v1/clients/{id} PATCH /v1/clients/:id
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
contacts
GET /v1/contacts List contacts
Needs the contacts:read scope. Try it
Parameters
q | query | string |
documentId | query | string |
name | query | string |
company | query | string |
email | query | string |
phone | query | string |
website | query | string |
city | query | string |
region | query | string |
postalCode | query | string |
country | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ContactPage
GET /v1/contacts/{id} Get a contact
GET /v1/contacts/{id}/vcard Download a contact as a vCard
Needs the contacts:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
text/vcard string (binary)
POST /v1/contacts/export Export contacts as vCard or CSV
Needs the contacts:read scope. Try it
Request body
application/json ContactExportInput
Response
200 Success.
text/vcard string (binary)
text/csv string (binary)
custom fields
GET /v1/custom-fields List custom fields
Needs the expenses:read scope. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json CustomFieldPage
GET /v1/custom-fields/{id} Get a custom field
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json CustomField
documents
GET /v1/documents List documents
Ranges take __gt, __gte, __lt and __lte on created, updated, issued, total and tax: created__gte=2026-01-01, total__lt=5000. Issued, total and tax are what the document's expense holds, with whatever a person corrected, and a document with no expense has none. A day covers all of itself. order_by sorts, and a leading minus sorts down: -total. A document with no value comes last either way. A cursor resumes the created order only, so any other order pages with offset or page. is_empty names fields that must be empty. q searches the title, file name, notes, OCR text and extracted fields in any case; with an asterisk it searches the OCR text and extracted fields, case sensitive, and returns at most the newest 5,000 matches.
Needs the documents:read scope. Try it
Parameters
type | query | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
status | query | UPLOADED PROCESSING PROCESSED FAILED |
source | query | WEB IOS ANDROID EMAIL API MAIL_IN INTEGRATION |
source_id | query | string |
external_id | query | string |
blueprint_name | query | string |
owner | query | string |
device_id | query | string |
device_user_uuid | query | string |
viewed | query | boolean |
trashed | query | boolean |
envelope | query | string |
created__gt | query | string or string (date-time) |
created__gte | query | string or string (date-time) |
created__lt | query | string or string (date-time) |
created__lte | query | string or string (date-time) |
updated__gt | query | string or string (date-time) |
updated__gte | query | string or string (date-time) |
updated__lt | query | string or string (date-time) |
updated__lte | query | string or string (date-time) |
issued | query | string |
issued__gt | query | string |
issued__gte | query | string |
issued__lt | query | string |
issued__lte | query | string |
total | query | integer |
total__gt | query | integer |
total__gte | query | integer |
total__lt | query | integer |
total__lte | query | integer |
tax | query | integer |
tax__gt | query | integer |
tax__gte | query | integer |
tax__lt | query | integer |
tax__lte | query | integer |
currency | query | string |
category | query | string |
vendor | query | string |
notes | query | string |
payment_type | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
last_four_digits | query | string |
first_name | query | string |
last_name | query | string |
work_phone | query | string |
cell_phone | query | string |
company | query | string |
email | query | string |
website | query | string |
country | query | string |
state | query | string |
city | query | string |
zip | query | string |
name | query | string |
is_empty | query | string |
order_by | query | created updated issued total tax -created -updated -issued -total -tax |
folderId | query | string |
mailInBatchId | query | string |
setId | query | string |
externalId | query | string |
tag | query | string |
archived | query | boolean |
unviewed | query | boolean |
q | query | string |
from | query | string |
to | query | string |
fraudColor | query | GREEN YELLOW RED |
fraudSignal | query | digital_tampering fraudulent_pdf fraudulent_image generated_document ai_generated lcd_photo screenshot digital_background not_a_document duplicate similar_documents handwritten_characters invalid_qr_data invalid_mrz_data suspicious_content data_inconsistency vendor_layout_mismatch total_in_words_mismatch aspect_ratio_mismatch high_velocity critical_velocity multiple_profiles_or_devices fraud_history blocked_device other |
fraudReview | query | PENDING FRAUD NOT_FRAUD UNKNOWN |
limit | query | integer |
cursor | query | string |
offset | query | integer |
page | query | integer |
page_size | query | integer |
track_total_results | query | boolean |
Response
200 Success.
application/json DocumentList
POST /v1/documents Upload a file
Multipart, or JSON naming an uploadId from POST /v1/uploads. The file's type comes from its bytes. Use a JPEG, PNG, WebP, HEIC, TIFF, PDF, DOCX, XLSX, CSV, TXT, HTML, EML or ZIP file. Up to 25 MB, or 50 MB for a PDF sent to be split into a set of documents. Reads best at 300 DPI for a PDF and 1000 pixels on the shorter side of an image. A ZIP unpacks into one document per file, up to 200 files and 200 MB, and each file counts against the plan. A ZIP inside a ZIP is refused. With a key this waits for the reading and answers with it, unless async is set. Name a type, or leave it out and the classifier says what it is.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
client | query | ios androidThe app sending the file. Leave it out in a browser. |
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
tags | array of string |
categories | array of string |
taxonomy | array of string |
allowed_async_enrichments | array of duplicates similar_documents line_item_expansion line_item_categorization line_item_custom_categorization xero_line_coding address_parsing fraud rules vendor_resolution |
bounding_boxes | boolean |
confidence_details | boolean |
compute | boolean |
parse_address | boolean |
country | string |
max_pages_to_process | integer |
boost_mode | boolean |
auto_delete | boolean |
stitch | boolean |
crop_document | boolean |
blueprint_name | string |
blueprint_version | integer |
async | boolean |
line_item_expansion | boolean |
tiff_dpi | number |
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
clientId | string |
externalId | string |
folderId | string |
notes | string |
capturedAt | string (date-time) |
latitude | number |
longitude | number |
locationAccuracyM | number |
deviceId | string |
merchantName | string |
date | string |
totalMinor | integer |
taxMinor | integer |
category | string |
application/json
uploadId required | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
tags | array of string |
categories | array of string |
taxonomy | array of string |
allowed_async_enrichments | array of duplicates similar_documents line_item_expansion line_item_categorization line_item_custom_categorization xero_line_coding address_parsing fraud rules vendor_resolution |
bounding_boxes | boolean |
confidence_details | boolean |
compute | boolean |
parse_address | boolean |
country | string |
max_pages_to_process | integer |
boost_mode | boolean |
auto_delete | boolean |
stitch | boolean |
crop_document | boolean |
blueprint_name | string |
blueprint_version | integer |
async | boolean |
line_item_expansion | boolean |
tiff_dpi | number |
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
clientId | string |
externalId | string |
folderId | string |
notes | string |
capturedAt | string (date-time) |
latitude | number |
longitude | number |
locationAccuracyM | number |
deviceId | string |
merchantName | string |
date | string |
totalMinor | integer |
taxMinor | integer |
category | string |
Response
201 Success.
application/json DocumentUpload
DELETE /v1/documents/{id} Delete a document
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/documents/{id} Get a document and its extraction
Links are signed again on every read, with no new reading. detailed=true adds the reading with each field wrapped as value, score, ocrScore, rotation, boundingBox, boundingRegion and enriched. with_scores=true adds lineItemsWithScores and taxLinesWithScores. recordStatus says processed, reviewed or archived. bounding_boxes=true adds every line read with its box and four corners, and where each field was read from: boundingBox as [page, x1, y1, x2, y2] and boundingRegion as [x1, y1, x2, y2, x3, y3, x4, y4], both as fractions of the page. confidence_details=true adds how sure the read of each field was. Both can be sent on a submission too.
Needs the documents:read scope. Try it
Parameters
id required | path | string |
bounding_boxes | query | boolean |
confidence_details | query | boolean |
detailed | query | boolean |
with_scores | query | boolean |
Response
200 Success.
application/json DocumentDetail
PATCH /v1/documents/{id} Change a document
status REVIEWED marks it checked, approved sets your own flag, fraudReview records a decision, and billable, merchantName and the totals change its expense, under the rules of PATCH /v1/expenses/{id}. What can be refused is checked first, so nothing changes when any of it is.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateDocumentInput
Response
200 Success.
application/json Document
PUT /v1/documents/{id} Change a document, for a client written for PUT
The same as PATCH: it changes what the body names and nothing else.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateDocumentInput
Response
200 Success.
application/json Document
POST /v1/documents/{id}/cancel Stop reading a document
POST /v1/documents/{id}/crop Crop a photo
A box as fractions of the page as it shows now. The original stays as it came: a new page is drawn from it and read again, and it stays cropped through every later read. Only images can be cropped.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json CropDocumentInput
Response
200 Success.
application/json Document
POST /v1/documents/{id}/fraud-review Record a person's decision on a document
Fraud, not fraud or unknown, with the signals they agree with. A re-read replaces the evidence and leaves this alone. Nobody decides on their own upload except the workspace owner.
Needs the documents:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Request body
application/json FraudReviewInput
Response
200 Success.
application/json Document
DELETE /v1/documents/{id}/line-items Delete every line item
The total stays as the receipt printed it.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/documents/{id}/line-items List a document's line items
Needs the documents:read scope. Try it
Parameters
id required | path | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ExpenseLinePage
POST /v1/documents/{id}/line-items Add a line item
The lines of the document's expense. When they added up to its total, a change to one moves the total and the converted amount with it. Refused once the expense is on a submitted report.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json ExpenseLineInput
Response
201 Success.
application/json ExpenseLine
DELETE /v1/documents/{id}/line-items/{lineId} Delete a line item
The lines of the document's expense. When they added up to its total, a change to one moves the total and the converted amount with it. Refused once the expense is on a submitted report.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
lineId required | path | string |
Response
204 Done, with no content.
GET /v1/documents/{id}/line-items/{lineId} Get a line item
Needs the documents:read scope. Try it
Parameters
id required | path | string |
lineId required | path | string |
Response
200 Success.
application/json ExpenseLine
PATCH /v1/documents/{id}/line-items/{lineId} Change a line item
The lines of the document's expense. When they added up to its total, a change to one moves the total and the converted amount with it. Refused once the expense is on a submitted report.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
lineId required | path | string |
Request body
application/json UpdateExpenseLineInput
Response
200 Success.
application/json ExpenseLine
GET /v1/documents/{id}/ofx Download a bank statement as OFX
OFX 1.0.2, the file accounting software and personal finance programs import, from the latest reading of a bank statement: the rules' reading, Claude's, or the bank_statement blueprint's. Each account on the statement gets its own transactions, with FITIDs that stay the same each time. Account and routing numbers are masked, so match the file to an account when importing it. A document that is not a statement, or one with nothing read from it, answers 409 saying which.
Needs the documents:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/x-ofx string (binary)
GET /v1/documents/{id}/original Get a short-lived link to the original file
Needs the documents:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentOriginal
GET /v1/documents/{id}/pdf Download a document as a PDF
A file that already is a PDF answers 302 to a short-lived link on storage, so follow the redirect, without your Authorization header. Anything else is built on the spot and comes back here.
Needs the documents:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/pdf string (binary)
POST /v1/documents/{id}/reprocess Read a document again
POST /v1/documents/{id}/reveal Open the bank and tax numbers read from a document
Needs the documents.reveal permission and, for a key, the documents:reveal scope. Every call writes an audit row. Also returns a link to the original file and, for a check, its TIFF images. Nothing else hands these out.
Needs the documents:reveal scope. Needs the documents.reveal permission. Try it
Parameters
id required | path | string |
Request body (optional)
application/json RevealDocumentInput
Response
200 Success.
application/json RevealedDocument
POST /v1/documents/{id}/rotate Turn a page
A quarter turn, counter-clockwise by default. The original stays as it came: a new page is drawn from it and read again, and it stays turned through every later read.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body (optional)
application/json RotateDocumentInput
Response
200 Success.
application/json Document
POST /v1/documents/{id}/split Split a PDF already uploaded
Every page, or the ranges given. Each part is a document and counts as a scan, and the whole goes to the trash once the parts exist.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
client | query | ios androidThe app sending the file. Leave it out in a browser. |
Request body
application/json SplitDocumentInput
Response
202 Success.
application/json DocumentSet
DELETE /v1/documents/{id}/tags Take every tag off a document
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/documents/{id}/tags List a document's tags
Any type of document: receipts, checks, bank statements, business cards, contracts, tax forms and the rest.
Needs the documents:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentTagList
POST /v1/documents/{id}/tags Add several tags to a document
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json DocumentTagsInput
Response
200 Success.
application/json DocumentTagList
PUT /v1/documents/{id}/tags Add a tag to a document
By name. A name the workspace does not have makes the tag. Adding one it already has changes nothing.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json DocumentTagInput
Response
200 Success.
application/json DocumentTagList
DELETE /v1/documents/{id}/tags/{tagId} Take a tag off a document
The tag stays in the workspace.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
tagId required | path | string |
Response
204 Done, with no content.
GET /v1/documents/{id}/tax-lines List a document's tax lines
Needs the documents:read scope. Try it
Parameters
id required | path | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ExpenseTaxLinePage
POST /v1/documents/{id}/tax-lines Add a tax line
The expense's tax is the sum of its tax lines. When its total was what is under the tax and on top of it, the total moves with the tax. Refused once the expense is on a submitted report.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json ExpenseTaxLineInput
Response
201 Success.
application/json ExpenseTaxLine
DELETE /v1/documents/{id}/tax-lines/{taxLineId} Delete a tax line
The expense's tax is the sum of its tax lines. When its total was what is under the tax and on top of it, the total moves with the tax. Refused once the expense is on a submitted report.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
taxLineId required | path | string |
Response
204 Done, with no content.
GET /v1/documents/{id}/tax-lines/{taxLineId} Get a tax line
Needs the documents:read scope. Try it
Parameters
id required | path | string |
taxLineId required | path | string |
Response
200 Success.
application/json ExpenseTaxLine
PATCH /v1/documents/{id}/tax-lines/{taxLineId} Change a tax line
The expense's tax is the sum of its tax lines. When its total was what is under the tax and on top of it, the total moves with the tax. Refused once the expense is on a submitted report.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
taxLineId required | path | string |
Request body
application/json UpdateExpenseTaxLineInput
Response
200 Success.
application/json ExpenseTaxLine
GET /v1/documents/{id}/text Get the text read from a document
Needs the documents:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentText
POST /v1/documents/any Read a document with a blueprint
Multipart with a field named file, or JSON with uploadId, file_url or file_data. The answer is in blueprint.result. Without a Claude key on the server, blueprint.error says so and the text is still read. 20 pages by default and 50 at most.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
blueprint_name required | string |
blueprint_version | integer |
max_pages_to_process | integer |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
blueprint_name required | string |
blueprint_version | integer |
max_pages_to_process | integer |
Response
201 Success.
application/json Document
POST /v1/documents/any/async Read a document with a blueprint, in the background
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Answers at once. document.processed says when it is done.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
blueprint_name required | string |
blueprint_version | integer |
max_pages_to_process | integer |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
blueprint_name required | string |
blueprint_version | integer |
max_pages_to_process | integer |
Response
202 Success.
application/json Document
POST /v1/documents/batch Submit up to 100 addresses at once
Answers at once with a set. Each address becomes a document with its own webhook, and an address that fails is listed under refused without stopping the rest.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json BatchDocumentsInput
Response
202 Success.
application/json DocumentSet
POST /v1/documents/bulk Act on many documents
Send ids, or a filter to act on everything that matches. With a filter, call again with nextCursor until it is null.
Needs the documents:write scope. Needs a live plan. Try it
Request body
application/json BulkDocumentInput
Response
200 Success.
application/json BulkDocumentResult
POST /v1/documents/classify Say what a document is
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Answers with a value and a score, from the built-in list or from document_types. It works with no Claude key for the common types, and Claude only decides what the rules cannot.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
document_types | array of string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
document_types | array of string |
Response
201 Success.
application/json Classification
GET /v1/documents/count Count the documents a filter matches
Needs the documents:read scope. Try it
Parameters
type | query | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
status | query | UPLOADED PROCESSING PROCESSED FAILED |
source | query | WEB IOS ANDROID EMAIL API MAIL_IN INTEGRATION |
source_id | query | string |
external_id | query | string |
blueprint_name | query | string |
owner | query | string |
device_id | query | string |
device_user_uuid | query | string |
viewed | query | boolean |
trashed | query | boolean |
envelope | query | string |
created__gt | query | string or string (date-time) |
created__gte | query | string or string (date-time) |
created__lt | query | string or string (date-time) |
created__lte | query | string or string (date-time) |
updated__gt | query | string or string (date-time) |
updated__gte | query | string or string (date-time) |
updated__lt | query | string or string (date-time) |
updated__lte | query | string or string (date-time) |
issued | query | string |
issued__gt | query | string |
issued__gte | query | string |
issued__lt | query | string |
issued__lte | query | string |
total | query | integer |
total__gt | query | integer |
total__gte | query | integer |
total__lt | query | integer |
total__lte | query | integer |
tax | query | integer |
tax__gt | query | integer |
tax__gte | query | integer |
tax__lt | query | integer |
tax__lte | query | integer |
currency | query | string |
category | query | string |
vendor | query | string |
notes | query | string |
payment_type | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
last_four_digits | query | string |
first_name | query | string |
last_name | query | string |
work_phone | query | string |
cell_phone | query | string |
company | query | string |
email | query | string |
website | query | string |
country | query | string |
state | query | string |
city | query | string |
zip | query | string |
name | query | string |
is_empty | query | string |
order_by | query | created updated issued total tax -created -updated -issued -total -tax |
folderId | query | string |
mailInBatchId | query | string |
setId | query | string |
externalId | query | string |
tag | query | string |
archived | query | boolean |
unviewed | query | boolean |
q | query | string |
from | query | string |
to | query | string |
fraudColor | query | GREEN YELLOW RED |
fraudSignal | query | digital_tampering fraudulent_pdf fraudulent_image generated_document ai_generated lcd_photo screenshot digital_background not_a_document duplicate similar_documents handwritten_characters invalid_qr_data invalid_mrz_data suspicious_content data_inconsistency vendor_layout_mismatch total_in_words_mismatch aspect_ratio_mismatch high_velocity critical_velocity multiple_profiles_or_devices fraud_history blocked_device other |
fraudReview | query | PENDING FRAUD NOT_FRAUD UNKNOWN |
Response
200 Success.
application/json DocumentCount
POST /v1/documents/extract Say what a document is and read it, in one call
Multipart with a field named file, or JSON with uploadId, file_url or file_data. document_types may name built-in types and blueprints. Answers with extraction, or extraction_error when it could not be read.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
document_types | array of string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
document_types | array of string |
Response
201 Success.
application/json Extraction
POST /v1/documents/split Split a PDF on storage into documents
The PDF named by uploadId, from POST /v1/uploads with purpose document_set, up to 50 MB. mode says where it is cut, and detect is the default. Each part is a document, counts as a scan and is held to 25 MB: a part past that is listed under refused, and the rest are filed.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
client | query | ios androidThe app sending the file. Leave it out in a browser. |
Request body
application/json SplitUploadInput
Response
202 Success.
application/json DocumentSet
GET /v1/documents/trash List deleted documents
Each can be restored for 30 days.
Needs the documents:read scope. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json TrashedDocumentPage
POST /v1/documents/trash Restore deleted documents, or delete them for good
Needs the documents:write scope. Needs a live plan. Try it
Request body
application/json TrashActionInput
Response
200 Success.
application/json TrashActionResult
POST /v1/documents/url Submit a file by URL or base64
By default the call waits up to 30 seconds and returns the extraction with 201. With async: true, or if reading takes longer, it answers 202 and the document.processed webhook says when it is done. file_url must be public https; redirects are not followed. file_urls reads several images as one document, in order. bucket and package_path read from your own S3 bucket, with keys saved in document settings. Use a JPEG, PNG, WebP, HEIC, TIFF, PDF, DOCX, XLSX, CSV, TXT, HTML, EML or ZIP file. Up to 25 MB, or 50 MB for a PDF sent to be split into a set of documents. Reads best at 300 DPI for a PDF and 1000 pixels on the shorter side of an image. A ZIP unpacks into one document per file, up to 200 files and 200 MB, and each file counts against the plan. A ZIP inside a ZIP is refused.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
202 Accepted. The document is still being read.
application/json DocumentUpload
documents set
GET /v1/documents-set List sets of documents
Includes ZIPs and batches of addresses.
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json DocumentSetPage
POST /v1/documents-set Split a PDF and read each document in it
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Up to 250 pages and 50 MB. Answers at once. Each part fires document.processed and counts as a scan, and document_set.completed says when all are read.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
202 Success.
application/json DocumentSet
GET /v1/documents-set/{id} Get a set and the documents it made
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentSet
expenses
GET /v1/expenses List expenses
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
sort | query | date:asc date:desc merchant:asc merchant:desc category:asc category:desc status:asc status:desc amount:asc amount:desc |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ExpensePage
POST /v1/expenses Create an expense
Needs the expenses:write scope. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json CreateExpenseInput
Response
201 Success.
application/json ExpenseDetail
DELETE /v1/expenses/{id} Void an expense
A voided expense stays for audit and leaves every total.
Needs the expenses:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/expenses/{id} Get an expense
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ExpenseDetail
PATCH /v1/expenses/{id} Change an expense
Send If-Match with the updatedAt you last read to make this conditional: if someone changed the expense since, it answers 409 CONFLICT with details.reason STALE_WRITE and changes nothing.
Needs the expenses:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
If-Match | header | string The expense's updatedAt, as read. |
Request body
application/json UpdateExpenseInput
Response
200 Success.
application/json ExpenseDetail
GET /v1/expenses/{id}/comments List comments on an expense
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json CommentPage
POST /v1/expenses/{id}/comments Comment on an expense
Needs the expenses:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body (optional)
application/json CommentInput
Response
201 Success.
application/json PostedComment
POST /v1/expenses/{id}/comments/{commentId}/reach Reach someone a comment on this expense could not
An expense has no participants of its own, so they join the report it is on, and then they are told. Refused when it is on no report.
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
commentId required | path | string |
Request body (optional)
application/json ReachMentionedInput
Response
200 Success.
application/json Reached
GET /v1/expenses/{id}/comments/mentionable List who a comment on this expense can mention
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json MentionablePeople
POST /v1/expenses/{id}/duplicate Copy an expense, dated today, with no receipt
GET /v1/expenses/{id}/duplicates List an expense and its possible duplicates
Every copy in the group, not just a pair. hidden counts any the caller cannot read.
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ExpenseDuplicateGroup
POST /v1/expenses/{id}/flags/{code}/dismiss Dismiss a flag on an expense
For whoever has it for approval, or someone who manages expenses. The flag goes from the expense and stays in the audit log. Not for a hold.
Needs the expenses:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
code required | path | string |
Request body (optional)
application/json DismissFlagInput
Response
200 Success.
application/json Hold
POST /v1/expenses/{id}/hold Put an expense on hold
Needs the expenses:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Request body (optional)
application/json HoldExpenseInput
Response
200 Success.
application/json Hold
POST /v1/expenses/{id}/receipts Attach a receipt to an expense
Multipart, or JSON naming an uploadId from POST /v1/uploads. add files it beside what is there, and a first receipt on a receipt expense is read onto it. replace takes the current ones to the trash and reads the new one. Fields a person changed are left alone.
Needs the documents:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
client | query | ios androidThe app sending the file. Leave it out in a browser. |
Request body
multipart/form-data
file required | string (binary) |
mode | add replace |
clientId | string |
deviceId | string |
application/json
uploadId required | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
mode | add replace |
clientId | string |
deviceId | string |
Response
201 Success.
application/json Document
POST /v1/expenses/{id}/settle-duplicates Answer a duplicate question
keep all takes the hold off every one of them. keep selected keeps this one, discards the others and can take values from them, all in one step. The submitter and whoever holds the open approval can do this on an outstanding report.
Needs the expenses:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json SettleDuplicatesInput
Response
200 Success.
application/json ExpenseDetail
POST /v1/expenses/{id}/unhold Take an expense off hold
POST /v1/expenses/bulk Change many expenses
Needs the expenses:write scope. Needs a live plan. Try it
Request body
application/json BulkExpenseInput
Response
201 Success.
application/json BulkExpenseResult
GET /v1/expenses/totals Total the expenses that match a filter, or the ones selected, in any currency
Needs the expenses:read scope. Try it
Parameters
status | query | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | query | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | query | string |
scope | query | mine all |
categoryId | query | string |
merchantId | query | string |
projectId | query | string |
clientId | query | string |
tagId | query | string |
department | query | string |
reportId | query | string |
externalId | query | string |
unreported | query | boolean |
needsReview | query | boolean |
billable | query | boolean |
reimbursable | query | boolean |
moneyFlow | query | IN OUT |
dateField | query | date createdAt updatedAt submittedAt approvedAt |
from | query | string |
to | query | string |
minMinor | query | integer |
maxMinor | query | integer |
q | query | string |
ids | query | string or array of string |
currency | query | string |
Response
200 Success.
application/json ExpenseTotals
export history
GET /v1/export-history List which documents went where
Files from exports, postings to connected services, and what programs recorded, with the id each has there. Needs expenses.read_all.
Needs the documents:read scope. Needs the expenses.read_all permission. Try it
Parameters
documentId | query | string |
target | query | string |
externalId | query | string |
via | query | EXPORT SYNC API |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ExportRecordPage
POST /v1/export-history Record that documents went somewhere
For an export a program made itself. A record already held is not written again, so a retry is safe.
Needs the documents:write scope. Needs a live plan. Try it
Request body
application/json ExportRecordInput
Response
201 Success.
application/json ExportRecordsAppended
exports
GET /v1/exports List exports
Needs the expenses:read scope. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ExportJobPage
POST /v1/exports Start an export
Filters select by expense, or by report with reportState, reportIds, startDate and endDate (one year at most), approvedAfter and exported. policyIds takes workspace ids, and a key can only name its own. template is the file's whole layout as text, with ${expense.merchant}, <#list reports as report> and <#if report.exported>, and takes CSV, TXT, JSON or XML: a mistake in it answers 422 with the line. onFinish can email the file, mark the reports it covers as exported, which needs reports:write, and upload it by SFTP. SFTP needs the host key fingerprint of the server, refuses a private address, and never returns the credentials.
Needs the expenses:read scope. Try it
Request body
application/json CreateExportInput
Response
201 Success.
application/json ExportJob
GET /v1/exports/{id} Get an export and, when ready, its link
folders
GET /v1/folders List folders
Needs the documents:read scope. Try it
Parameters
q | query | string |
parentId | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json FolderPage
POST /v1/folders Create a folder
Needs the documents:write scope. Needs the expenses.write_all permission. Needs a live plan. Try it
Request body
application/json FolderInput
Response
201 Success.
application/json Folder
DELETE /v1/folders/{id} Delete a folder
Needs the documents:write scope. Needs the expenses.write_all permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/folders/{id} Get a folder
PATCH /v1/folders/{id} Change a folder
Needs the documents:write scope. Needs the expenses.write_all permission. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateFolderInput
Response
200 Success.
application/json Folder
forwarding
GET /v1/forwarding/emails List email sent to the caller's forwarding addresses
Every message, filed or not, with the sender, subject, received time, whether it carried a file, and any file left out and why.
Needs the documents:read scope. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json InboundEmailPage
fraud
GET /v1/fraud/blocklist List blocked devices
Needs the documents:read scope. Needs the expenses.read_all permission. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json DeviceBlockPage
POST /v1/fraud/blocklist Block a device
A blocked device still captures. Its documents read red, with the reason stated, for a reviewer.
Needs the documents:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Request body
application/json BlockDeviceInput
Response
201 Success.
application/json DeviceBlock
DELETE /v1/fraud/blocklist/{deviceId} Remove a device from the blocklist
Needs the documents:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
deviceId required | path | string |
Response
204 Done, with no content.
GET /v1/fraud/blocklist/{deviceId} Check whether a device is blocked
A device nobody blocked answers blocked: false, not 404.
Needs the documents:read scope. Needs the expenses.read_all permission. Try it
Parameters
deviceId required | path | string |
Response
200 Success.
application/json DeviceBlockStatus
GET /v1/fraud/export Download the evidence on documents that match a filter
The same filter as listing documents. Needs expenses.read_all.
Needs the documents:read scope. Needs the expenses.read_all permission. Try it
Parameters
type | query | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
status | query | UPLOADED PROCESSING PROCESSED FAILED |
source | query | WEB IOS ANDROID EMAIL API MAIL_IN INTEGRATION |
source_id | query | string |
external_id | query | string |
blueprint_name | query | string |
owner | query | string |
device_id | query | string |
device_user_uuid | query | string |
viewed | query | boolean |
trashed | query | boolean |
envelope | query | string |
created__gt | query | string or string (date-time) |
created__gte | query | string or string (date-time) |
created__lt | query | string or string (date-time) |
created__lte | query | string or string (date-time) |
updated__gt | query | string or string (date-time) |
updated__gte | query | string or string (date-time) |
updated__lt | query | string or string (date-time) |
updated__lte | query | string or string (date-time) |
issued | query | string |
issued__gt | query | string |
issued__gte | query | string |
issued__lt | query | string |
issued__lte | query | string |
total | query | integer |
total__gt | query | integer |
total__gte | query | integer |
total__lt | query | integer |
total__lte | query | integer |
tax | query | integer |
tax__gt | query | integer |
tax__gte | query | integer |
tax__lt | query | integer |
tax__lte | query | integer |
currency | query | string |
category | query | string |
vendor | query | string |
notes | query | string |
payment_type | query | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
last_four_digits | query | string |
first_name | query | string |
last_name | query | string |
work_phone | query | string |
cell_phone | query | string |
company | query | string |
email | query | string |
website | query | string |
country | query | string |
state | query | string |
city | query | string |
zip | query | string |
name | query | string |
is_empty | query | string |
order_by | query | created updated issued total tax -created -updated -issued -total -tax |
folderId | query | string |
mailInBatchId | query | string |
setId | query | string |
externalId | query | string |
tag | query | string |
archived | query | boolean |
unviewed | query | boolean |
q | query | string |
from | query | string |
to | query | string |
fraudColor | query | GREEN YELLOW RED |
fraudSignal | query | digital_tampering fraudulent_pdf fraudulent_image generated_document ai_generated lcd_photo screenshot digital_background not_a_document duplicate similar_documents handwritten_characters invalid_qr_data invalid_mrz_data suspicious_content data_inconsistency vendor_layout_mismatch total_in_words_mismatch aspect_ratio_mismatch high_velocity critical_velocity multiple_profiles_or_devices fraud_history blocked_device other |
fraudReview | query | PENDING FRAUD NOT_FRAUD UNKNOWN |
Response
200 Success.
text/csv string (binary)
integrations
GET /v1/integrations List connected services and what can be connected
GET /v1/integrations/{provider}/health See how a connection stands
Needs the integrations:read scope. Needs the integrations.manage permission. Try it
Parameters
provider required | path | string The service, by its slug: quickbooks-online, quickbooks-desktop, xero, freshbooks, wave, zoho-books, sage, microsoft-dynamics, myob, oracle, sap, netsuite, gusto, hr, gmail, google-drive, dropbox, box, onedrive, slack, zapier. |
Response
200 Success.
application/json IntegrationHealth
GET /v1/integrations/{provider}/records List what was sent to a service
Each record names the expense and the id it has in the other system.
Needs the integrations:read scope. Needs the integrations.manage permission. Try it
Parameters
provider required | path | string The service, by its slug: quickbooks-online, quickbooks-desktop, xero, freshbooks, wave, zoho-books, sage, microsoft-dynamics, myob, oracle, sap, netsuite, gusto, hr, gmail, google-drive, dropbox, box, onedrive, slack, zapier. |
state | query | PENDING SYNCED FAILED SKIPPED VOIDED |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json SyncRecordPage
invitations
GET /v1/invitations List invitations
Needs the members:read scope. Needs the members.manage permission. Try it
Parameters
status | query | PENDING EXPIRED ACCEPTED REVOKED |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json InvitationPage
POST /v1/invitations Invite someone to this workspace
They join when they accept, signed in with this address. An open invitation holds a seat.
Needs the members:write scope. Needs the members.manage permission. Needs a live plan. Try it
Request body
application/json CreateInvitationInput
Response
201 Success.
application/json InvitationSent
DELETE /v1/invitations/{id} Withdraw an invitation
Works on a lapsed plan.
Needs the members:write scope. Needs the members.manage permission. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
POST /v1/invitations/{id}/resend Send an invitation again
A new link. The old one stops working.
Needs the members:write scope. Needs the members.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json InvitationSent
POST /v1/invitations/import Invite many people from CSV
Send the CSV as text/plain, or as JSON with a csv field, with an Email column and an optional Role column.
Needs the members:write scope. Needs the members.manage permission. Needs a live plan. Try it
Request body
application/json CatalogImportInput
Response
201 Success.
application/json CatalogImportResult
mail in
GET /v1/mail-in List mail-in batches
A member sees the batches they asked for.
Needs the mailin:read scope. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json MailInBatchPage
POST /v1/mail-in Request envelopes and a mail-in batch
envelopes is how many to send, and the answer says how many can still be requested this week. The estimate holds that many documents of this month's allowance. Both holds commit with the batch, or not at all. Left out, afterScan follows the workspace's shredding setting.
Needs the mailin:write scope. Needs the mail_in plan feature. Needs a live plan. Try it
Request body
application/json CreateMailInInput
Response
201 Success.
application/json MailInRequested
GET /v1/mail-in/{id} Get a mail-in batch
Needs the mailin:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json MailInBatch
PATCH /v1/mail-in/{id} Change the address on a batch
For the person who asked or a manager, until the batch finishes. A batch's code cannot be changed.
Needs the mailin:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json ChangeMailInAddressInput
Response
200 Success.
application/json MailInBatch
GET /v1/mail-in/{id}/barcode Get a batch's barcode
A Code 128 image of the batch reference.
Needs the mailin:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
image/png string (binary)
POST /v1/mail-in/{id}/cancel Cancel a batch nobody has started on
Needs the mailin:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json MailInBatch
GET /v1/mail-in/{id}/cover-sheet Get a batch's cover sheet
Needs the mailin:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/pdf string (binary)
GET /v1/mail-in/{id}/documents List what came out of a batch
Needs the mailin:read scope. Try it
Parameters
id required | path | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json MailInDocumentPage
GET /v1/mail-in/allowance See this month's paper allowance
GET /v1/mail-in/barcode Get the workspace's barcode
A Code 128 image of the workspace reference.
Needs the mailin:read scope. Try it
Response
200 Success.
image/png string (binary)
GET /v1/mail-in/cover-sheet Get the workspace's cover sheet
One page to put on top of a stack of paper, with the barcode on it.
Needs the mailin:read scope. Try it
Response
200 Success.
application/pdf string (binary)
GET /v1/mail-in/settings See your saved mail-in address
One person's own, in this workspace. Nobody else reads it.
Needs the mailin:read scope. Try it
Response
200 Success.
application/json MailInSettings
PUT /v1/mail-in/settings Save your mail-in address
Envelopes and returned paper go here when a request names no address. Null forgets it. Batches already requested keep theirs: change those one at a time.
Needs the mailin:write scope. Needs a live plan. Try it
Request body
application/json MailInSettingsInput
Response
200 Success.
application/json MailInSettings
me
DELETE /v1/me/forwarding-address Give up the chosen forwarding address
The random address keeps working. Only the chosen one stops.
Needs the documents:write scope. Try it
Response
204 Done, with no content.
POST /v1/me/forwarding-address Choose a forwarding address
Beside the random one, which keeps working. A name someone else holds is refused.
Needs the documents:write scope. Try it
Request body
application/json ForwardingAliasInput
Response
200 Success.
application/json ForwardingAlias
POST /v1/me/forwarding-address/rotate Issue a new forwarding address
members
GET /v1/members List the members of this workspace
Pay-adjacent fields stay empty unless the caller has members.manage.
Needs the members:read scope. Try it
Parameters
q | query | string |
status | query | ACTIVE SUSPENDED |
role | query | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json MemberPage
DELETE /v1/members/{id} Remove a member
Their expenses stay. Anyone may remove their own membership. Taking access away works on a lapsed plan.
Needs the members:write scope. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/members/{id} Get a member
PATCH /v1/members/{id} Change a member
Only an owner can change an owner, or make someone an owner.
Needs the members:write scope. Needs the members.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateMemberInput
Response
200 Success.
application/json Member
POST /v1/members/bulk Change many members at once
A member the rules refuse stays as they were, and the rest still change.
Needs the members:write scope. Needs the members.manage permission. Needs a live plan. Try it
Request body
application/json BulkMemberInput
Response
200 Success.
application/json BulkMemberResult
POST /v1/members/provision Provision and remove people from a list
From a request body or an https address, with a dry run. Answers with who was added, updated and removed, and who was skipped and why. A change of address needs a domain this workspace verified. SFTP is not offered.
Needs the members:write scope. Needs the members.manage permission. Try it
Request body
application/json ProvisionInput
Response
200 Success.
application/json ProvisionResult
GET /v1/members/seats See seats in use against the plan
merchants
GET /v1/merchants List merchants
Needs the expenses:read scope. Try it
Parameters
q | query | string |
archived | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json MerchantPage
POST /v1/merchants Create a merchant
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Request body
application/json CreateMerchantInput
Response
201 Success.
application/json Merchant
GET /v1/merchants/{id} Get a merchant
PATCH /v1/merchants/{id} Change a merchant
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json MerchantInput
Response
200 Success.
application/json Merchant
DELETE /v1/merchants/{id}/aliases/{aliasId} Remove a spelling from a merchant
POST /v1/merchants/{id}/merge Merge another merchant into this one
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json MergeMerchantInput
Response
200 Success.
application/json Merchant
mileage
POST /v1/mileage Record a trip
Needs the expenses:write scope. Needs the mileage plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json CreateTripInput
Response
201 Success.
application/json Trip
PUT /v1/mileage/{id} Replace a trip
Needs the expenses:write scope. Needs the mileage plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json CreateTripInput
Response
200 Success.
application/json Trip
POST /v1/mileage/{id}/odometer-photos Attach an odometer photo to a trip
Needs the expenses:write scope. Needs the mileage plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
client | query | ios androidThe app sending the file. Leave it out in a browser. |
Request body
multipart/form-data
file required | string (binary) |
reading required | START END |
application/json
uploadId required | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
reading required | START END |
Response
201 Success.
application/json Trip
GET /v1/mileage/log Read the mileage log
Needs the expenses:read scope. Try it
Parameters
from | query | string |
to | query | string |
scope | query | mine all |
ownerId | query | string |
vehicleId | query | string |
purpose | query | business medical charity |
Response
200 Success.
application/json MileageLog
GET /v1/mileage/log/export Export the mileage log
The file comes back as JSON, with its content as text.
Needs the expenses:read scope. Try it
Parameters
from | query | string |
to | query | string |
scope | query | mine all |
ownerId | query | string |
vehicleId | query | string |
purpose | query | business medical charity |
Response
200 Success.
application/json DownloadableFile
GET /v1/mileage/routes List saved routes
Needs the expenses:read scope. Try it
Parameters
q | query | string |
Response
200 Success.
application/json TripRoutes
mileage rates
GET /v1/mileage-rates List mileage rates
Needs the expenses:read scope. Try it
Parameters
q | query | string |
archived | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json MileageRatePage
GET /v1/mileage-rates/{id} Get a mileage rate
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json MileageRate
parse
GET /v1/parse List documents turned into Markdown
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
details | query | boolean |
tag | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ParsedDocumentPage
POST /v1/parse Turn a document into Markdown
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Tables and reading order are kept. details adds a box for each line, and meta holds pages, sharpness and OCR scores. Up to 50 pages.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
details | boolean |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
details | boolean |
Response
201 Success.
application/json ParsedDocument
DELETE /v1/parse/{id} Delete one
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/parse/{id} Get a document as Markdown
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
details | query | boolean |
tag | query | string |
Response
200 Success.
application/json ParsedDocument
PATCH /v1/parse/{id} Change the title, notes or tags of one
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json ParseUpdateInput
Response
200 Success.
application/json ParsedDocument
POST /v1/parse/async Turn a document into Markdown, in the background
Answers at once. document.processed says when it is done.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
details | boolean |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
details | boolean |
Response
202 Success.
application/json ParsedDocument
parse set
GET /v1/parse-set List Markdown sets
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json DocumentSetPage
POST /v1/parse-set Split a PDF and turn each document in it into Markdown
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Up to 50 MB. Answers at once.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
202 Success.
application/json DocumentSet
GET /v1/parse-set/{id} Get a Markdown set
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentSet
payment accounts
GET /v1/payment-accounts List cards and bank accounts
A member sees their own and those of the people reporting to them. Numbers are last four only.
Needs the cards:read scope. Try it
Parameters
archived | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json PaymentAccountPage
GET /v1/payment-accounts/{id} Get a card or bank account
Needs the cards:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json PaymentAccount
GET /v1/payment-accounts/{id}/statements List a card's statement periods
Needs the cards:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json CardStatements
GET /v1/payment-accounts/export Export the card table
The file comes back as JSON, with its content as text.
Needs the cards:read scope. Try it
Response
200 Success.
application/json DownloadableFile
per diem
POST /v1/per-diem Record a per diem
Meals and lodging file as separate expenses, so each deducts at its own percentage.
Needs the expenses:write scope. Needs the per_diem plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json CreatePerDiemInput
Response
201 Success.
application/json ExpenseDetails
per diem rates
GET /v1/per-diem-rates List per diem rates
Needs the expenses:read scope. Try it
Parameters
q | query | string |
archived | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json PerDiemRatePage
GET /v1/per-diem-rates/{id} Get a per diem rate
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json PerDiemRate
personal rules
GET /v1/personal-rules List a person's rules
The caller's own, or with ownerId, an employee's. Naming someone else needs policies.manage.
Needs the rules:read scope. Try it
Parameters
ownerId | query | string |
Response
200 Success.
application/json AutomationRuleList
POST /v1/personal-rules Add a rule for a person
For the caller, or with ownerId, for an employee. It runs on what that person spends, and can set tags and billable.
Needs the rules:write scope. Needs a live plan. Try it
Request body
application/json PersonalRuleInput
Response
201 Success.
application/json AutomationRule
DELETE /v1/personal-rules/{id} Delete a person's rule
Name the person with ownerId when the rule is not the caller's.
Needs the rules:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
ownerId | query | string |
Response
204 Done, with no content.
PATCH /v1/personal-rules/{id} Change a person's rule
Name the person with ownerId when the rule is not the caller's.
Needs the rules:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json PersonalRuleInput
Response
200 Success.
application/json AutomationRule
POST /v1/personal-rules/reorder Put the caller's own rules in a new order
Needs the rules:write scope. Needs a live plan. Try it
Request body
application/json ReorderAutomationRulesInput
Response
200 Success.
application/json AutomationRuleOrder
projects
GET /v1/projects List projects
Needs the expenses:read scope. Try it
Parameters
q | query | string |
archived | query | string |
clientId | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ProjectPage
POST /v1/projects Create a project
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Request body
application/json ProjectInput
Response
201 Success.
application/json Project
DELETE /v1/projects/{id} Delete a project
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/projects/{id} Get a project
PATCH /v1/projects/{id} Change a project
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateProjectInput
Response
200 Success.
application/json Project
POST /v1/projects/import Import projects from CSV
Send the CSV as text/plain, or as JSON with a csv field. Rows that match an existing project update it.
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Request body
application/json CatalogImportInput
Response
201 Success.
application/json CatalogImportResult
reference
GET /v1/reference/countries List country codes and the currency each prints
GET /v1/reference/currencies List currency codes
GET /v1/reference/locales List the locales offered in a picker
A workspace can hold any language tag; these are the usual ones.
Needs the expenses:read scope. Try it
Response
200 Success.
application/json ReferenceLocalePage
GET /v1/reference/system-categories List the categories a new workspace starts with
A workspace's own are at GET /v1/categories.
Needs the expenses:read scope. Try it
Response
200 Success.
application/json ReferenceSystemCategoryPage
release notifications
GET /v1/release-notifications List release notes
Versioned notes on what changed, newest first. Any key or token may read them, whatever its scopes.
Any API key or OAuth token can call this, whatever it holds. Try it
Parameters
product | query | app_web api mcp model_document_extraction model_bank_statements model_checks model_fraud_detection |
environment | query | production sandbox |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ReleaseNotePage
report fields
GET /v1/report-fields List report fields
POST /v1/report-fields Add a report field
TEXT, DATE, LIST for a dropdown, or FORMULA.
Needs the workspace:write scope. Needs the settings.manage permission. Needs the custom_fields plan feature. Needs a live plan. Try it
Request body
application/json ReportFieldInput
Response
201 Success.
application/json ReportField
DELETE /v1/report-fields/{id} Delete a report field
Needs the workspace:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
PATCH /v1/report-fields/{id} Change a report field
Name and type stay as they were created, since reports already hold values by them.
Needs the workspace:write scope. Needs the settings.manage permission. Needs the custom_fields plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateReportFieldInput
Response
200 Success.
application/json ReportField
POST /v1/report-fields/turn-off Turn report fields off
Lists are kept and turned off, and the rest are deleted.
Needs the workspace:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Response
200 Success.
application/json ReportFieldsOff
reports
GET /v1/reports List reports
Needs the reports:read scope. Try it
Parameters
status | query | DRAFT SUBMITTED APPROVED REJECTED REIMBURSED EXPORTED CLOSED or array of DRAFT SUBMITTED APPROVED REJECTED REIMBURSED EXPORTED CLOSED |
scope | query | mine all assigned |
ownerId | query | string |
q | query | string |
from | query | string |
to | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ReportPage
POST /v1/reports Create a report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body (optional)
application/json CreateReportInput
Response
201 Success.
application/json ReportDetail
DELETE /v1/reports/{id} Delete a draft report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/reports/{id} Get a report
Needs the reports:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ReportDetail
PATCH /v1/reports/{id} Change a report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateReportInput
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/accept-findings Accept what the receipt checks found
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/approve Approve a report
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Request body (optional)
application/json ApproveReportInput
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/close Close a report
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ReportDetail
GET /v1/reports/{id}/comments List comments on a report
Needs the reports:read scope. Try it
Parameters
id required | path | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json CommentPage
POST /v1/reports/{id}/comments Comment on a report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body (optional)
application/json CommentInput
Response
201 Success.
application/json PostedComment
POST /v1/reports/{id}/comments/{commentId}/reach Reach someone a comment on this report could not
The author adds them to the report, and then they are told.
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
commentId required | path | string |
Request body (optional)
application/json ReachMentionedInput
Response
200 Success.
application/json Reached
GET /v1/reports/{id}/comments/mentionable List who a comment on this report can mention
Needs the reports:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json MentionablePeople
POST /v1/reports/{id}/duplicate Start a new report from this one
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
201 Success.
application/json ReportDetail
POST /v1/reports/{id}/expenses Add expenses to a report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json ReportExpensesInput
Response
200 Success.
application/json ReportDetail
DELETE /v1/reports/{id}/expenses/{expenseId} Take an expense off a report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
expenseId required | path | string |
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/expenses/{expenseId}/reject Reject one expense on a report
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
expenseId required | path | string |
Request body (optional)
application/json RejectExpenseInput
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/mark-exported Mark a report as exported
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/mark-reimbursed Mark a report as reimbursed
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/participants Add a person to a report
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Request body (optional)
application/json ReportParticipantInput
Response
200 Success.
application/json ReportDetail
DELETE /v1/reports/{id}/participants/{userId} Take a person off a report
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
userId required | path | string |
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/reassign Hand a report to another approver
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Request body (optional)
application/json ReassignReportInput
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/reject Send a report back
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Parameters
id required | path | string |
Request body (optional)
application/json RejectReportInput
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/reopen Reopen a report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/retract Take a submitted report back
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json ReportDetail
POST /v1/reports/{id}/submit Submit a report
Needs the reports:write scope. Needs a live plan. Try it
Parameters
id required | path | string |
Request body (optional)
application/json SubmitReportInput
Response
200 Success.
application/json ReportDetail
POST /v1/reports/bulk-reassign Hand many reports to another approver
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Request body
application/json BulkReassignInput
Response
200 Success.
application/json BulkReportResult
POST /v1/reports/bulk-submit Submit many reports
Needs the reports:write scope. Needs a live plan. Try it
Request body
application/json BulkReportsInput
Response
200 Success.
application/json BulkReportResult
POST /v1/reports/mark-reimbursed Mark many reports as reimbursed
Answers 200 when all of them went through, and 207 when some did not. A report that is not approved yet, already paid or in a batch is skipped. One the caller cannot find or mark has failed.
Needs the reports:write scope. Needs a live plan. Refuses a delegate on limited access. Try it
Request body
application/json BulkReportsInput
Response
200 Success.
application/json BulkReimbursed
207 Some went through. The body says what became of each.
application/json BulkReimbursed
split
GET /v1/split List splits
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json DocumentSetPage
POST /v1/split Find the documents in a PDF
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Returns page ranges and extracts nothing. Up to 250 pages and 50 MB. split_by_blank_page cuts on blank pages instead of detected boundaries.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
201 Success.
application/json DocumentSet
GET /v1/split/{id} Get a split
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentSet
POST /v1/split/async Find the documents in a PDF, in the background
Answers at once with the id. split.completed and split.created deliver the ranges, and split.failed says why not.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
202 Success.
application/json DocumentSet
split and classify
POST /v1/split-and-classify Find the documents in a PDF and say what each one is
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Each range has a type and a score, optionally from your own document_types.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
201 Success.
application/json DocumentSet
POST /v1/split-and-classify/async Find and classify the documents in a PDF, in the background
Answers at once. split.completed and split_and_classify.created deliver the same result, and split.failed and split_and_classify.failed say why not.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
202 Success.
application/json DocumentSet
tags
GET /v1/tags List tags
POST /v1/tags Create a tag
DELETE /v1/tags/{id} Delete a tag
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/tags/{id} Get a tag
PATCH /v1/tags/{id} Change a tag
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateTagInput
Response
200 Success.
application/json Tag
POST /v1/tags/import Import tags from CSV
Send the CSV as text/plain, or as JSON with a csv field, with commas or tabs. Rows that match an existing tag update it. With mode=replace, what the file leaves out is deleted, or archived if something uses it. Columns: Name, Group, GL code, Color, Enabled, Depends on. A tag that depends on another goes on an expense only with that one.
Needs the expenses:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Request body
application/json CatalogImportInput
Response
201 Success.
application/json CatalogImportResult
tax
GET /v1/tax/summary Totals by tax line for a year
Needs the expenses:read scope. Try it
Parameters
year | query | integer |
Response
200 Success.
application/json TaxSummary
time
POST /v1/time Record time
Needs the expenses:write scope. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json CreateTimeInput
Response
201 Success.
application/json ExpenseDetail
tls certificates
GET /v1/tls-certificates List the client certificates this workspace trusts
Needs the workspace:read scope. Needs the developer.manage permission. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json ClientCertificatePage
POST /v1/tls-certificates Add a client certificate
PEM, and never a private key. Only its SHA-256 fingerprint decides anything, and adding the same one twice is one row. Mutual TLS ends at the edge, and has to be set up for this server before a workspace can require it.
Needs the workspace:write scope. Needs the developer.manage permission. Needs a live plan. Try it
Request body
application/json CreateClientCertificateInput
Response
201 Success.
application/json ClientCertificate
DELETE /v1/tls-certificates/{id} Stop trusting a client certificate
The last one cannot go while the workspace requires one.
Needs the workspace:write scope. Needs the developer.manage permission. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
transactions
GET /v1/transactions List card transactions
Needs the cards:read scope. Try it
Parameters
state | query | UNMATCHED MATCHED IGNORED EXPENSED PENDING |
paymentAccountId | query | string |
paymentAccountIds | query | string |
from | query | string |
to | query | string |
q | query | string |
minMinor | query | integer |
maxMinor | query | integer |
missingReceipt | query | string |
unreported | query | string |
currency | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json TransactionPage
GET /v1/transactions/{id} Get a card transaction
Needs the cards:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json Transaction
GET /v1/transactions/export Export card data
By date range and card, with unreported=true for lines on no report. Leave it out for all of them. The file comes back as JSON, with its content as text.
Needs the cards:read scope. Try it
Parameters
state | query | UNMATCHED MATCHED IGNORED EXPENSED PENDING |
paymentAccountId | query | string |
paymentAccountIds | query | string |
from | query | string |
to | query | string |
q | query | string |
minMinor | query | integer |
maxMinor | query | integer |
missingReceipt | query | string |
unreported | query | string |
currency | query | string |
Response
200 Success.
application/json DownloadableFile
GET /v1/transactions/reconciliation Reconcile card data for a date range
Imported, approved and what is stuck, by where it is stuck.
Needs the cards:read scope. Try it
Parameters
from required | query | string |
to required | query | string |
paymentAccountId | query | string |
feed | query | string |
currency | query | string |
Response
200 Success.
application/json Reconciliation
GET /v1/transactions/summary Total the card transactions that match a filter
Needs the cards:read scope. Try it
Parameters
state | query | UNMATCHED MATCHED IGNORED EXPENSED PENDING |
paymentAccountId | query | string |
paymentAccountIds | query | string |
from | query | string |
to | query | string |
q | query | string |
minMinor | query | integer |
maxMinor | query | integer |
missingReceipt | query | string |
unreported | query | string |
currency | query | string |
Response
200 Success.
application/json TransactionSummary
travel
GET /v1/travel/trips List travel trips
Trips filed from itineraries, newest first. Your own, or everyone's with scope=all when your role reads everyone's expenses. Trips driven are in the mileage log.
Needs the expenses:read scope. Try it
Parameters
scope | query | mine all |
from | query | string |
to | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json TravelTripPage
GET /v1/travel/trips/{id} Get a travel trip
One trip, with its segments and the documents filed against it.
Needs the expenses:read scope. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json TravelTrip
uploads
POST /v1/uploads Sign an upload straight to storage
The way to send a file: its bytes do not pass through this API. Say what it is for and how big it is, PUT the file to the URL in the answer, then name the uploadId on that feature's route in place of a multipart file. The file's own bytes decide what it is. Video goes to an attachment, up to 500 MiB, and is never read.
Needs the documents:write scope. Needs a live plan. Try it
Request body
application/json CreateUploadInput
Response
201 Success.
application/json UploadTicket
vehicles
GET /v1/vehicles List vehicles
Needs the expenses:read scope. Try it
Parameters
q | query | string |
archived | query | string |
userId | query | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json VehiclePage
GET /v1/vehicles/{id} Get a vehicle
w 8ben e
POST /v1/w-8ben-e Read a Form W-8BEN-E
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
202 Accepted. The document is still being read.
application/json DocumentUpload
w2s
POST /v1/w2s Read a Form W-2
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
202 Accepted. The document is still being read.
application/json DocumentUpload
w2s set
GET /v1/w2s-set List W-2 sets
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json DocumentSetPage
POST /v1/w2s-set Split a PDF of W-2s and read each one
Multipart with a field named file, or JSON with uploadId, file_url or file_data. Up to 100 pages and 50 MB. Answers at once. w2_set.created says when every form is read, and w2_set.failed why not. Social security and employer numbers are masked in every view.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
multipart/form-data
file required | string (binary) |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
external_id | string |
application/json
Name the file with one of uploadId, file_url or file_data.
uploadId | string From POST /v1/uploads, once the file has been sent to the URL it answered with. |
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string A public https address to fetch the file from. Redirects are not followed. |
file_data | string The file itself in base64, raw or as a data URI. |
file_name | string What to call a file sent as file_url or file_data. |
external_id | string |
Response
202 Success.
application/json DocumentSet
GET /v1/w2s-set/{id} Get a W-2 set
Needs the documents:read scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json DocumentSet
w9s
POST /v1/w9s Read a Form W-9
POST /v1/documents/url with the type fixed: the same body, wait and answer. Bank and tax numbers are masked; POST /v1/documents/{id}/reveal opens them.
Needs the documents:write scope. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json SubmitDocumentInput
Response
201 Success.
application/json DocumentUpload
202 Accepted. The document is still being read.
application/json DocumentUpload
webhooks
GET /v1/webhooks List webhook endpoints
Pending and confirmed alike. Endpoints that belong to one API key are left out unless you ask: send apiKeyId for one key, or include=keys for all of them.
Needs the webhooks:manage scope. Needs the developer.manage permission. Try it
Parameters
apiKeyId | query | string |
include | query | keys |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json WebhookEndpointPage
POST /v1/webhooks Add a webhook endpoint
Step one of the handshake. The URL must be public https, and not on papertotal.com. The endpoint starts PENDING, and PaperTotal sends it one signed subscription event holding a one-time token in data.token. Confirm it with POST /v1/webhooks/confirm within a day. Until then it receives nothing else, and after that it is deleted. An address on hooks.zapier.com is confirmed at once, because a catch hook cannot run a handshake. Send apiKeyId to make this one key's own endpoint: documents that key submits report here and not to the workspace's endpoints, it takes document events only, and a key has one. Changing the URL later goes through the handshake again. The signing secret is in this response and the rotate response, and nowhere else.
Needs the webhooks:manage scope. Needs the developer.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Request body
application/json CreateWebhookInput
Response
201 Success.
application/json WebhookEndpointWithSecret
DELETE /v1/webhooks/{id} Delete a webhook endpoint
Needs the webhooks:manage scope. Needs the developer.manage permission. Try it
Parameters
id required | path | string |
Response
204 Done, with no content.
GET /v1/webhooks/{id} Get a webhook endpoint
Needs the webhooks:manage scope. Needs the developer.manage permission. Try it
Parameters
id required | path | string |
Response
200 Success.
application/json WebhookEndpoint
PATCH /v1/webhooks/{id} Change a webhook endpoint
Needs the webhooks:manage scope. Needs the developer.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Request body
application/json UpdateWebhookInput
Response
200 Success.
application/json WebhookEndpoint
GET /v1/webhooks/{id}/deliveries List an endpoint's deliveries
Needs the webhooks:manage scope. Needs the developer.manage permission. Try it
Parameters
id required | path | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json WebhookDeliveryPage
POST /v1/webhooks/{id}/rotate-secret Issue a new signing secret
Needs the webhooks:manage scope. Needs the developer.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
201 Success.
application/json WebhookEndpointWithSecret
POST /v1/webhooks/{id}/test Send a test event
Needs the webhooks:manage scope. Needs the developer.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
201 Success.
application/json WebhookDelivery
POST /v1/webhooks/confirm Confirm a webhook endpoint
Step three of the handshake. Send the token from the subscription event that went to the address. It works once, and expires after a day.
Needs the webhooks:manage scope. Needs the developer.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Request body
application/json ConfirmWebhookInput
Response
200 Success.
application/json WebhookEndpoint
POST /v1/webhooks/deliveries/{id}/retry Send a delivery again
Needs the webhooks:manage scope. Needs the developer.manage permission. Needs the developer_api plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Response
201 Success.
application/json WebhookDelivery
workflows
GET /v1/workflows/{id}/runs List a workflow's runs
Needs the documents:read scope. Needs the settings.manage permission. Try it
Parameters
id required | path | string |
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json WorkflowRunPage
POST /v1/workflows/{id}/runs Start a run
Sends a file named by uploadId from POST /v1/uploads, or documents already in this workspace, to the workflow's API import. nodeId starts it at another input instead: a Document aggregator gathers what has come in, and Business insights runs its query. An upload, or an Idempotency-Key, makes a repeat answer with the first run.
Needs the documents:write scope. Needs the settings.manage permission. Needs the automation_rules plan feature. Needs a live plan. Try it
Parameters
id required | path | string |
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body (optional)
application/json StartWorkflowRunInput
Response
201 Success.
application/json WorkflowRunSummary
GET /v1/workflows/{id}/runs/{runId} Get a run and each of its steps
Each step says what happened. A file comes with a signed link that lasts 15 minutes, and an approval says who was asked and who answered.
Needs the documents:read scope. Needs the settings.manage permission. Try it
Parameters
id required | path | string |
runId required | path | string |
Response
200 Success.
application/json WorkflowRun
workspace
DELETE /v1/workspace Close this workspace
Needs the workspace:delete scope, which no preset holds, on a key an owner made. Send the name of the workspace to confirm. Its data is purged after the grace period.
Needs the workspace:delete scope. Needs the workspace.delete permission. Try it
Request body
application/json CloseWorkspaceInput
Response
200 Success.
application/json WorkspaceClosed
GET /v1/workspace Get this workspace, its plan and its usage
PATCH /v1/workspace Change this workspace
Needs the workspace:write scope. Needs the settings.manage permission. Needs a live plan. Try it
Request body
application/json UpdateWorkspaceInput
Response
200 Success.
application/json Workspace
GET /v1/workspace/counts Count what is waiting on the caller
workspaces
GET /v1/workspaces List the workspaces this credential reaches
A key or an app is bound to one workspace, so it lists that one. A person lists all of theirs.
Needs the workspace:read scope. Try it
Parameters
limit | query | integer |
cursor | query | string |
Response
200 Success.
application/json WorkspacePage
POST /v1/workspaces Create a workspace
The caller's person owns it. It starts with what their one trial has left, or with no plan: reading and exporting work, and capture waits on a plan. A plan cannot be bought by an API call, so naming one returns the billing link where a person pays for it. A key stays bound to its own workspace, so the new one needs a key of its own.
Needs the workspace:write scope. Try it
Parameters
Idempotency-Key | header | string Replaying a key returns the first record instead of creating, and charging for, a second. While the first request is still running, a retry answers 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After, and is not charged. The same key on a different request answers 409 IDEMPOTENCY_CONFLICT. |
Request body
application/json CreateWorkspaceInput
Response
201 Success.
application/json WorkspaceCreated
Webhook events
Answer with any 2xx within 10 seconds. A 410 turns the endpoint off. Anything else is retried with exponential backoff, 8 attempts over about 24 hours. Redirects are not followed. Delivery is at least once, so use the event id to ignore repeats.
X-PaperTotal-Signature HMAC-SHA256 of "<t>.<body>" with the endpoint's signing secret, in hex, sent as t=<unix seconds>,v1=<hex>. Compute it over the raw bytes, and refuse a timestamp more than five minutes old.
X-PaperTotal-Event The event type.
document.createddocument.processeddocument.faileddocument.enricheddocument.enrichment_faileddocument_set.completeddocument_set.failedsplit.completedsplit.createdsplit.failedsplit_and_classify.createdsplit_and_classify.failedw2_set.createdw2_set.failedbank_statement_set.createdbank_statement_set.failedexpense.createdexpense.updatedexpense.deletedreport.submittedreport.approvedreport.rejectedreport.reimbursedintegration.postedintegration.failedsubscription
Each one posts WebhookEventPayload.
Schemas
TravelTripListQuery
scope | mine all |
from | string |
to | string |
CreateClientCertificateInput
name required | string |
certificate required | string |
ReleaseNotificationQuery
product | app_web api mcp model_document_extraction model_bank_statements model_checks model_fraud_detection |
environment | production sandbox |
CreateAttachmentInput
uploadId required | string |
CreateUploadInput
filename required | string |
contentType required | string |
sizeBytes required | integer |
purpose required | document document_set expense_receipt odometer_photo policy_document statement attachment catalog_import iif_lists people_list profile_photo |
clientId | string |
ExportRecordInput
documentIds required | array of string |
target required | string |
externalId | string |
ExportRecordQuery
documentId | string |
target | string |
externalId | string |
via | EXPORT SYNC API |
DocumentReadQuery
bounding_boxes | boolean |
confidence_details | boolean |
detailed | boolean |
with_scores | boolean |
DocumentTagInput
name required | string |
DocumentTagsInput
tags required | array of string |
ExpenseLineInput
description required | string |
sku | string or null |
quantity | number,null |
unitPriceMinor | integer or null |
amountMinor required | integer |
taxMinor | integer or null |
categoryId | string,null |
ExpenseTaxLineInput
name | string or null |
code | string or null |
ratePct | number or null |
baseMinor | integer or null |
amountMinor required | integer |
UpdateExpenseLineInput
description | string |
sku | string or null |
quantity | number,null |
unitPriceMinor | integer or null |
amountMinor | integer |
taxMinor | integer or null |
categoryId | string,null |
UpdateExpenseTaxLineInput
name | string or null |
code | string or null |
ratePct | number or null |
baseMinor | integer or null |
amountMinor | integer |
CategoryImportQuery
mode | merge replace |
CloseWorkspaceInput
confirmName required | string |
ProvisionInput
employees | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||
url | string (uri) | ||||||||||||||||||||||||||||||||||||||||||||||||
dryRun | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||
shouldFixApprovalChains | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||
removeMissing | boolean |
AutomationPreviewInput
conditions required | array of objectFields
|
AutomationRuleInput
name required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enabled | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
conditions required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actions required | objectFields
|
BulkMemberInput
ids required | array of string |
role | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN |
status | ACTIVE SUSPENDED |
managerId | string,null |
CreateInvitationInput
email required | string (email) |
name | string |
role | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN |
message | string |
ChangeMailInAddressInput
shippingAddress required | objectFields
|
MailInSettingsInput
address required | object or nullFields
|
CreateMailInInput
envelopes | integer | ||||||||||||||||
expectedDocuments required | integer | ||||||||||||||||
afterScan | RETURN SHRED | ||||||||||||||||
shippingAddress | objectFields
| ||||||||||||||||
folderId | string,null | ||||||||||||||||
notes | string or null |
CreateWorkspaceInput
name required | string |
baseCurrency | string |
country | string |
timezone | string |
copyFromId | string |
copySections | array of categories tags customFields reportFields distanceRates perDiem workflows rules merchantRules policies members accountingConnection overview |
plan | STARTER PRO BUSINESS |
interval | MONTH YEAR |
InvitationListQuery
status | PENDING EXPIRED ACCEPTED REVOKED |
MemberListQuery
q | string |
status | ACTIVE SUSPENDED |
role | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN |
PaymentAccountListQuery
archived | string |
PersonalRuleInput
name required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enabled | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
merchantContains required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actions required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ownerId | string |
PersonalRuleQuery
ownerId | string |
ReconciliationQuery
from required | string |
to required | string |
paymentAccountId | string |
feed | string |
currency | string |
ReorderAutomationRulesInput
ids required | array of string |
RulesDocument
format required | papertotal.rules | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
version required | 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exportedAt | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rules required | array of objectFields
|
ReportFieldInput
name required | string |
type required | TEXT DATE LIST FORMULA |
options | array of string |
formula | string or null |
required | boolean |
enabled | boolean |
position | integer |
SyncRecordQuery
state | PENDING SYNCED FAILED SKIPPED VOIDED |
TransactionListQuery
state | UNMATCHED MATCHED IGNORED EXPENSED PENDING |
paymentAccountId | string |
paymentAccountIds | string |
from | string |
to | string |
q | string |
minMinor | integer |
maxMinor | integer |
missingReceipt | string |
unreported | string |
currency | string |
UpdateAutomationRuleInput
name | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enabled | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
conditions | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actions | objectFields
|
UpdateMemberInput
role | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN |
status | ACTIVE SUSPENDED |
developer | boolean |
managerId | string,null |
title | string or null |
department | string or null |
employeeId | string or null |
approvalLimitMinor | integer or null |
overLimitApproverId | string,null |
forwardToId | string,null |
workerStatus | string or null |
defaultTags | array of string |
customField1 | string or null |
customField2 | string or null |
payrollCode | string or null |
legalEntity | string or null |
tier | string or null |
officeLocation | string or null |
costCenter | string or null |
accountingCode | string or null |
workerType | string or null |
UpdateReportFieldInput
options | array of string |
formula | string or null |
required | boolean |
enabled | boolean |
position | integer |
disabledOptions | array of string |
UpdateWorkspaceInput
name | string |
baseCurrency | string |
country | string |
timezone | string |
fiscalYearStartMonth | integer |
distanceUnit | mi km |
retentionDays | integer or null |
callLogRetentionDays | integer or null |
readingModel | standard rules_only always_second_reading |
locale | string or null |
showDefaultCategories | boolean |
shredDocuments | boolean |
vatBasisPoints | integer or null |
reimbursableTracking | boolean |
calculateMissingTax | boolean |
dateFormat | YYYY-MM-DD MM/DD/YYYY DD/MM/YYYY DD.MM.YYYY MMM D, YYYY |
ForwardingAliasInput
alias required | string |
UploadSourceQuery
client | ios androidThe app sending the file. Leave it out in a browser. |
AnyDocumentInput
file_url | string |
file_data | string |
file_name | string |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
blueprint_name required | string |
blueprint_version | integer |
max_pages_to_process | integer |
BatchDocumentsInput
file_urls required | array of string |
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
external_id | string |
BlueprintListQuery
documentType | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
BlueprintVersionQuery
version | integer |
ClassifyDocumentInput
file_url | string |
file_data | string |
file_name | string |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
document_types | array of string |
CreateBlueprintInput
name required | string | ||||||||||||||||||
title required | string | ||||||||||||||||||
description | string | ||||||||||||||||||
documentType | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT | ||||||||||||||||||
schema required | objectFields
| ||||||||||||||||||
fields | array of objectFields
|
CropDocumentInput
page | integer |
x required | number |
y required | number |
width required | number |
height required | number |
ExtractDocumentInput
file_url | string |
file_data | string |
file_name | string |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
document_types | array of string |
ParseDocumentInput
file_url | string |
file_data | string |
file_name | string |
external_id | string |
async | boolean |
tags | array of string |
auto_delete | boolean |
details | boolean |
ParseQuery
details | boolean |
tag | string |
ParseUpdateInput
title | string or null |
notes | string or null |
tags | array of string |
RotateDocumentInput
page | integer |
degrees | 90 or 180 or 270 or -90 |
SettleDuplicatesInput
object or object
keep required | all |
others | array of string |
SplitDocumentInput
mode required | every_page custom detect blank_pages |
ranges | string |
SplitOptions
split_by_blank_page | boolean |
every_page | boolean |
ranges | string |
document_types | array of string |
blueprint_name | string |
file_url | string |
file_data | string |
file_name | string |
external_id | string |
SplitUploadInput
uploadId required | string |
mode | every_page custom detect blank_pages |
ranges | string |
UpdateBlueprintInput
title | string | ||||||||||||||||||
description | string or null | ||||||||||||||||||
documentType | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT | ||||||||||||||||||
schema | objectFields
| ||||||||||||||||||
fields | array of objectFields
|
StartWorkflowRunInput
uploadId | string |
documentIds | array of string |
nodeId | string |
AnalyticsQuery
status | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | string |
scope | mine all |
categoryId | string |
merchantId | string |
projectId | string |
clientId | string |
tagId | string |
department | string |
reportId | string |
externalId | string |
unreported | boolean |
needsReview | boolean |
billable | boolean |
reimbursable | boolean |
moneyFlow | IN OUT |
dateField | date createdAt updatedAt submittedAt approvedAt |
from | string |
to | string |
minMinor | integer |
maxMinor | integer |
q | string |
limit | integer |
interval | day week month quarter year running |
groupCurrency | string |
ApproveReportInput
comment | string |
held | move approve |
bypass | boolean |
expectedTotalMinor | integer |
AttachReceiptInput
mode | add replace |
clientId | string |
deviceId | string |
BulkDocumentInput
ids | array of string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filter | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cursor | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
action required | object or object or object or objectFields
|
TrashActionInput
ids | array of string |
all | boolean |
action required | restore purge |
BulkExpenseInput
ids required | array of string | ||||
action required | object or object or object or object or object or object or object or object or objectFields
|
BulkReassignInput
reportIds required | array of string |
approverId required | string |
mode | replace insert |
BulkReportsInput
reportIds required | array of string |
CatalogImportInput
csv required | string |
CatalogQuery
q | string |
archived | string |
CategoryInput
name required | string |
parentId | string,null |
glCode | string or null |
taxLine | string or null |
deductiblePct | integer |
enabled | boolean |
position | integer |
type | EXPENSE COGS INCOME REFUND |
payrollCode | string or null |
descriptionHint | string or null |
approverId | string,null |
commentRequired | boolean |
maxExpenseMinor | integer or null |
headerOnly | boolean |
CategoryQuery
q | string |
enabled | string |
type | EXPENSE COGS INCOME REFUND |
origin | SYSTEM CUSTOM ACCOUNTING |
headers | string |
CommentInput
body | string |
mentions | array of string |
attachmentIds | array of string |
ContactExportInput
format required | vcard google outlook csv |
ids | array of string |
ContactListQuery
q | string |
documentId | string |
name | string |
company | string |
email | string |
phone | string |
website | string |
city | string |
region | string |
postalCode | string |
country | string |
CreateDocumentInput
tags | array of string |
categories | array of string |
taxonomy | array of string |
allowed_async_enrichments | array of duplicates similar_documents line_item_expansion line_item_categorization line_item_custom_categorization xero_line_coding address_parsing fraud rules vendor_resolution |
bounding_boxes | boolean |
confidence_details | boolean |
compute | boolean |
parse_address | boolean |
country | string |
max_pages_to_process | integer |
boost_mode | boolean |
auto_delete | boolean |
stitch | boolean |
crop_document | boolean |
blueprint_name | string |
blueprint_version | integer |
async | boolean |
line_item_expansion | boolean |
tiff_dpi | number |
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
clientId | string |
externalId | string |
folderId | string |
notes | string |
capturedAt | string (date-time) |
latitude | number |
longitude | number |
locationAccuracyM | number |
deviceId | string |
merchantName | string |
date | string |
totalMinor | integer |
taxMinor | integer |
category | string |
CreateExpenseInput
merchantName | string,null | ||||||||||||||
description | string or null | ||||||||||||||
notes | string or null | ||||||||||||||
date required | string | ||||||||||||||
currency | string | ||||||||||||||
amountMinor required | integer | ||||||||||||||
subtotalMinor | integer or null | ||||||||||||||
taxMinor | integer or null | ||||||||||||||
tipMinor | integer or null | ||||||||||||||
discountMinor | integer or null | ||||||||||||||
shippingMinor | integer or null | ||||||||||||||
baseAmountMinor | integer or null | ||||||||||||||
fxRate | number or null | ||||||||||||||
categoryId | string,null | ||||||||||||||
projectId | string,null | ||||||||||||||
clientId | string,null | ||||||||||||||
billable | boolean | ||||||||||||||
reimbursable | boolean | ||||||||||||||
paymentType | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER or null | ||||||||||||||
paymentAccountId | string,null | ||||||||||||||
cardLast4 | string or null | ||||||||||||||
invoiceNumber | string or null | ||||||||||||||
poNumber | string or null | ||||||||||||||
dueDate | string or null | ||||||||||||||
mcc | string or null | ||||||||||||||
taxDeductible | boolean | ||||||||||||||
moneyFlow | IN OUT | ||||||||||||||
alsoCategoryIds | array of string | ||||||||||||||
tagIds | array of string | ||||||||||||||
attendees | array of objectFields
| ||||||||||||||
customFields | map of any | ||||||||||||||
lines | array of objectFields
| ||||||||||||||
kind | MANUAL MILEAGE PER_DIEM TIME | ||||||||||||||
quantity | number | ||||||||||||||
rateMinor | integer | ||||||||||||||
unit | string | ||||||||||||||
trip | map of any | ||||||||||||||
vehicleId | string | ||||||||||||||
externalId | string | ||||||||||||||
ownerId | string | ||||||||||||||
reportId | string |
CreateExportInput
kind required | expenses report tax mileage receipts documents | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
format required | CSV XLSX PDF ZIP QBO_CSV XERO_CSV SAGE_CSV DYNAMICS_CSV MYOB_TXT ORACLE_CSV SAP_CSV IIF OFX JSON XML TXT XLS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filters | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
templateId | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fullPageReceipts | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onFinish | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
delimiter | , ; | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bom | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recipients | array of string (email) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
columnSet | simple detailed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
preset | basic all_data_expense all_data_report canadian_multiple_tax category per_diem tag tax_report | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
view | objectFields
|
CreateMerchantInput
name required | string |
defaultCategoryId | string,null |
website | string or null |
phone | string or null |
address | string or null |
taxId | string or null |
is1099 | boolean |
merchantType | airline lodging car_rental ground_transport fuel dining grocery office software utilities supplies other or null |
CreatePerDiemInput
perDiemRateId | string | ||||
mieRateId | string | ||||
subRates | array of objectFields
| ||||
lodgingRateId | string | ||||
startDate required | string | ||||
endDate required | string | ||||
startTime | string | ||||
endTime | string | ||||
partialDays | boolean | ||||
destination | string | ||||
description | string or null | ||||
mealsCategoryId | string or null | ||||
tagIds | array of string | ||||
categoryId | string or null | ||||
projectId | string or null | ||||
clientId | string or null | ||||
billable | boolean | ||||
reimbursable | boolean | ||||
notes | string or null |
CreateReportInput
title | string |
purpose | string or null |
currency | string |
expenseIds | array of string |
ownerId | string |
CreateTimeInput
date required | string |
hours required | number |
rateMinor required | integer |
currency | string |
description required | string |
categoryId | string or null |
projectId | string or null |
clientId | string or null |
billable | boolean |
reimbursable | boolean |
notes | string or null |
CreateTripInput
date required | string |
distance | number |
odometerStart | number |
odometerEnd | number |
routeDistance | number or null |
roundTrip | boolean |
origin required | string |
destination required | string |
stops | array of string |
departed | string or null |
arrived | string or null |
purpose required | string |
vehicleId | string or null |
rateId | string or null |
routeToken | string or null |
categoryId | string or null |
projectId | string or null |
clientId | string or null |
billable | boolean |
reimbursable | boolean |
notes | string or null |
CreateWebhookInput
url required | string |
description | string |
events required | array of document.created document.processed document.failed document.enriched document.enrichment_failed document_set.completed document_set.failed split.completed split.created split.failed split_and_classify.created split_and_classify.failed w2_set.created w2_set.failed bank_statement_set.created bank_statement_set.failed expense.created expense.updated expense.deleted report.submitted report.approved report.rejected report.reimbursed integration.posted integration.failed |
apiKeyId | string |
ConfirmWebhookInput
token required | string |
WebhookListQuery
apiKeyId | string |
include | keys |
DocumentListQuery
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
status | UPLOADED PROCESSING PROCESSED FAILED |
source | WEB IOS ANDROID EMAIL API MAIL_IN INTEGRATION |
source_id | string |
external_id | string |
blueprint_name | string |
owner | string |
device_id | string |
device_user_uuid | string |
viewed | boolean |
trashed | boolean |
envelope | string |
created__gt | string or string (date-time) |
created__gte | string or string (date-time) |
created__lt | string or string (date-time) |
created__lte | string or string (date-time) |
updated__gt | string or string (date-time) |
updated__gte | string or string (date-time) |
updated__lt | string or string (date-time) |
updated__lte | string or string (date-time) |
issued | string |
issued__gt | string |
issued__gte | string |
issued__lt | string |
issued__lte | string |
total | integer |
total__gt | integer |
total__gte | integer |
total__lt | integer |
total__lte | integer |
tax | integer |
tax__gt | integer |
tax__gte | integer |
tax__lt | integer |
tax__lte | integer |
currency | string |
category | string |
vendor | string |
notes | string |
payment_type | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
last_four_digits | string |
first_name | string |
last_name | string |
work_phone | string |
cell_phone | string |
company | string |
email | string |
website | string |
country | string |
state | string |
city | string |
zip | string |
name | string |
is_empty | string |
order_by | created updated issued total tax -created -updated -issued -total -tax |
folderId | string |
mailInBatchId | string |
setId | string |
externalId | string |
tag | string |
archived | boolean |
unviewed | boolean |
q | string |
from | string |
to | string |
fraudColor | GREEN YELLOW RED |
fraudSignal | digital_tampering fraudulent_pdf fraudulent_image generated_document ai_generated lcd_photo screenshot digital_background not_a_document duplicate similar_documents handwritten_characters invalid_qr_data invalid_mrz_data suspicious_content data_inconsistency vendor_layout_mismatch total_in_words_mismatch aspect_ratio_mismatch high_velocity critical_velocity multiple_profiles_or_devices fraud_history blocked_device other |
fraudReview | PENDING FRAUD NOT_FRAUD UNKNOWN |
ExpenseListPageQuery
status | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | string |
scope | mine all |
categoryId | string |
merchantId | string |
projectId | string |
clientId | string |
tagId | string |
department | string |
reportId | string |
externalId | string |
unreported | boolean |
needsReview | boolean |
billable | boolean |
reimbursable | boolean |
moneyFlow | IN OUT |
dateField | date createdAt updatedAt submittedAt approvedAt |
from | string |
to | string |
minMinor | integer |
maxMinor | integer |
q | string |
sort | date:asc date:desc merchant:asc merchant:desc category:asc category:desc status:asc status:desc amount:asc amount:desc |
ExpenseTotalsQuery
status | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID or array of PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID |
kind | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD |
paymentType | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER |
ownerId | string |
scope | mine all |
categoryId | string |
merchantId | string |
projectId | string |
clientId | string |
tagId | string |
department | string |
reportId | string |
externalId | string |
unreported | boolean |
needsReview | boolean |
billable | boolean |
reimbursable | boolean |
moneyFlow | IN OUT |
dateField | date createdAt updatedAt submittedAt approvedAt |
from | string |
to | string |
minMinor | integer |
maxMinor | integer |
q | string |
ids | string or array of string |
currency | string |
FolderInput
name required | string |
parentId | string,null |
FolderQuery
q | string |
parentId | string |
DismissFlagInput
reason | string |
HoldExpenseInput
reason required | string |
ReachMentionedInput
userIds required | array of string |
MergeMerchantInput
intoId required | string |
MerchantInput
name | string |
defaultCategoryId | string,null |
website | string or null |
phone | string or null |
address | string or null |
taxId | string or null |
is1099 | boolean |
merchantType | airline lodging car_rental ground_transport fuel dining grocery office software utilities supplies other or null |
MileageLogQuery
from | string |
to | string |
scope | mine all |
ownerId | string |
vehicleId | string |
purpose | business medical charity |
OdometerPhotoInput
reading required | START END |
ProjectInput
name required | string |
code | string or null |
clientId | string,null |
budgetMinor | integer or null |
archived | boolean |
ProjectQuery
q | string |
archived | string |
clientId | string |
ReassignReportInput
approverId required | string |
mode | replace insert |
RejectExpenseInput
reason required | string |
RejectReportInput
reason required | string |
to | string |
ReportExpensesInput
ids required | array of string |
ReportListQuery
status | DRAFT SUBMITTED APPROVED REJECTED REIMBURSED EXPORTED CLOSED or array of DRAFT SUBMITTED APPROVED REJECTED REIMBURSED EXPORTED CLOSED |
scope | mine all assigned |
ownerId | string |
q | string |
from | string |
to | string |
ReportParticipantInput
userId required | string |
SubmitReportInput
memo | string |
cc | array of string |
to | string |
ccEmails | array of string (email) |
attachPdf | boolean |
approverEmail | string (email) |
SubmitDocumentInput
tags | array of string |
categories | array of string |
taxonomy | array of string |
allowed_async_enrichments | array of duplicates similar_documents line_item_expansion line_item_categorization line_item_custom_categorization xero_line_coding address_parsing fraud rules vendor_resolution |
bounding_boxes | boolean |
confidence_details | boolean |
compute | boolean |
parse_address | boolean |
country | string |
max_pages_to_process | integer |
boost_mode | boolean |
auto_delete | boolean |
stitch | boolean |
crop_document | boolean |
blueprint_name | string |
blueprint_version | integer |
async | boolean |
line_item_expansion | boolean |
tiff_dpi | number |
file_url | string |
file_urls | array of string |
file_data | string |
file_name | string |
external_id | string |
device_id | string |
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT |
bucket | string |
package_path | string |
TagInput
name required | string |
groupName | string or null |
glCode | string or null |
color | string or null |
archived | boolean |
approverId | string or null |
parentId | string or null |
TaxSummaryQuery
year | integer |
TripRouteQuery
q | string |
UpdateCategoryInput
name | string |
parentId | string,null |
glCode | string or null |
taxLine | string or null |
deductiblePct | integer |
enabled | boolean |
position | integer |
type | EXPENSE COGS INCOME REFUND |
payrollCode | string or null |
descriptionHint | string or null |
approverId | string,null |
commentRequired | boolean |
maxExpenseMinor | integer or null |
headerOnly | boolean |
UpdateDocumentInput
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT | ||||||
folderId | string,null | ||||||
title | string or null | ||||||
notes | string or null | ||||||
tags | array of string | ||||||
status | PROCESSED REVIEWED | ||||||
approved | boolean | ||||||
fraudReview | objectFields
| ||||||
billable | boolean | ||||||
merchantName | string or null | ||||||
totalMinor | integer | ||||||
subtotalMinor | integer or null | ||||||
taxMinor | integer or null | ||||||
tipMinor | integer or null | ||||||
customFields | map of string or array of string or null | ||||||
corrections | map of string or null |
UpdateExpenseInput
merchantName | string,null | ||||||||||||||
description | string or null | ||||||||||||||
notes | string or null | ||||||||||||||
date | string | ||||||||||||||
currency | string | ||||||||||||||
amountMinor | integer | ||||||||||||||
subtotalMinor | integer or null | ||||||||||||||
taxMinor | integer or null | ||||||||||||||
tipMinor | integer or null | ||||||||||||||
discountMinor | integer or null | ||||||||||||||
shippingMinor | integer or null | ||||||||||||||
baseAmountMinor | integer or null | ||||||||||||||
fxRate | number or null | ||||||||||||||
categoryId | string,null | ||||||||||||||
projectId | string,null | ||||||||||||||
clientId | string,null | ||||||||||||||
billable | boolean | ||||||||||||||
reimbursable | boolean | ||||||||||||||
paymentType | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER or null | ||||||||||||||
paymentAccountId | string,null | ||||||||||||||
cardLast4 | string or null | ||||||||||||||
invoiceNumber | string or null | ||||||||||||||
poNumber | string or null | ||||||||||||||
dueDate | string or null | ||||||||||||||
mcc | string or null | ||||||||||||||
taxDeductible | boolean | ||||||||||||||
moneyFlow | IN OUT | ||||||||||||||
alsoCategoryIds | array of string | ||||||||||||||
tagIds | array of string | ||||||||||||||
attendees | array of objectFields
| ||||||||||||||
customFields | map of any | ||||||||||||||
lines | array of objectFields
|
UpdateFolderInput
name | string |
parentId | string,null |
UpdateProjectInput
name | string |
code | string or null |
clientId | string,null |
budgetMinor | integer or null |
archived | boolean |
UpdateReportInput
title | string |
purpose | string or null |
currency | string |
fields | map of string or null |
UpdateTagInput
name | string |
groupName | string or null |
glCode | string or null |
color | string or null |
archived | boolean |
approverId | string or null |
parentId | string or null |
UpdateWebhookInput
url | string |
description | string or null |
events | array of document.created document.processed document.failed document.enriched document.enrichment_failed document_set.completed document_set.failed split.completed split.created split.failed split_and_classify.created split_and_classify.failed w2_set.created w2_set.failed bank_statement_set.created bank_statement_set.failed expense.created expense.updated expense.deleted report.submitted report.approved report.rejected report.reimbursed integration.posted integration.failed |
enabled | boolean |
VehicleQuery
q | string |
archived | string |
userId | string |
BlockDeviceInput
deviceId required | string |
reason | string |
FraudReviewInput
decision required | FRAUD NOT_FRAUD UNKNOWN |
types | array of digital_tampering fraudulent_pdf fraudulent_image generated_document ai_generated lcd_photo screenshot digital_background not_a_document duplicate similar_documents handwritten_characters invalid_qr_data invalid_mrz_data suspicious_content data_inconsistency vendor_layout_mismatch total_in_words_mismatch aspect_ratio_mismatch high_velocity critical_velocity multiple_profiles_or_devices fraud_history blocked_device other |
note | string |
RevealDocumentInput
kinds | array of ROUTING_NUMBER ACCOUNT_NUMBER MICR_LINE SSN EIN IBAN |
reason | string |
CheckWithDocumentInput
check required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
document required | objectFields
|
BillingInvoicePage
data required | array of objectFields
| ||||||||||||||||||||||||
nextCursor required | string,null Pass as |
ExportRecordPage
data required | array of objectFields
| ||||||||||||||||
nextCursor required | string,null Pass as |
ExportRecordsAppended
data required | array of objectFields
| ||||||||||||||||
alreadyRecorded required | number Already recorded, so left as they were. |
DocumentDetail
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type required | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source required | WEB IOS ANDROID EMAIL API MAIL_IN INTEGRATION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status required | UPLOADED PROCESSING PROCESSED FAILED | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
originalFilename required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mimeType required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeBytes required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
externalId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
folderId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenseId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mailInBatchId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
latitude required | number,null Where the device said it was when the photo was taken. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
longitude required | number,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locationAccuracyM required | number,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
duplicateOfId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processingError required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processingErrorCode required | FILE_ENCRYPTED or nullSet when the failure is one the file's owner can fix. processingError says what to do. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
verification required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
capturedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
viewedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
archivedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uploadedBy required | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pages required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
classification required | object or null What the classifier decided, when it was asked. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
blueprint required | object or null The blueprint this was read with, and what came out of it. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tags required | array of string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tagRefs required | array of object The same tags with their ids, which a tag route takes. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recordStatus required | processed reviewed archived or nullWhere a read document stands: reviewedAt and archivedAt in one word. Null until it has been read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
duplicates required | array of object Near copies past the workspace threshold, best first. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setId required | string,null The upload this came out of: a ZIP, a split PDF or a batch of addresses. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customFields required | map of string or array of string or null Values the workspace custom field rules read out of the text. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enrichment required | object or null Work still running after the first answer. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extraction required | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fraud required | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sealed required | array of object Bank and tax numbers read from this document, as masks. POST /v1/documents/{id}/reveal opens them. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
updatedAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extractor required | string,null What read it: rules, claude, a blueprint, business-card, or none. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ocrText required | string,null Everything read off the page. Card, bank and tax numbers are masked. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pdfUrl required | string,null The PDF as uploaded, signed for 15 minutes. Null for an image, and for a PDF that prints a number only a reveal hands out. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reviewedAt required | string,null A person checked what was read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
approvedAt required | string,null A developer's own approved flag. An expense's approval is a different thing. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reading | object or null Null when nothing has been read yet. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
detailed | any With detailed: the reading with each field wrapped as value, score, ocrScore, rotation, boundingBox, boundingRegion and enriched. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lineItemsWithScores | array of map of any With with_scores: the same lines, with a value and its confidence on every sub-field. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
taxLinesWithScores | array of map of any With with_scores: the same tax lines, with a value and its confidence on every sub-field. |
DocumentTagList
data required | array of objectFields
| ||||
nextCursor required | string,null Pass as |
ExpenseLine
id required | string |
position required | number |
description required | string |
sku required | string,null |
quantity required | number,null |
unitPriceMinor required | number,null |
amountMinor required | number |
taxMinor required | number,null |
categoryId required | string,null |
ExpenseLinePage
data required | array of objectFields
| ||||||||||||||||||
nextCursor required | string,null Pass as |
ExpenseTaxLine
id required | string |
position required | number |
name required | string,null |
code required | string,null |
ratePct required | number,null |
baseMinor required | number,null |
amountMinor required | number |
ExpenseTaxLinePage
data required | array of objectFields
| ||||||||||||||
nextCursor required | string,null Pass as |
WorkspaceClosed
status required | closed | ||||||
purgeAfter required | string Records are erased after this moment. | ||||||
storeSubscriptions required | array of object Non-empty when a store goes on billing until someone cancels there. Fields
|
ReferenceCurrencyPage
data required | array of objectFields
| ||||||
nextCursor required | string,null Pass as |
ReferenceCountryPage
data required | array of objectFields
| ||||||
nextCursor required | string,null Pass as |
ReferenceLocalePage
data required | array of objectFields
| ||||
nextCursor required | string,null Pass as |
ReferenceSystemCategoryPage
data required | array of objectFields
| ||||||||||
nextCursor required | string,null Pass as |
BulkReimbursed
reimbursed required | array of string | ||||||||
skipped required | array of object Not in a state to mark: not approved yet, already paid, in a batch, or nothing on it is reimbursable. Left as it was. Fields
| ||||||||
failed required | array of object Not found, or not the caller's to mark. Fields
|
DocumentList
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
offset | number Where this page starts, when paging by offset or page. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextOffset | number,null Send this as | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
page | number When paging by page number. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageSize | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalCount | number With track_total_results: every document the caller can reach. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filteredCount | number With track_total_results: what the filters leave of those. |
ProvisionResult
dryRun required | boolean | ||||
added required | array of objectFields
| ||||
updated required | array of objectFields
| ||||
removed required | array of objectFields
| ||||
skipped required | array of objectFields
|
AutomationApply
matched required | number |
updated required | number |
AutomationPreview
matched required | number Expenses the conditions match, voided ones aside. | ||||||||||||||
applicable required | number Of those, the ones still unsubmitted, which is what applying the rule changes. | ||||||||||||||
sample required | array of objectFields
| ||||||||||||||
aiSkipped required | boolean A question for Claude was left out of this count: it is asked when a document is read, not here. |
AutomationRule
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enabled required | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
position required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
conditions required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actions required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
matchCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
updatedAt required | string |
AutomationRuleOrder
data required | array of objectFields
|
AutomationRuleList
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aiAvailable required | boolean Whether a question for Claude can be asked right now. When it cannot, each rule that needs one takes its fallback. |
Billing
plan required | STARTER PRO BUSINESS or null | ||||||
status required | TRIALING ACTIVE PAST_DUE EXPIRED NONE | ||||||
source required | STRIPE APP_STORE PLAY_STORE TRIAL COMP or null | ||||||
active required | boolean | ||||||
interval required | MONTH YEAR or null | ||||||
seats required | number Seats the workspace holds. | ||||||
seatsUsed required | number Members now plus open invitations, which hold a seat each. Above | ||||||
seatsIncluded required | number,null | ||||||
maxSeats required | number,null Null is unlimited, or no plan. | ||||||
trialEndsAt required | string,null | ||||||
currentPeriodEnd required | string,null | ||||||
cancelAtPeriodEnd required | boolean | ||||||
storeManaged required | boolean A live App Store or Google Play subscription owns this workspace, so the web cannot sell to it. | ||||||
store required | APP_STORE PLAY_STORE or null | ||||||
hasStripeSubscription required | boolean | ||||||
canOpenPortal required | boolean | ||||||
usage required | array of object The plan's counters for this month. Fields
| ||||||
stripeConfigured required | boolean | ||||||
cashsdkConfigured required | boolean |
BulkMemberResult
succeeded required | array of string | ||||
failed required | array of object Members the rules refused. They stay as they were, and the rest still change. Fields
|
CardStatements
array of object
from required | string |
to required | string |
open required | boolean True for the period still open today. |
count required | number |
spentMinor required | number |
creditedMinor required | number |
netMinor required | number |
currency required | string |
IntegrationHealth
provider required | QUICKBOOKS_ONLINE XERO FRESHBOOKS WAVE ZOHO_BOOKS SAGE NETSUITE GUSTO GOOGLE_DRIVE DROPBOX BOX ONEDRIVE GMAIL SLACK ZAPIER QUICKBOOKS_DESKTOP INTUIT_ENTERPRISE CAMPFIRE DUALENTRY RILLET ACCELO CERTINIA SAGE_BUSINESS_CLOUD SAASU BAMBOOHR HIBOB WORKDAY GOOGLE_WORKSPACE GREENHOUSE EVERNOTE QUICKBOOKS_TIME RIGHTSIGNATURE HR_SYNC BILL_COM SAP_CONCUR MICROSOFT_DYNAMICS MYOB ORACLE SAP_ERP | ||||||
slug required | string | ||||||
name required | string | ||||||
status required | CONNECTED NEEDS_ATTENTION DISCONNECTED | ||||||
organisationName required | string,null | ||||||
synced required | number | ||||||
pending required | number | ||||||
failed required | number | ||||||
skipped required | number | ||||||
voided required | number | ||||||
waiting required | number Approved expenses with no record yet. | ||||||
lastSyncedAt required | string,null | ||||||
tokenExpiresAt required | string,null | ||||||
refreshTokenExpiresAt required | string,null | ||||||
endsOnDate | boolean | ||||||
pausedUntil required | string,null | ||||||
pulledAt required | string,null | ||||||
postingPaused | object or nullFields
|
IntegrationList
array of object
provider required | QUICKBOOKS_ONLINE XERO FRESHBOOKS WAVE ZOHO_BOOKS SAGE NETSUITE GUSTO GOOGLE_DRIVE DROPBOX BOX ONEDRIVE GMAIL SLACK ZAPIER QUICKBOOKS_DESKTOP INTUIT_ENTERPRISE CAMPFIRE DUALENTRY RILLET ACCELO CERTINIA SAGE_BUSINESS_CLOUD SAASU BAMBOOHR HIBOB WORKDAY GOOGLE_WORKSPACE GREENHOUSE EVERNOTE QUICKBOOKS_TIME RIGHTSIGNATURE HR_SYNC BILL_COM SAP_CONCUR MICROSOFT_DYNAMICS MYOB ORACLE SAP_ERP | ||||||
slug required | string | ||||||
name required | string | ||||||
group required | ACCOUNTING PAYROLL HR CAPTURE STORAGE CHAT AUTOMATION | ||||||
availability required | NOT_CONFIGURED AVAILABLE CONNECTED NEEDS_ATTENTION EXPORT_AVAILABLE NOT_CONNECTED | ||||||
label required | string The short status, as printed on the card. | ||||||
description required | string | ||||||
export required | object or null The file that works today, with this provider or without it. Fields
| ||||||
organisationName required | string,null | ||||||
organisationChoices required | array of objectFields
| ||||||
lastSyncedAt required | string,null | ||||||
lastError required | string,null | ||||||
links required | array of objectFields
| ||||||
customerApp | boolean | ||||||
blockedBy | string |
InvitationPage
data required | array of objectFields
| ||||||||||||||||||||||||
nextCursor required | string,null Pass as |
InvitationSent
id required | string | ||||
email required | string | ||||
name required | string,null | ||||
role required | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN | ||||
status required | PENDING EXPIRED ACCEPTED REVOKED | ||||
invitedBy required | object or nullFields
| ||||
expiresAt required | string | ||||
acceptedAt required | string,null | ||||
revokedAt required | string,null | ||||
createdAt required | string | ||||
acceptUrl required | string The link the email carries. It works only for someone signed in with this address. |
MailInAllowance
period required | string YYYY-MM. | ||||||||
limit required | number Documents a month on this plan. | ||||||||
used required | number Held by this month's batches. It can pass the limit: paper that has arrived is scanned regardless. | ||||||||
remaining required | number | ||||||||
included required | boolean False when the plan does not include mail-in at all. | ||||||||
available required | boolean False until there is a mailroom to send paper to, whatever the plan says. | ||||||||
mailroomAddress required | string,null Where own-packaging paper goes. Null until a mailroom has one. | ||||||||
envelopes required | objectFields
|
MailInSettings
address required | object or nullFields
| ||||||||||||||||
updatedAt required | string,null |
MailInBatch
id required | string | ||||||||||||||||
reference required | string Printed on the packing slip and on the cover sheet. | ||||||||||||||||
workspaceReference required | string | ||||||||||||||||
status required | REQUESTED ENVELOPE_SENT IN_TRANSIT RECEIVED SCANNING COMPLETED RETURNED LOST CANCELLED | ||||||||||||||||
envelopes required | number | ||||||||||||||||
expectedDocuments required | number | ||||||||||||||||
documentCount required | number | ||||||||||||||||
afterScan required | RETURN SHRED | ||||||||||||||||
shippingAddress required | objectFields
| ||||||||||||||||
folderId required | string,null | ||||||||||||||||
trackingNumber required | string,null | ||||||||||||||||
notes required | string,null | ||||||||||||||||
requestedById required | string | ||||||||||||||||
requestedByName required | string,null Who this paper belongs to, as printed on the slip and the cover sheet. | ||||||||||||||||
requestedByEmail required | string,null | ||||||||||||||||
envelopeSentAt required | string,null | ||||||||||||||||
receivedAt required | string,null | ||||||||||||||||
completedAt required | string,null | ||||||||||||||||
createdAt required | string | ||||||||||||||||
updatedAt required | string |
MailInBatchPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
MailInRequested
id required | string | ||||||||||||||||
reference required | string Printed on the packing slip and on the cover sheet. | ||||||||||||||||
workspaceReference required | string | ||||||||||||||||
status required | REQUESTED ENVELOPE_SENT IN_TRANSIT RECEIVED SCANNING COMPLETED RETURNED LOST CANCELLED | ||||||||||||||||
envelopes required | number | ||||||||||||||||
expectedDocuments required | number | ||||||||||||||||
documentCount required | number | ||||||||||||||||
afterScan required | RETURN SHRED | ||||||||||||||||
shippingAddress required | objectFields
| ||||||||||||||||
folderId required | string,null | ||||||||||||||||
trackingNumber required | string,null | ||||||||||||||||
notes required | string,null | ||||||||||||||||
requestedById required | string | ||||||||||||||||
requestedByName required | string,null Who this paper belongs to, as printed on the slip and the cover sheet. | ||||||||||||||||
requestedByEmail required | string,null | ||||||||||||||||
envelopeSentAt required | string,null | ||||||||||||||||
receivedAt required | string,null | ||||||||||||||||
completedAt required | string,null | ||||||||||||||||
createdAt required | string | ||||||||||||||||
updatedAt required | string | ||||||||||||||||
envelopeAllowance required | objectFields
|
MailInDocumentPage
data required | array of objectFields
| ||||||||||||
nextCursor required | string,null Pass as |
Member
id required | string The membership: the id PATCH and DELETE /v1/members/:id take. | ||||
userId required | string | ||||
email required | string | ||||
name required | string,null | ||||
photoUrl required | string,null | ||||
pronouns required | string,null | ||||
personStatus required | object or null The note they set beside their name, until it clears. Fields
| ||||
role required | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN | ||||
status required | ACTIVE SUSPENDED | ||||
developer required | boolean Whether this person can reach API keys and webhooks: always for an owner, and for an admin only with the grant. False unless the caller has members.manage. | ||||
managerId required | string,null The manager's user id. | ||||
managerName required | string,null | ||||
title required | string,null | ||||
department required | string,null | ||||
employeeId required | string,null Null unless the caller has members.manage. | ||||
approvalLimitMinor required | number,null Null unless the caller has members.manage. | ||||
overLimitApproverId required | string,null Null unless the caller has members.manage. | ||||
forwardToId required | string,null Null unless the caller has members.manage. | ||||
workerStatus required | string,null Null unless the caller has members.manage. | ||||
defaultTags required | array of string Empty unless the caller has members.manage. | ||||
customField1 required | string,null | ||||
customField2 required | string,null | ||||
payrollCode required | string,null Goes out with payroll files. Null unless the caller manages members. | ||||
legalEntity required | string,null The company the person is employed by. Null unless the caller manages members. | ||||
tier required | string,null Their travel tier. Null unless the caller manages members. | ||||
officeLocation required | string,null The office they work from. Null unless the caller manages members. | ||||
costCenter required | string,null Where their costs are charged. Null unless the caller manages members. | ||||
accountingCode required | string,null Their code in the books. Null unless the caller manages members. | ||||
workerType required | string,null Employee, contractor or the like. Null unless the caller manages members. | ||||
createdAt required | string |
MemberPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
PaymentAccount
id required | string | ||||||||||
name required | string | ||||||||||
kind required | CREDIT_CARD DEBIT_CARD BANK_ACCOUNT CASH | ||||||||||
brand required | string,null | ||||||||||
last4 required | string,null | ||||||||||
isCompany required | boolean | ||||||||||
feedSource required | MANUAL FILE_IMPORT PLAID | ||||||||||
owner required | object or nullFields
| ||||||||||
institutionName required | string,null | ||||||||||
archived required | boolean | ||||||||||
transactionCount required | number | ||||||||||
unmatchedCount required | number | ||||||||||
lastPostedDate required | string,null | ||||||||||
lastImportedAt required | string,null When a line last arrived, from a file or the bank. | ||||||||||
transactionStartDate required | string,null | ||||||||||
statementCloseDay required | number,null | ||||||||||
liability required | PERSONAL CORPORATE | ||||||||||
reimbursable required | boolean,null | ||||||||||
allowDeletingTransactions required | boolean | ||||||||||
glAccount required | string,null | ||||||||||
createExpenses required | boolean | ||||||||||
assigneeEmail required | string,null Invited and not yet in: the card is theirs when they join. | ||||||||||
balance required | object or null What the bank last reported, when it reports these at all. Fields
| ||||||||||
createdAt required | string |
PaymentAccountPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
Reconciliation
from required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
to required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency required | string What every figure here is in. Ask for another with currency. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currencies required | array of object Every currency posted in these dates, each with its own count and net. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
importedMinor required | number What to hold against the card statement. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
importedCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
approvedMinor required | number What to hold against the liability account. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
approvedCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unapprovedMinor required | number What is left to accrue at month end, by where it is stuck. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unapprovedCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pendingMinor required | number Charges the bank has not posted, which are on no statement yet. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
buckets required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cards required | array of objectFields
|
ReportField
id required | string |
name required | string |
type required | TEXT DATE LIST FORMULA |
options required | array of string |
formula required | string,null |
required required | boolean |
enabled required | boolean |
position required | number |
disabledOptions | array of string List values turned off: kept on reports that hold them, and not offered for new ones. |
imported | boolean Came from the connected books, so it cannot be deleted and its values only turn on and off. |
ReportFieldList
data required | array of objectFields
|
ReportFieldsOff
deleted required | number Fields removed. Lists take work to build, so they are kept. |
disabled required | number Lists turned off and kept. |
SeatUsage
active required | number | ||||||||||||||||||||||
invited required | number Open invitations hold a seat until they are accepted, revoked or expire. | ||||||||||||||||||||||
included required | number,null | ||||||||||||||||||||||
paid required | number,null Seats the workspace holds, which is what stops an invitation. Null with no plan. | ||||||||||||||||||||||
max required | number,null The most seats this plan can hold. Null is unlimited. | ||||||||||||||||||||||
full required | object or null Set once every seat is taken or invited, with what to do about it. Fields
|
SyncRecordPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
Transaction
id required | string | ||||||||||||||||||||||
paymentAccount required | objectFields
| ||||||||||||||||||||||
postedDate required | string | ||||||||||||||||||||||
amountMinor required | number Positive is money spent. Negative is a refund or a payment to the card. | ||||||||||||||||||||||
currency required | string | ||||||||||||||||||||||
description required | string | ||||||||||||||||||||||
merchantName required | string,null | ||||||||||||||||||||||
state required | UNMATCHED MATCHED IGNORED EXPENSED PENDING | ||||||||||||||||||||||
matchScore required | number,null | ||||||||||||||||||||||
missingReceipt required | boolean Older than three days with no expense: a receipt is owed. | ||||||||||||||||||||||
expense required | object or nullFields
| ||||||||||||||||||||||
suggestions required | array of objectFields
|
TransactionPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
TransactionSummary
currency required | string What every figure here is in: the one asked for with currency, or the workspace currency when it has lines, or the commonest. | ||||||
currencies required | array of object Every currency these lines are in, each with its own count and net. Fields
| ||||||
count required | number | ||||||
spentMinor required | number | ||||||
creditedMinor required | number | ||||||
missingReceipts required | number | ||||||
byState required | array of objectFields
|
Workspace
id required | string | ||||||||||||||||||||||||||||||||||
name required | string | ||||||||||||||||||||||||||||||||||
kind required | PERSONAL TEAM | ||||||||||||||||||||||||||||||||||
baseCurrency required | string | ||||||||||||||||||||||||||||||||||
role required | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN | ||||||||||||||||||||||||||||||||||
country required | string | ||||||||||||||||||||||||||||||||||
timezone required | string | ||||||||||||||||||||||||||||||||||
fiscalYearStartMonth required | number | ||||||||||||||||||||||||||||||||||
distanceUnit required | string | ||||||||||||||||||||||||||||||||||
claimedDomain required | string,null | ||||||||||||||||||||||||||||||||||
requireMfa required | boolean | ||||||||||||||||||||||||||||||||||
retentionDays required | number,null Documents are deleted this many days after they are read. Null keeps them until someone deletes them. | ||||||||||||||||||||||||||||||||||
callLogRetentionDays required | number,null Days the API call log is kept. Null is the default of 365. | ||||||||||||||||||||||||||||||||||
preferences required | objectFields
| ||||||||||||||||||||||||||||||||||
permissions required | array of expenses.read_all expenses.write_all reports.read_all reports.approve reimbursements.manage members.manage settings.manage policies.manage billing.manage integrations.manage exports.all developer.manage audit.read documents.reveal cards.manage security.manage workspace.deleteWhat this caller may do here, from the role of the person the key belongs to. | ||||||||||||||||||||||||||||||||||
entitlement required | objectFields
| ||||||||||||||||||||||||||||||||||
services required | objectFields
| ||||||||||||||||||||||||||||||||||
usage required | map of number | ||||||||||||||||||||||||||||||||||
memberCount required | number | ||||||||||||||||||||||||||||||||||
sandboxOfId required | string,null The workspace this is the sandbox of. Null for a live workspace. | ||||||||||||||||||||||||||||||||||
readingModel required | standard rules_only always_second_readingWhat reads this workspace's documents. | ||||||||||||||||||||||||||||||||||
actingFor | object or nullFields
|
WorkspaceCounts
needsReview required | number |
processing required | number |
pendingApprovals required | number |
holdsApprovals required | boolean |
unmatchedTransactions required | number |
unreadNotifications required | number |
WorkspaceCreated
id required | string | ||||||||
name required | string | ||||||||
kind required | PERSONAL TEAM | ||||||||
baseCurrency required | string | ||||||||
role required | OWNER ADMIN APPROVER ACCOUNTANT AUDITOR MEMBER EDITOR CARD_ADMIN PEOPLE_ADMIN PAYMENTS_ADMIN | ||||||||
entitlement required | objectFields
| ||||||||
checkout required | object or null Set when a plan was named. Fields
|
WorkspacePage
data required | array of objectFields
| ||||||||||
nextCursor required | string,null Pass as |
Me
id required | string | ||||||||||
email required | string | ||||||||||
emailVerified required | boolean | ||||||||||
displayName required | string,null | ||||||||||
photoUrl required | string,null | ||||||||||
phone required | string,null | ||||||||||
language required | en es fr de el it ja nl pl pt-BR zh-HansThe language the interface is written in. | ||||||||||
highContrast required | boolean | ||||||||||
pronouns required | string,null | ||||||||||
personStatus required | object or null A note beside their name, until it clears. Fields
| ||||||||||
hasPrivateDetails required | boolean Whether anything is kept under the emailed code. The details never come back from here. | ||||||||||
locale required | string | ||||||||||
timezone required | string | ||||||||||
distanceUnit required | string | ||||||||||
onboarded required | boolean | ||||||||||
onboardingIntent required | string,null What they said they came for on first run. | ||||||||||
emailBounced required | boolean Their address bounced, so mail to it stopped until they fix it. | ||||||||||
phoneVerified required | boolean Firebase proved the number with a code. | ||||||||||
hasEmail required | boolean False for someone who came in with a phone number and has not added an address yet. | ||||||||||
locked required | boolean Locked after a report of suspicious activity. Only support can undo it. | ||||||||||
canChangeEmail required | boolean A domain group can keep the sign-in address where the company put it. | ||||||||||
canManageWorkspaces required | boolean A domain group can stop someone creating or closing workspaces. | ||||||||||
defaultWorkspaceId required | string,null | ||||||||||
forwardingAddress required | string | ||||||||||
workspaces required | array of objectFields
|
ForwardingAlias
alias required | string |
address required | string |
Blueprint
id required | string | ||||||||||||||||||
name required | string What blueprint_name takes. | ||||||||||||||||||
title required | string | ||||||||||||||||||
description required | string,null | ||||||||||||||||||
documentType required | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT | ||||||||||||||||||
builtIn required | boolean Ships with PaperTotal, and can be used and not changed. | ||||||||||||||||||
version required | number Changing a blueprint adds a version, and results keep the one that made them. | ||||||||||||||||||
schema required | objectFields
| ||||||||||||||||||
fields required | array of objectFields
| ||||||||||||||||||
createdAt required | string,null | ||||||||||||||||||
updatedAt required | string,null |
BlueprintList
data required | array of objectFields
| ||||||||||||
nextCursor required | null |
BlueprintDraft
documentId required | string | ||||||||||||||||||||||||||||||||||||
status required | READING READY FAILED | ||||||||||||||||||||||||||||||||||||
draft required | object or null A starting point. Nothing is saved until it is sent to POST /v1/blueprints. Fields
| ||||||||||||||||||||||||||||||||||||
error required | string,null |
Classification
id required | string | ||||
status required | UPLOADED PROCESSING PROCESSED FAILED | ||||
document_type required | object or null Null until it has been read. Fields
| ||||
engine required | rules claude or null | ||||
scores required | array of object The runners-up, best first. Fields
|
Extraction
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status required | UPLOADED PROCESSING PROCESSED FAILED | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
document_type required | object or null Null until it has been read. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
engine required | rules claude or null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
scores required | array of object The runners-up, best first. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extraction required | map of any or null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extraction_error required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
document required | objectFields
|
DocumentSet
id required | string | ||||||||||
kind required | ZIP BATCH SPLIT DOCUMENTS W2 BANK_STATEMENT PARSE | ||||||||||
status required | QUEUED PROCESSING COMPLETED FAILED | ||||||||||
originalFilename required | string,null | ||||||||||
pageCount required | number | ||||||||||
ranges required | array of object Pages found, 1-based and inclusive, with a type and score when classified. Fields
| ||||||||||
refused required | array of objectFields
| ||||||||||
error required | string,null | ||||||||||
documents required | array of objectFields
| ||||||||||
createdAt required | string | ||||||||||
completedAt required | string,null |
DocumentSetPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
ParsedDocument
id required | string | ||||||||||||||||
status required | UPLOADED PROCESSING PROCESSED FAILED | ||||||||||||||||
markdown required | string,null | ||||||||||||||||
meta required | object or nullFields
| ||||||||||||||||
tags required | array of string | ||||||||||||||||
title required | string,null | ||||||||||||||||
notes required | string,null | ||||||||||||||||
externalId required | string,null | ||||||||||||||||
setId required | string,null | ||||||||||||||||
createdAt required | string | ||||||||||||||||
boxes | array of object With details: every recognized line and where it sits. Fields
|
ParsedDocumentPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
DocumentUpload
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source | WEB IOS ANDROID EMAIL API MAIL_IN INTEGRATION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
originalFilename | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mimeType | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeBytes | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageCount | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
externalId | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
folderId | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenseId | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mailInBatchId | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
latitude | number,null Where the device said it was when the photo was taken. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
longitude | number,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locationAccuracyM | number,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
duplicateOfId | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processingError | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processingErrorCode | FILE_ENCRYPTED or nullSet when the failure is one the file's owner can fix. processingError says what to do. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
verification | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
capturedAt | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processedAt | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
viewedAt | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
archivedAt | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uploadedBy | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pages | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
classification | object or null What the classifier decided, when it was asked. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
blueprint | object or null The blueprint this was read with, and what came out of it. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tags | array of string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tagRefs | array of object The same tags with their ids, which a tag route takes. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recordStatus | processed reviewed archived or nullWhere a read document stands: reviewedAt and archivedAt in one word. Null until it has been read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
duplicates | array of object Near copies past the workspace threshold, best first. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setId | string,null The upload this came out of: a ZIP, a split PDF or a batch of addresses. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customFields | map of string or array of string or null Values the workspace custom field rules read out of the text. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enrichment | object or null Work still running after the first answer. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extraction | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fraud | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sealed | array of object Bank and tax numbers read from this document, as masks. POST /v1/documents/{id}/reveal opens them. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
updatedAt | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extractor | string,null What read it: rules, claude, a blueprint, business-card, or none. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ocrText | string,null Everything read off the page. Card, bank and tax numbers are masked. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pdfUrl | string,null The PDF as uploaded, signed for 15 minutes. Null for an image, and for a PDF that prints a number only a reveal hands out. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reviewedAt | string,null A person checked what was read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
approvedAt | string,null A developer's own approved flag. An expense's approval is a different thing. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object | document_setSet on the answer to a ZIP, which holds kind, documentIds and refused instead of a document. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kind | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
documentIds | array of string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
refused | array of objectFields
|
InboundEmailPage
data required | array of objectFields
| ||||||||||||||||||||||
nextCursor required | string,null Pass as |
ExpenseDuplicateGroup
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
hidden required | number Copies in the group the caller cannot read. |
WorkflowRun
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||
workflowId required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||
version required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||
status required | RUNNING PAUSED COMPLETED FAILED CANCELLED | ||||||||||||||||||||||||||||||||||||||||||||||||||
trigger required | API MANUAL SCHEDULE GMAIL GOOGLE_DRIVE DROPBOX EMAIL | ||||||||||||||||||||||||||||||||||||||||||||||||||
startNodeId required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||
documents required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||
error required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||
finishedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||
steps required | array of objectFields
|
WorkflowRunSummary
id required | string |
workflowId required | string |
version required | number |
status required | RUNNING PAUSED COMPLETED FAILED CANCELLED |
trigger required | API MANUAL SCHEDULE GMAIL GOOGLE_DRIVE DROPBOX EMAIL |
startNodeId required | string |
documents required | number |
error required | string,null |
createdAt required | string |
finishedAt required | string,null |
WorkflowRunPage
data required | array of objectFields
| ||||||||||||||||||||
nextCursor required | string,null Pass as |
Error
error required | objectFields
|
Attachment
id required | string |
filename required | string |
contentType required | string |
sizeBytes required | integer |
url required | string A signed link that lasts 15 minutes. |
UploadTicket
uploadId required | string |
method required | PUT |
url required | string Send exactly sizeBytes bytes here, with these headers. It goes straight to storage. |
headers required | map of string The signature covers these, so send them exactly. |
expiresAt required | string When the URL stops working. If a PUT fails, ask for a new ticket and try once more. |
AnalyticsSummary
totalMinor required | number | ||||||
count required | number | ||||||
averageMinor required | number | ||||||
unconverted required | number Expenses with no exchange rate yet. They are not in these totals. | ||||||
reimbursableMinor required | number | ||||||
billableMinor required | number | ||||||
previous required | objectFields
| ||||||
changePct required | number,null | ||||||
from required | string | ||||||
to required | string | ||||||
previousFrom required | string | ||||||
previousTo required | string | ||||||
currency required | string Every amount here is in this currency: the workspace's base, or the one | ||||||
convertedFrom required | string,null Set when |
Breakdown
dimension required | merchant category project member tag department | ||||||||||||||
totalMinor required | number | ||||||||||||||
previousTotalMinor required | number | ||||||||||||||
averageMinor required | number What one row spends on average in this period, over every row and not only those within | ||||||||||||||
rows required | array of objectFields
| ||||||||||||||
other required | object or null Everything past Fields
| ||||||||||||||
overlapping required | boolean True for tags: one expense can carry several, so rows can add up to more than the total. | ||||||||||||||
from required | string | ||||||||||||||
to required | string | ||||||||||||||
previousFrom required | string | ||||||||||||||
previousTo required | string | ||||||||||||||
currency required | string Every amount here is in this currency: the workspace's base, or the one | ||||||||||||||
convertedFrom required | string,null Set when |
Trend
interval required | day week month quarter year running | ||||||||||||||||||
points required | array of objectFields
| ||||||||||||||||||
totalMinor required | number | ||||||||||||||||||
count required | number | ||||||||||||||||||
averageMinor required | number What one point spends on average. For a running total, what each step adds on average. | ||||||||||||||||||
from required | string | ||||||||||||||||||
to required | string | ||||||||||||||||||
previousFrom required | string | ||||||||||||||||||
previousTo required | string | ||||||||||||||||||
currency required | string Every amount here is in this currency: the workspace's base, or the one | ||||||||||||||||||
convertedFrom required | string,null Set when |
Budget
id required | string | ||||||||||
scope required | CATEGORY TAG MEMBER | ||||||||||
targetId required | string | ||||||||||
targetName required | string | ||||||||||
period required | MONTH YEAR | ||||||||||
periodKey required | string 2026-03 for a month, 2026 for a fiscal year. | ||||||||||
periodStart required | string | ||||||||||
periodEnd required | string | ||||||||||
currency required | string | ||||||||||
totalMinor required | number,null | ||||||||||
perMemberMinor required | number,null | ||||||||||
thresholds required | array of number | ||||||||||
total required | object or null Everyone together. Null when the budget has no shared limit. Fields
| ||||||||||
mine required | object or null The caller's own share. Null when they have no limit of their own here. Fields
|
BudgetPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
BulkDocumentResult
updated required | number |
skipped required | number Not found, not the caller's to change, or backing an expense on a submitted report. |
nextCursor | string,null With a filter: send this back as cursor until it is null. |
DocumentCount
count required | number |
TrashActionResult
updated required | number |
skipped required | number |
more required | boolean With all: there is more to do. Call again. |
TrashedDocumentPage
data required | array of objectFields
| ||||||||||||||||
nextCursor required | string,null Pass as |
BulkExpenseResult
updated required | number |
skipped required | number |
BulkReportResult
succeeded required | array of string | ||||||||
failed required | array of objectFields
|
CatalogImportResult
created required | number | ||||
updated required | number | ||||
skipped required | number Rows that matched an existing record and changed nothing, or repeated an earlier row. | ||||
errors required | array of object Rows that could not be used. Fields
| ||||
removed | number A replace: categories the file left out and nothing used, now deleted. | ||||
disabled | number A replace: categories the file left out that something still uses, now turned off. |
Category
id required | string |
parentId required | string,null |
name required | string |
glCode required | string,null |
taxLine required | string,null |
origin required | SYSTEM CUSTOM ACCOUNTINGWhere it came from: the workspace template, a person, or an import from the connected books. |
deductiblePct required | number |
headerOnly required | boolean A heading over its subcategories. It groups the list and cannot be chosen on an expense. |
enabled required | boolean |
system required | boolean |
position required | number |
expenseCount required | number A category on any expense cannot be deleted, only disabled. |
type required | EXPENSE COGS INCOME REFUND |
payrollCode required | string,null Null unless the caller manages settings or exports: payroll codes are not for everyone. |
descriptionHint required | string,null Shown under the description while someone fills in an expense. |
approverId required | string,null Sees any report carrying this category before the usual approvers. |
approverName required | string,null |
commentRequired required | boolean An expense here needs a description, or it carries a finding on its report. |
maxExpenseMinor required | number,null An expense here over this, in the workspace's currency, carries a finding on its report. |
CategoryPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
CommentPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
CreatedId
id required | string |
PostedComment
id required | string | ||||||||||
body required | string | ||||||||||
attachments required | array of objectFields
| ||||||||||
editedAt required | string,null | ||||||||||
author required | objectFields
| ||||||||||
system | boolean PaperTotal wrote this, about something that happened to the report. | ||||||||||
actedBy required | object or null The delegate who really wrote it, when that was not the author. Fields
| ||||||||||
mentions required | array of objectFields
| ||||||||||
createdAt required | string | ||||||||||
unreachable required | array of object Members the comment named who cannot read this, so were not mentioned or told. Fields
|
MentionablePeople
data required | array of objectFields
|
Contact
id required | string |
name required | string Always something to show: the name, else the company, else the first address or number. |
firstName required | string,null |
lastName required | string,null |
company required | string,null |
title required | string,null |
emails required | array of string |
phones required | array of string |
mobile required | string,null |
fax required | string,null |
website required | string,null |
address required | string,null |
city required | string,null |
region required | string,null |
postalCode required | string,null |
country required | string,null |
notes required | string,null |
editedFields required | array of string Fields a person changed, which reading the card again leaves alone. |
documentId required | string,null |
logoUrl required | string,null The logo cut from the card, signed for 15 minutes. It stays when the card is deleted. |
faxes required | array of string Every fax number on the card, the first being fax. |
cardImageUrl required | string,null |
thumbnailUrl required | string,null |
createdAt required | string |
updatedAt required | string |
ContactPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
CustomField
id required | string |
key required | string |
label required | string |
type required | TEXT NUMBER DATE SELECT BOOLEAN |
options required | array of string |
required required | boolean |
position required | number |
CustomFieldPage
data required | array of objectFields
| ||||||||||||||
nextCursor required | string,null Pass as |
DeviceBlock
id required | string |
deviceId required | string |
reason required | string,null |
createdAt required | string |
DeviceBlockPage
data required | array of objectFields
| ||||||||
nextCursor required | string,null Pass as |
DeviceBlockStatus
deviceId required | string | ||||||||
blocked required | boolean | ||||||||
block required | object or nullFields
|
Document
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type required | RECEIPT INVOICE BILL BANK_STATEMENT CHECK TAX_FORM BUSINESS_CARD OTHER UNKNOWN PURCHASE_ORDER CONTRACT PACKING_SLIP REMITTANCE_ADVICE CREDIT_NOTE STATEMENT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source required | WEB IOS ANDROID EMAIL API MAIL_IN INTEGRATION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status required | UPLOADED PROCESSING PROCESSED FAILED | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
originalFilename required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mimeType required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sizeBytes required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pageCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
externalId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
folderId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenseId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mailInBatchId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
latitude required | number,null Where the device said it was when the photo was taken. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
longitude required | number,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locationAccuracyM required | number,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
duplicateOfId required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processingError required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processingErrorCode required | FILE_ENCRYPTED or nullSet when the failure is one the file's owner can fix. processingError says what to do. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
verification required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
capturedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
processedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
viewedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
archivedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uploadedBy required | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pages required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
classification required | object or null What the classifier decided, when it was asked. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
blueprint required | object or null The blueprint this was read with, and what came out of it. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tags required | array of string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tagRefs required | array of object The same tags with their ids, which a tag route takes. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
recordStatus required | processed reviewed archived or nullWhere a read document stands: reviewedAt and archivedAt in one word. Null until it has been read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
duplicates required | array of object Near copies past the workspace threshold, best first. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setId required | string,null The upload this came out of: a ZIP, a split PDF or a batch of addresses. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customFields required | map of string or array of string or null Values the workspace custom field rules read out of the text. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enrichment required | object or null Work still running after the first answer. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extraction required | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fraud required | object or nullFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sealed required | array of object Bank and tax numbers read from this document, as masks. POST /v1/documents/{id}/reveal opens them. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
updatedAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extractor required | string,null What read it: rules, claude, a blueprint, business-card, or none. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ocrText required | string,null Everything read off the page. Card, bank and tax numbers are masked. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pdfUrl required | string,null The PDF as uploaded, signed for 15 minutes. Null for an image, and for a PDF that prints a number only a reveal hands out. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reviewedAt required | string,null A person checked what was read. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
approvedAt required | string,null A developer's own approved flag. An expense's approval is a different thing. |
DocumentOriginal
url required | string Signed for 15 minutes. Opening it downloads the file as uploaded. |
filename required | string |
mimeType required | string |
RevealedDocument
documentId required | string | ||||||||||||
values required | array of objectFields
| ||||||||||||
original required | object or nullFields
| ||||||||||||
pages required | array of objectFields
|
CheckWithDocument
check required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
document required | objectFields
|
DocumentText
text required | string,null Everything recognized on the document. Card numbers are already masked. |
language required | string,null |
DownloadableFile
filename required | string |
contentType required | string |
content required | string |
ExpenseDetail
id required | string | ||||||||||||||||||
number required | number | ||||||||||||||||||
reference required | string | ||||||||||||||||||
status required | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID | ||||||||||||||||||
kind required | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD | ||||||||||||||||||
merchantName required | string,null | ||||||||||||||||||
tripTitle required | string,null For a trip, what to call it in a list. | ||||||||||||||||||
description required | string,null | ||||||||||||||||||
date required | string | ||||||||||||||||||
currency required | string | ||||||||||||||||||
amountMinor required | number | ||||||||||||||||||
baseAmountMinor required | number | ||||||||||||||||||
taxMinor required | number,null | ||||||||||||||||||
category required | object or nullFields
| ||||||||||||||||||
alsoCategories required | array of object Further categories it can be found under. Its money stays in category. Fields
| ||||||||||||||||||
project required | object or nullFields
| ||||||||||||||||||
client required | object or nullFields
| ||||||||||||||||||
owner required | objectFields
| ||||||||||||||||||
moneyFlow required | IN OUTWhich way the money went. | ||||||||||||||||||
invoiceNumber required | string,null | ||||||||||||||||||
matched required | boolean A card charge has been matched to it. | ||||||||||||||||||
connectedApps required | array of string Connected services it has been posted to. | ||||||||||||||||||
reportId required | string,null | ||||||||||||||||||
externalId required | string,null A developer's own reference, exactly as sent. | ||||||||||||||||||
billable required | boolean | ||||||||||||||||||
reimbursable required | boolean | ||||||||||||||||||
paymentType required | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER or null | ||||||||||||||||||
confidence required | number,null | ||||||||||||||||||
flags required | array of objectFields
| ||||||||||||||||||
reviewFields required | array of string | ||||||||||||||||||
thumbnailUrl required | string,null | ||||||||||||||||||
documentId required | string,null | ||||||||||||||||||
tags required | array of objectFields
| ||||||||||||||||||
attendeeCount required | number | ||||||||||||||||||
fxRate required | number What one unit of the expense currency is worth in the base currency. Zero means no rate is available yet, so baseAmountMinor is zero too and the expense is held in review. | ||||||||||||||||||
held required | boolean Held back from its report until someone releases it. | ||||||||||||||||||
createdAt required | string | ||||||||||||||||||
updatedAt required | string | ||||||||||||||||||
notes required | string,null | ||||||||||||||||||
subtotalMinor required | number,null | ||||||||||||||||||
tipMinor required | number,null | ||||||||||||||||||
discountMinor required | number,null | ||||||||||||||||||
shippingMinor required | number,null | ||||||||||||||||||
paymentAccountId required | string,null | ||||||||||||||||||
cardLast4 required | string,null | ||||||||||||||||||
poNumber required | string,null The buyer's purchase order number, as an invoice prints it. | ||||||||||||||||||
dueDate required | string,null When an invoice falls due. | ||||||||||||||||||
mcc required | string,null The merchant category code a card network gave the merchant, four digits. | ||||||||||||||||||
taxDeductible required | boolean | ||||||||||||||||||
quantity required | number,null | ||||||||||||||||||
rateMinor required | number,null | ||||||||||||||||||
unit required | string,null | ||||||||||||||||||
trip required | map of any or null | ||||||||||||||||||
vehicleId required | string,null | ||||||||||||||||||
attendees required | array of objectFields
| ||||||||||||||||||
customFields required | map of any | ||||||||||||||||||
editedFields required | array of string | ||||||||||||||||||
duplicateOfId required | string,null | ||||||||||||||||||
duplicateReview required | object or null What the second look at a flagged copy decided, and why. Fields
| ||||||||||||||||||
canSettleDuplicate required | boolean Whether the caller can answer the duplicate question on this expense. | ||||||||||||||||||
splitParentId required | string,null | ||||||||||||||||||
access required | object What the caller may do with it. Fields
| ||||||||||||||||||
splitInto required | array of object This expense was divided: its parts now count in its place. Fields
| ||||||||||||||||||
mergedIntoId required | string,null A merge absorbed this expense. Where it went. | ||||||||||||||||||
report required | object or null The report this expense is on, named even where the caller could not list it. Fields
| ||||||||||||||||||
lines required | array of objectFields
| ||||||||||||||||||
documentIds required | array of string |
ExpensePage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
ExpenseTotals
count required | number |
moneyOutMinor required | number Money out, in the base currency. |
moneyInMinor required | number Money in, in the base currency: income, refunds and credits, as a positive figure. |
baseAmountMinor required | number In the workspace's base currency. A credit or a refund is negative, so it brings this down. |
currency required | string |
unconverted required | number Counted, but with no exchange rate yet, so they add nothing to the amount. |
totalMinor required | number
|
totalCurrency required | string |
convertedFrom required | string,null Set when |
ExportJob
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kind required | expenses report tax mileage receipts documents | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
format required | CSV XLSX PDF ZIP QBO_CSV XERO_CSV SAGE_CSV DYNAMICS_CSV MYOB_TXT ORACLE_CSV SAP_CSV IIF OFX JSON XML TXT XLS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status required | EXPIRED FAILED COMPLETED QUEUED RUNNING | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filters required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filename required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rowCount required | number,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error required | string,null Why it failed, written for a person. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes required | array of string What a finished file left out, such as credits a bill import cannot take. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
requestedBy required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onFinish required | object or null How the actions the export asked for went. Null when it asked for none. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
completedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expiresAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
downloadUrl required | string,null Signed, valid for 15 minutes. Null until the file is ready and after it expires. |
ExportJobPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
Folder
id required | string |
parentId required | string,null |
name required | string |
documentCount required | number |
FolderPage
data required | array of objectFields
| ||||||||
nextCursor required | string,null Pass as |
Hold
id required | string | ||||||||
held required | boolean | ||||||||
flags required | array of objectFields
|
Reached
reached required | array of string Who can read it now and has been told. |
Merchant
id required | string | ||||
name required | string | ||||
defaultCategoryId required | string,null | ||||
website required | string,null | ||||
phone required | string,null | ||||
address required | string,null | ||||
taxId required | string,null | ||||
is1099 required | boolean | ||||
merchantType required | airline lodging car_rental ground_transport fuel dining grocery office software utilities supplies other or nullWhat kind of business this is. Null lets a rule work it out from the card code or the name. | ||||
expenseCount required | number | ||||
totalMinor required | number Non-void expenses, in the workspace's base currency. | ||||
aliases required | array of object Other spellings that file here: left by a merge or a rename. Fields
|
MerchantPage
data required | array of objectFields
| ||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
MileageLog
from required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
to required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rows required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totals required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
months required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tally required | object or null Where the person stands against a yearly limit, for a rate that drops after it. Fields
|
MileageRate
id required | string |
name required | string |
unit required | mi km |
rateMinor required | number A hundredth of a cent per unit, so 72.5 cents is 7250. |
currency required | string |
effectiveFrom required | string |
effectiveTo required | string,null The last day this rate covers. Null runs until a newer rate of the same name. |
isDefault required | boolean |
archived required | boolean |
taxBasisPoints required | number,null Tax on the reclaimable part, in hundredths of a percent. 2000 is 20%. Used while the workspace tracks tax on distance. |
taxReclaimableMinor required | number,null The fixed part of this rate tax can be reclaimed on, at the same scale as rateMinor. |
autoGenerated required | boolean The government-rate job added this row, and no admin has changed its amount, start or end. |
MileageRatePage
data required | array of objectFields
| ||||||||||||||||||||||||
nextCursor required | string,null Pass as |
PerDiemRate
id required | string |
name required | string |
country required | string,null |
region required | string,null |
amountMinor required | number |
currency required | string |
archived required | boolean |
PerDiemRatePage
data required | array of objectFields
| ||||||||||||||
nextCursor required | string,null Pass as |
Project
id required | string |
name required | string |
code required | string,null |
clientId required | string,null |
clientName required | string,null |
budgetMinor required | number,null |
spentMinor required | number Non-void expenses, in the workspace's base currency. |
expenseCount required | number |
archived required | boolean |
ProjectPage
data required | array of objectFields
| ||||||||||||||||||
nextCursor required | string,null Pass as |
ReportDetail
purpose required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rejectionReason required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rejectedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reimbursedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exportedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenses required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findings required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
approvals required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
participants required | array of object People added to the report. They can read it and comment, nothing more. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fields required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
titleLocked required | boolean True when a title typed here would be refused: the workspace's formula sets it. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
noApprovalStep required | boolean Submitting needs nobody's approval, so it finishes the report. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exportable required | boolean This person can export this report or share it. Someone added only to read and comment cannot. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ccEmails required | array of string Addresses outside the workspace copied on each submission. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
canPickApprover required | boolean A draft whose workflow leaves the next approver open, so the person submitting can name one. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
canSendOutside required | boolean A draft in a workspace with nobody else to approve it, which can go to someone outside instead. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
outsideApprover required | object or null Someone with no account has this report, through a link. A null email is a link that went out on a PDF. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenseColumns required | map of object What the expense table's optional columns read, by expense id. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
customFieldLabels required | object The workspace's first two custom fields, which the Custom field 1 and 2 columns show. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
withdrawalId required | string,null The batch that pays this report. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
internationalReimbursementId required | string,null The same, where the batch pays in another currency than the workspace's. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
final required | boolean Nothing more is due: paid, or approved with nothing to pay, or done. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findingsAccepted required | object or null Someone has reviewed and accepted what the receipt checks found. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
auditNote required | string,null What the receipt audit did on this report, on a plan that has it. There even when it found nothing. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
needsAcceptance required | boolean Receipt checks found something, and approving this report has to wait for someone to accept it. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timeline required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
heldExpenseIds required | array of string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actions required | array of delete approve submit retract reject reopen close mark_exported mark_reimbursed edit reassign duplicate invite accept_findings received_payment | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
selfApproval required | boolean True when the caller's approval would be a self-approval the workspace allows. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deciding required | boolean The caller holds a step that is live now, for themselves or as a delegate. Without one, a workspace admin has to bypass. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
number required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reference required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status required | DRAFT SUBMITTED APPROVED REJECTED REIMBURSED EXPORTED CLOSED | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stage required | DRAFT SUBMITTED OUTSTANDING APPROVED REJECTED PAID EXPORTED DONE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentStage required | MARKED_AS_PAID WITHDRAWING CONFIRMED or null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
owner required | objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
totalMinor required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reimbursableMinor required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expenseCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
findingCount required | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
periodStart required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
periodEnd required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
autoCreated required | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
waitingOn required | array of object Who the report is with right now. Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
submittedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
approvedAt required | string,null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createdAt required | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
updatedAt required | string |
ReportPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
Tag
id required | string |
name required | string |
groupName required | string,null |
glCode required | string,null |
color required | string,null |
archived required | boolean |
expenseCount required | number |
approverId required | string,null Reviews any report carrying this tag, after any category approvers and ahead of the workflow. |
approverName required | string,null |
parentId required | string,null The tag this one sits under. An expense carrying this one has to carry that one too. |
parentName required | string,null |
TagPage
data required | array of objectFields
| ||||||||||||||||||||||
nextCursor required | string,null Pass as |
TaxSummary
year required | number | ||||||||||||||||||||||||
from required | string | ||||||||||||||||||||||||
to required | string | ||||||||||||||||||||||||
fiscalYearStartMonth required | number | ||||||||||||||||||||||||
currency required | string | ||||||||||||||||||||||||
notice required | string | ||||||||||||||||||||||||
mileageNotice required | string | ||||||||||||||||||||||||
lines required | array of objectFields
| ||||||||||||||||||||||||
mileage required | array of objectFields
| ||||||||||||||||||||||||
unassigned required | object Spending on a category with no tax line, or on no category. Fields
| ||||||||||||||||||||||||
excluded required | object Expenses a person marked as not deductible. Fields
| ||||||||||||||||||||||||
payees required | object 1099s follow the calendar year whatever the fiscal year, so this has its own dates. Fields
| ||||||||||||||||||||||||
needsReview required | number Counted above, but a person has not confirmed them yet. | ||||||||||||||||||||||||
unconverted required | number Expenses with no exchange rate yet. They are not in these figures. | ||||||||||||||||||||||||
spentMinor required | number | ||||||||||||||||||||||||
deductibleMinor required | number |
TravelTrip
id required | string | ||||||||||||||||||
ownerId required | string | ||||||||||||||||||
name required | string | ||||||||||||||||||
origin required | string,null | ||||||||||||||||||
destination required | string,null | ||||||||||||||||||
departsOn required | string YYYY-MM-DD. | ||||||||||||||||||
returnsOn required | string,null YYYY-MM-DD. | ||||||||||||||||||
merchantName required | string,null | ||||||||||||||||||
bookingReference required | string,null | ||||||||||||||||||
currency required | string,null | ||||||||||||||||||
totalMinor required | number,null In minor units of the currency: 1250 is 12.50. | ||||||||||||||||||
segments required | array of object Flights, stays, cars and trains, in order. Fields
| ||||||||||||||||||
documentIds required | array of string The itinerary and the receipts filed against this trip. | ||||||||||||||||||
createdAt required | string | ||||||||||||||||||
updatedAt required | string |
TravelTripPage
data required | array of objectFields
| ||||||||||||||||||||||||||||||||||||||||||||||||
nextCursor required | string,null Pass as |
Trip
expenseId required | string | ||||||
reference required | string | ||||||
status required | string | ||||||
owner required | objectFields
| ||||||
date required | string | ||||||
purpose required | string | ||||||
origin required | string | ||||||
stops required | array of string Places along the way. | ||||||
destination required | string | ||||||
originLabel required | string,null The name of a saved place at this address, such as Home. | ||||||
destinationLabel required | string,null | ||||||
departed required | string,null HH:MM. | ||||||
arrived required | string,null HH:MM. | ||||||
distance required | number | ||||||
unit required | string | ||||||
calculation required | string How the amount was reached: 8.1 mi x $0.76/mi = $6.16. | ||||||
purposeKind required | business medical charityWhat the trip was for, by the rate it took. | ||||||
roundTrip required | boolean | ||||||
odometerStart required | number,null | ||||||
odometerEnd required | number,null | ||||||
odometerPhotos required | object Documents holding a photo of each reading, and the one image they are merged into. Fields
| ||||||
receiptDocumentId required | string,null The generated mileage receipt. | ||||||
vehicle required | object or nullFields
| ||||||
rateMinor required | number A hundredth of a cent per unit. | ||||||
rateName required | string,null | ||||||
amountMinor required | number | ||||||
currency required | string | ||||||
entry required | MANUAL ODOMETER MAP GPSHow the distance came to be known. Only MAP and GPS were measured. | ||||||
driven required | number The whole drive. | ||||||
commuteExcluded required | number,null The commute taken off this trip, or null if none was. | ||||||
taxMinor required | number,null The tax on this trip, when its workspace tracks tax on distance. |
TripRoutes
array of object
origin required | string |
stops required | array of string |
destination required | string |
distance required | number One way, as it would be typed. |
unit required | string |
roundTrip required | boolean |
lastDriven required | string |
uses required | number |
ExpenseDetails
array of object
id required | string | ||||||||||||||||||
number required | number | ||||||||||||||||||
reference required | string | ||||||||||||||||||
status required | PROCESSING NEEDS_REVIEW READY SUBMITTED APPROVED REJECTED REIMBURSED VOID | ||||||||||||||||||
kind required | RECEIPT MANUAL MILEAGE PER_DIEM TIME CARD | ||||||||||||||||||
merchantName required | string,null | ||||||||||||||||||
tripTitle required | string,null For a trip, what to call it in a list. | ||||||||||||||||||
description required | string,null | ||||||||||||||||||
date required | string | ||||||||||||||||||
currency required | string | ||||||||||||||||||
amountMinor required | number | ||||||||||||||||||
baseAmountMinor required | number | ||||||||||||||||||
taxMinor required | number,null | ||||||||||||||||||
category required | object or nullFields
| ||||||||||||||||||
alsoCategories required | array of object Further categories it can be found under. Its money stays in category. Fields
| ||||||||||||||||||
project required | object or nullFields
| ||||||||||||||||||
client required | object or nullFields
| ||||||||||||||||||
owner required | objectFields
| ||||||||||||||||||
moneyFlow required | IN OUTWhich way the money went. | ||||||||||||||||||
invoiceNumber required | string,null | ||||||||||||||||||
matched required | boolean A card charge has been matched to it. | ||||||||||||||||||
connectedApps required | array of string Connected services it has been posted to. | ||||||||||||||||||
reportId required | string,null | ||||||||||||||||||
externalId required | string,null A developer's own reference, exactly as sent. | ||||||||||||||||||
billable required | boolean | ||||||||||||||||||
reimbursable required | boolean | ||||||||||||||||||
paymentType required | CASH PERSONAL_CARD COMPANY_CARD BANK_TRANSFER CHECK PAYPAL OTHER or null | ||||||||||||||||||
confidence required | number,null | ||||||||||||||||||
flags required | array of objectFields
| ||||||||||||||||||
reviewFields required | array of string | ||||||||||||||||||
thumbnailUrl required | string,null | ||||||||||||||||||
documentId required | string,null | ||||||||||||||||||
tags required | array of objectFields
| ||||||||||||||||||
attendeeCount required | number | ||||||||||||||||||
fxRate required | number What one unit of the expense currency is worth in the base currency. Zero means no rate is available yet, so baseAmountMinor is zero too and the expense is held in review. | ||||||||||||||||||
held required | boolean Held back from its report until someone releases it. | ||||||||||||||||||
createdAt required | string | ||||||||||||||||||
updatedAt required | string | ||||||||||||||||||
notes required | string,null | ||||||||||||||||||
subtotalMinor required | number,null | ||||||||||||||||||
tipMinor required | number,null | ||||||||||||||||||
discountMinor required | number,null | ||||||||||||||||||
shippingMinor required | number,null | ||||||||||||||||||
paymentAccountId required | string,null | ||||||||||||||||||
cardLast4 required | string,null | ||||||||||||||||||
poNumber required | string,null The buyer's purchase order number, as an invoice prints it. | ||||||||||||||||||
dueDate required | string,null When an invoice falls due. | ||||||||||||||||||
mcc required | string,null The merchant category code a card network gave the merchant, four digits. | ||||||||||||||||||
taxDeductible required | boolean | ||||||||||||||||||
quantity required | number,null | ||||||||||||||||||
rateMinor required | number,null | ||||||||||||||||||
unit required | string,null | ||||||||||||||||||
trip required | map of any or null | ||||||||||||||||||
vehicleId required | string,null | ||||||||||||||||||
attendees required | array of objectFields
| ||||||||||||||||||
customFields required | map of any | ||||||||||||||||||
editedFields required | array of string | ||||||||||||||||||
duplicateOfId required | string,null | ||||||||||||||||||
duplicateReview required | object or null What the second look at a flagged copy decided, and why. Fields
| ||||||||||||||||||
canSettleDuplicate required | boolean Whether the caller can answer the duplicate question on this expense. | ||||||||||||||||||
splitParentId required | string,null | ||||||||||||||||||
access required | object What the caller may do with it. Fields
| ||||||||||||||||||
splitInto required | array of object This expense was divided: its parts now count in its place. Fields
| ||||||||||||||||||
mergedIntoId required | string,null A merge absorbed this expense. Where it went. | ||||||||||||||||||
report required | object or null The report this expense is on, named even where the caller could not list it. Fields
| ||||||||||||||||||
lines required | array of objectFields
| ||||||||||||||||||
documentIds required | array of string |
Vehicle
id required | string |
userId required | string |
ownerName required | string,null |
name required | string |
plate required | string,null |
archived required | boolean |
expenseCount required | number |
VehiclePage
data required | array of objectFields
| ||||||||||||||
nextCursor required | string,null Pass as |
ApiKeyVerification
id required | string |
name required | string |
prefix required | string The first characters of the key. |
kind required | PERSONAL WORKSPACEPERSONAL acts as the person who made it and ends when they leave. WORKSPACE belongs to the workspace and outlives them. |
environment required | LIVE TEST |
workspaceId required | string |
scopes required | array of string Every scope this key holds right now. |
fullAccess required | boolean Every scope, present and future. |
role required | string The role its reach is measured against: a scope opens a route, and the role decides what the route may do. |
signingRequired required | boolean A request with no valid signature is refused. |
expiresAt required | string,null |
ClientCertificate
id required | string |
name required | string |
fingerprint required | string SHA-256 of the certificate, lowercase hex. |
subject required | string,null |
notAfter required | string,null |
revokedAt required | string,null |
createdAt required | string |
ClientCertificatePage
data required | array of objectFields
| ||||||||||||||
nextCursor required | string,null Pass as |
ReleaseNotePage
data required | array of objectFields
| ||||||||||||||
nextCursor required | string,null Pass as |
WebhookDelivery
id required | string |
endpointId required | string |
eventId required | string |
eventType required | string |
state required | FAILED PENDING DELIVERED ABANDONED |
attempts required | number |
responseStatus required | number,null |
responseBody required | string,null |
nextAttemptAt required | string,null |
deliveredAt required | string,null |
createdAt required | string |
payload required | any |
WebhookDeliveryPage
data required | array of objectFields
| ||||||||||||||||||||||||
nextCursor required | string,null Pass as |
WebhookEndpoint
status required | PENDING CONFIRMEDPENDING receives the subscription event and nothing else, until POST /v1/webhooks/confirm. |
pendingUntil required | string,null A pending endpoint not confirmed by then is deleted. |
confirmedAt required | string,null |
apiKeyId required | string,null Set when this endpoint belongs to one API key rather than the workspace. |
id required | string |
url required | string |
description required | string,null |
events required | array of string |
enabled required | boolean |
failureCount required | number |
disabledAt required | string,null Set while the endpoint is off. |
createdAt required | string |
WebhookEndpointPage
data required | array of objectFields
| ||||||||||||||||||||||||
nextCursor required | string,null Pass as |
WebhookEndpointWithSecret
status required | PENDING CONFIRMEDPENDING receives the subscription event and nothing else, until POST /v1/webhooks/confirm. |
pendingUntil required | string,null A pending endpoint not confirmed by then is deleted. |
confirmedAt required | string,null |
apiKeyId required | string,null Set when this endpoint belongs to one API key rather than the workspace. |
secret required | string |
id required | string |
url required | string |
description required | string,null |
events required | array of string |
enabled required | boolean |
failureCount required | number |
disabledAt required | string,null Set while the endpoint is off. |
createdAt required | string |
WebhookEventPayload
id required | string Stable across retries, so a repeat can be ignored. |
type required | string |
createdAt required | string |
data required | map of any |