Download OpenAPI specification:Download
Quaderno helps you scale your business without stressing about taxes. Our powerful REST API solves all your tax compliance needs:
Here you can check our OpenAPI reference. Don't miss our developer tools and guides too!
This section covers the conventions that apply across all Quaderno API endpoints: authentication, rate limits, pagination, error codes, and versioning.
Quaderno uses an API key to authorize all requests, combined with your account name in the endpoint URL. You can find your API keys at quadernoapp.com/users/api-keys.
The API key is passed via HTTP Basic Auth. Set the key as the username and leave the password blank:
-u <YOUR_API_KEY>:
Using that modifier with curl sends a request with an Authorization: Basic … header. Example authenticated request:
curl https://ACCOUNT_NAME.quadernoapp.com/api/invoices \
-u <YOUR_API_KEY>:
You can also call /ping to verify your credentials and check your remaining requests without consuming a real API call:
curl https://quadernoapp.com/api/ping \
-u <YOUR_API_KEY>:
Keep your API key secret. Anyone who has it can read and modify everything your account has access to.
To discover the ACCOUNT_NAME for your target account, call the /authorization endpoint:
curl https://quadernoapp.com/api/authorization \
-u <YOUR_API_KEY>:
Returns JSON structured like this:
{
"identity": {
"id": "999",
"name": "Sheldon Cooper",
"email": "[email protected]",
"publishable_key": "pk_1111111111111111",
"href": "https://nippur-999.quadernoapp.com/api/"
}
}
Response fields:
| Parameter | Description |
|---|---|
id |
An internal identifier. Do not use this to reference users in API requests. |
name |
The user's full name. |
email |
The user's email address. |
publishable_key |
The user's publishable key, for use in frontend integrations. |
href |
The custom API endpoint URL for this account. The ACCOUNT_NAME appears between https:// and .quadernoapp. |
If the user does not have permission to perform an action, the API returns
401 Unauthorized.
The current limit is 100 API calls per 15 seconds.
Every successful API response includes the following headers to help you track usage:
X-RateLimit-Limit: Maximum requests allowed per time window.X-RateLimit-Remaining: Requests remaining in the current window.X-RateLimit-Reset: UTC epoch timestamp when the window resets.When you exceed the limit, the API returns 429 Too Many Requests. We reserve the right to adjust these limits, but will keep them high enough for well-behaved applications.
List endpoints are paginated using a created_before parameter. Pass an object ID to retrieve objects created before that ID, in reverse chronological order (newest first).
Response headers:
X-Pages-HasMore: true if additional records can be fetched.X-Pages-NextPage: The URL to fetch the next page. Only present when more records exist.The default page size is 25 objects, configurable with the
limitparameter up to a maximum of 100.
Example paginated request:
curl https://ACCOUNT_NAME.quadernoapp.com/api/contacts?created_before=42 \
-u <YOUR_API_KEY>:
The Quaderno API uses standard HTTP status codes:
| Code | Text | Description |
|---|---|---|
400 |
Bad Request |
The request is malformed or missing required parameters. |
401 |
Unauthorized |
Invalid API key or insufficient permissions. |
403 |
Forbidden |
The requested resource is restricted. |
404 |
Not Found |
The requested resource does not exist. |
405 |
Method Not Allowed |
The HTTP method is not supported for this endpoint. |
406 |
Not Acceptable |
The request contains invalid parameter values (e.g. an unrecognized tax code). |
410 |
Gone |
The resource has been permanently removed. |
422 |
Unprocessable Entity |
The request is well-formed but cannot be processed for the given resource state. |
429 |
Too Many Requests |
You have exceeded the rate limit. See Rate Limiting. |
500 |
Internal Server Error |
An unexpected error occurred on our end. Please try again later. |
502 |
Bad Gateway |
A gateway error occurred on our end. Please try again later. |
503 |
Service Unavailable |
The API is temporarily offline for maintenance. Please try again later. |
504 |
Gateway Timeout |
The request timed out on our end. Please try again later. |
When an API error occurs, Quaderno does not retry or track the failed call. Retry logic is the responsibility of your integration.
The Quaderno API is versioned using the release date as the version name (e.g. 20241028).
A new version is released only when a breaking change is introduced — such as renaming a field, changing a field type, or removing an endpoint.
Non-breaking additions (new endpoints, new optional parameters, new response fields) are applied directly to your current API version without requiring an upgrade.
Quaderno considers the following to be backwards-compatible changes:
Your integration should handle backwards-compatible changes gracefully, ignoring unexpected fields rather than failing.
Example of a breaking change:
// Before version 20210316:
GET /taxes/calculate?country=US&postal_code=94010
// From version 20210316:
GET /tax_rates/calculate?to_country=US&to_postal_code=90210&tax_code=standard&amount=10
Upgrade to the latest API version to benefit from new functionality. All changes are documented in the API Changelog.
Because upgrades to versions with breaking changes may affect your integration, we recommend testing in Quaderno Sandbox before upgrading production.
To upgrade or view your current version, go to Profile → API Keys.
You can also override the API version programmatically on a per-request basis using the Accept header:
curl https://ACCOUNT_NAME.quadernoapp.com/api/contacts \
-u <YOUR_API_KEY>: \
-H 'Accept: application/json; api_version: 20160602'
We periodically sunset old API versions. Affected accounts are notified at least one month in advance, and our Engineering team provides full support during the transition.
In exceptional cases, we may backport breaking changes to all API versions for legal, security, or compliance reasons. These changes are communicated with the same advance notice as sunsetting.
To receive announcements about version sunsetting, backported changes, and new releases, ask your account admin to add a developer role with a valid email address.
For new features and product updates, see quaderno.io/blog/changelog.
Version 20220325 replaces the freeform notice field in /tax_rates/calculate responses with a structured status code:
taxable: The transaction is taxable and the calculator returns a non-zero rate.non_taxable: The transaction is exempt — either the product is not taxable in that jurisdiction (e.g. digital goods in California), or the customer's region is exempt within a registered jurisdiction.not_registered: You are not registered to collect tax in the customer's jurisdiction.reverse_charge: The transaction is subject to reverse charge; no VAT is calculated.If your integration reads the
noticefield, switch to thestatusfield. Thenoticefield is no longer returned.
From 1 July 2021, invoices and credit notes become final (non-editable) when any of the following occur:
To correct a finalized invoice, issue a credit note against it and create a new invoice.
Fields that remain editable on finalized documents: po_number, tag_list, payment_details, notes, custom_metadata, and billing address fields (street_line_1, street_line_2, city, region, postal_code).
API changes introduced:
DELETE /invoices/INVOICE_ID returns 410 Gone.PUT /invoices/INVOICE_ID only accepts the fields listed above.If your use case issues invoices automatically at the point of payment, consider migrating to the Transactions API, which creates the contact, invoice, and payment record in a single API call.
Version 20210316 introduces two breaking changes:
Tax calculation endpoint
The /taxes/calculate endpoint is replaced by /tax_rates/calculate:
curl https://ACCOUNT_NAME.quadernoapp.com/api/tax_rates/calculate?to_country=US&to_postal_code=90210&tax_code=standard&amount=10 \
-u <YOUR_API_KEY>:
The new endpoint only returns tax rates for jurisdictions where your account is registered. If you are getting a 0% rate, check your registered tax jurisdictions.
Pagination
Cursor-based pagination replaces page-based pagination. Replace the page parameter with created_before, passing the ID of the last object from the previous response. Response headers changed:
| Old header | New header |
|---|---|
X-Pages-CurrentPage |
X-Pages-HasMore |
X-Pages-TotalPages |
X-Pages-NextPage |
The maximum page size remains 100 objects, returned in reverse chronological order.
To test before committing, override the version on individual requests:
curl https://ACCOUNT_NAME.quadernoapp.com/api/contacts \
-u <YOUR_API_KEY>: \
-H 'Accept: application/json; api_version: 20210316'
Tax transactions record every sale and refund that flows through your platform. Quaderno processes each transaction asynchronously — calculating the applicable taxes, determining the supply type, and flagging any discrepancies between the tax you collected and what was owed. Use transactions as the source of truth for tax reporting and compliance.
Creates a new sale or refund tax transaction.
Tax calculation is performed synchronously. The response will always have status: taxed — Quaderno
calculates the applicable taxes inline and returns the final result in the same request.
Use transaction_type: "refund" to record a refund. The refund_of_processor_id must reference
the processor_id of the original sale.
| transaction_type | string Default: "sale" Enum: "sale" "refund" Whether this is a sale or a refund. |
| processor required | string The payment processor that handled this transaction. |
| processor_id required | string The transaction ID in the payment processor. Must be unique per processor and transaction type. |
| refund_of_processor_id | string or null The |
| date required | string <date> Date of the transaction. Defaults to today. |
| currency required | string Three-letter ISO 4217 currency code in uppercase. |
required | object Customer location and identification data. |
object or null Origin address for the transaction. Defaults to the account address. | |
required | Array of objects Line items in the transaction. |
{- "transaction_type": "sale",
- "processor": "stripe",
- "processor_id": "ch_1234567890",
- "refund_of_processor_id": "ch_0987654321",
- "date": "2024-01-15",
- "currency": "USD",
- "customer": {
- "tax_id": "string",
- "billing_address": {
- "country": "US",
- "postal_code": "94102",
- "region": "CA",
- "city": "San Francisco",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "shipping_address": {
- "country": "US",
- "postal_code": "10001",
- "region": "NY",
- "city": "string",
- "street_line_1": "string",
- "street_line_2": "string"
}
}, - "origin_address": {
- "country": "ES",
- "postal_code": "08001",
- "region": "Barcelona",
- "city": "Barcelona",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "items": [
- {
- "description": "Ruby Essentials",
- "sku": "SKU-001",
- "quantity": 1,
- "amount": "50.00",
- "product_type": "good",
- "tax_code": "eservice"
}
]
}{- "id": 92732431,
- "processor": "stripe",
- "processor_id": "ch_1234567890",
- "currency": "USD",
- "transaction_type": "sale",
- "status": "pending",
- "supply_type": "domestic",
- "date": "2024-01-15",
- "total": "100.00",
- "customer": {
- "billing_address": {
- "country": "US",
- "postal_code": "94102",
- "region": "CA",
- "city": "San Francisco",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "shipping_address": {
- "country": "US",
- "postal_code": "10001",
- "region": "NY",
- "city": "New York",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "tax_id": "string"
}, - "items": [
- {
- "description": "Ruby Essentials",
- "sku": "SKU-001",
- "quantity": 1,
- "amount": "50.00",
- "product_type": "good",
- "tax_code": "eservice"
}
], - "tax_breakdown": [
- {
- "jurisdiction_name": "California",
- "jurisdiction_level": "state",
- "jurisdiction_currency": "USD",
- "tax_type": "sales_tax",
- "tax_status": "taxable",
- "taxable_amount": "100.00",
- "tax_rate": 0.0875,
- "tax_amount": "8.75"
}
], - "exchange_rate": {
- "from_currency": "EUR",
- "to_currency": "USD",
- "rate": 1.1,
- "rate_source": "ecb",
- "rate_date": "2024-01-15"
}, - "discrepancy": {
- "amount": "0.01",
- "currency": "USD",
- "formatted_amount": "$0.01"
}
}Returns a paginated list of tax transactions for the account, ordered by date descending.
| status | string Enum: "pending" "taxed" "errored" "draft" Filter by processing status. |
| date_from | string <date> Return transactions on or after this date. |
| date_to | string <date> Return transactions on or before this date. |
| limit | integer [ 1 .. 100 ] Default: 25 Number of transactions to return per page. |
| page | integer >= 1 Page number for pagination. |
[- {
- "id": 92732431,
- "processor": "stripe",
- "processor_id": "ch_1234567890",
- "currency": "USD",
- "transaction_type": "sale",
- "status": "pending",
- "supply_type": "domestic",
- "date": "2024-01-15",
- "total": "100.00",
- "customer": {
- "billing_address": {
- "country": "US",
- "postal_code": "94102",
- "region": "CA",
- "city": "San Francisco",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "shipping_address": {
- "country": "US",
- "postal_code": "10001",
- "region": "NY",
- "city": "New York",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "tax_id": "string"
}, - "items": [
- {
- "description": "Ruby Essentials",
- "sku": "SKU-001",
- "quantity": 1,
- "amount": "50.00",
- "product_type": "good",
- "tax_code": "eservice"
}
], - "tax_breakdown": [
- {
- "jurisdiction_name": "California",
- "jurisdiction_level": "state",
- "jurisdiction_currency": "USD",
- "tax_type": "sales_tax",
- "tax_status": "taxable",
- "taxable_amount": "100.00",
- "tax_rate": 0.0875,
- "tax_amount": "8.75"
}
], - "exchange_rate": {
- "from_currency": "EUR",
- "to_currency": "USD",
- "rate": 1.1,
- "rate_source": "ecb",
- "rate_date": "2024-01-15"
}, - "discrepancy": {
- "amount": "0.01",
- "currency": "USD",
- "formatted_amount": "$0.01"
}
}
]Creates multiple sale transactions in a single request. Use this endpoint to import historical transactions or sync large volumes of sales data efficiently.
All amounts are treated as tax-inclusive — the tax is extracted from each item amount rather than added on top. This behavior is enforced automatically and cannot be overridden.
Batches only support sale transactions. To record a refund, use POST /transactions with transaction_type: "refund".
A batch can contain up to 500 transactions. If the limit is exceeded the entire request is rejected.
Each transaction in the batch is validated before any are stored. If any transaction fails validation, the entire batch is rejected and no records are created.
required | object | ||||||||||||||||||||||
| |||||||||||||||||||||||
{- "batch": {
- "transactions": [
- {
- "processor": "stripe",
- "processor_id": "ch_1234567890",
- "date": "2024-01-15",
- "currency": "USD",
- "total": "108.75",
- "total_tax": "8.75",
- "customer": {
- "tax_id": "FR32123456789",
- "billing_address": {
- "country": "US",
- "postal_code": "94102",
- "region": "CA",
- "city": "San Francisco",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "shipping_address": {
- "country": "US",
- "postal_code": "10001",
- "region": "NY",
- "city": "string",
- "street_line_1": "string",
- "street_line_2": "string"
}
}, - "origin_address": {
- "country": "ES",
- "postal_code": "08001",
- "region": "string",
- "city": "string",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "items": [
- {
- "description": "Ruby Essentials",
- "sku": "SKU-001",
- "quantity": 1,
- "amount": "108.75",
- "product_type": "service",
- "tax_code": "eservice"
}
]
}
]
}
}{- "accepted": 2,
- "transactions": [
- {
- "id": 92732431,
- "processor_id": "ch_1234567890",
- "status": "pending"
}
]
}Retrieves an existing tax transaction by its ID.
| id required | integer Transaction ID. |
{- "id": 92732431,
- "processor": "stripe",
- "processor_id": "ch_1234567890",
- "currency": "USD",
- "transaction_type": "sale",
- "status": "pending",
- "supply_type": "domestic",
- "date": "2024-01-15",
- "total": "100.00",
- "customer": {
- "billing_address": {
- "country": "US",
- "postal_code": "94102",
- "region": "CA",
- "city": "San Francisco",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "shipping_address": {
- "country": "US",
- "postal_code": "10001",
- "region": "NY",
- "city": "New York",
- "street_line_1": "string",
- "street_line_2": "string"
}, - "tax_id": "string"
}, - "items": [
- {
- "description": "Ruby Essentials",
- "sku": "SKU-001",
- "quantity": 1,
- "amount": "50.00",
- "product_type": "good",
- "tax_code": "eservice"
}
], - "tax_breakdown": [
- {
- "jurisdiction_name": "California",
- "jurisdiction_level": "state",
- "jurisdiction_currency": "USD",
- "tax_type": "sales_tax",
- "tax_status": "taxable",
- "taxable_amount": "100.00",
- "tax_rate": 0.0875,
- "tax_amount": "8.75"
}
], - "exchange_rate": {
- "from_currency": "EUR",
- "to_currency": "USD",
- "rate": 1.1,
- "rate_source": "ecb",
- "rate_date": "2024-01-15"
}, - "discrepancy": {
- "amount": "0.01",
- "currency": "USD",
- "formatted_amount": "$0.01"
}
}Triggers a new tax calculation for an existing transaction. Useful when a transaction is in errored status.
Returns 202 Accepted immediately. The transaction status is reset to pending and recalculated asynchronously.
| id required | integer Transaction ID. |
{- "error": "string"
}Contacts represent the customers and vendors who appear on your invoices, credit notes, and expenses. Each contact stores the billing information and tax identification data Quaderno uses to determine the correct tax treatment for every transaction.
Lists contacts, paginated and sorted by creation date (newest first).
| q | string Filters the contact list based on the contact's full name, email or tax id. Case-sensitive. |
| processor_id | string Filters the contact list based on its |
[- {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}
]Creates a new contact, representing a customer or vendor who appears on invoices, credit notes, and expenses.
| city | string or null City/District/Suburb/Town/Village. |
| contact_person | string or null If the contact is a |
| country | string 2-letter ISO country code. |
| department | string or null If the contact is a |
number or null Default discount for this contact. | |
string or null <email> The contact's email address | |
| first_name required | string The contact's first name. Only if the contact is a |
| kind | string Default: "company" Enum: "company" "person" The type of contact. |
| language | string The contact's preferred language. 2-letter ISO language code. Should be included in the account's translations list. |
| last_name | string or null The contact's last name. Only if the contact is a |
| notes | string or null Internal notes about the contact. |
| phone_1 | string or null The contact's phone number. |
| postal_code | string or null ZIP or postal code. |
| processor | string or null The external platform where the contact was imported from, if applicable. |
| processor_id | string or null The ID the |
| region | string or null State/Province/Region. |
| street_line_1 | string or null Address line 1 (Street address/PO Box). |
| street_line_2 | string or null Address line 2 (Apartment/Suite/Unit/Building). |
| tax_id | string or null The contact's tax identification number. Quaderno can validate EU VAT numbers, ABN, and NZBN. |
| tax_status | string Default: "taxable" Enum: "taxable" "exempt" "reverse" Specifies the tax status of the contact. |
| web | string or null <uri> The contact's website |
{- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}{- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}Retrieves the details of an existing contact.
| id required | string ID of the desired contact. |
{- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}Updates a contact. Any parameters not provided will be left unchanged.
| id required | integer ID of the contact to be updated. |
| city | string or null City/District/Suburb/Town/Village. |
| contact_person | string or null If the contact is a |
| country | string 2-letter ISO country code. |
| department | string or null If the contact is a |
number or null Default discount for this contact. | |
string or null <email> The contact's email address | |
| first_name required | string The contact's first name. Only if the contact is a |
| kind | string Default: "company" Enum: "company" "person" The type of contact. |
| language | string The contact's preferred language. 2-letter ISO language code. Should be included in the account's translations list. |
| last_name | string or null The contact's last name. Only if the contact is a |
| notes | string or null Internal notes about the contact. |
| phone_1 | string or null The contact's phone number. |
| postal_code | string or null ZIP or postal code. |
| processor | string or null The external platform where the contact was imported from, if applicable. |
| processor_id | string or null The ID the |
| region | string or null State/Province/Region. |
| street_line_1 | string or null Address line 1 (Street address/PO Box). |
| street_line_2 | string or null Address line 2 (Apartment/Suite/Unit/Building). |
| tax_id | string or null The contact's tax identification number. Quaderno can validate EU VAT numbers, ABN, and NZBN. |
| tax_status | string Default: "taxable" Enum: "taxable" "exempt" "reverse" Specifies the tax status of the contact. |
| web | string or null <uri> The contact's website |
{- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}{- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}Products describe the goods and services you sell. Attaching a product to an invoice line item ensures consistent tax classification across all documents.
Lists all products, paginated and sorted by creation date (newest first).
| q | string Filters a product list based on the product's name or code. Case-sensitive. |
[- {
- "id": 92732431,
- "code": "012345678901-MFN",
- "country": "US",
- "created_at": "1593260908",
- "currency": "USD",
- "description": "string",
- "paypal_interval_duration": 1,
- "paypal_interval_frequency": 0,
- "paypal_interval_unit": "monthly",
- "kind": "one_off",
- "name": "Ruby Essentials",
- "product_type": "good",
- "stripe_plan_id": "price_1GtYUvKYlo3Dy5yXgrQS",
- "tax_based_on": "customer_country",
- "tax_class": "consulting",
- "tax_type": "excluded",
- "unit_cost": "9.99",
- "stock": "10"
}
]Creates a new product, which could be used as line item on invoices, credit notes and expenses.
| code required | string The product’s SKU (Stock Keeping Unit) describe specific product variations, taking into account any combination of: attributes, currency, and cost. |
| country | string or null 2-letter ISO country code. Required if |
| currency | string or null Three-letter ISO currency code, in uppercase. Must be a supported currency in your payment processors. |
| description required | string or null The product’s description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. |
| paypal_interval_duration | integer or null Only for |
| paypal_interval_frequency | integer or null Only for PayPal |
| paypal_interval_unit | string Default: "monthly" Enum: "daily" "weekly" "monthly" "yearly" Only for PayPal |
| kind required | string Default: "one_off" Enum: "one_off" "subscription" The type of transaction: one-off purchase or subscription. |
| name required | string The product’s name, meant to be displayable to the customer. |
| product_type required | string Default: "service" Enum: "good" "service" The type of the product. The product is either a tangible |
| stripe_plan_id | string or null Only for Stripe |
| tax_based_on required | string Default: "customer_country" Enum: "customer_country" "country" How taxes are going to be calculated: based on the customer country or a particular country. |
| tax_class required | string Default: "eservice" Enum: "consulting" "eservice" "ebook" "saas" "standard" "reduced" The tax class that applies to the product. |
| tax_type required | string Default: "included" Enum: "excluded" "included" Specify if taxes are included or excluded in the |
| unit_cost required | string The unit amount to be charged |
| stock required | string or null The stock of the physical product. |
{- "code": "012345678901-MFN",
- "country": "US",
- "currency": "USD",
- "description": "string",
- "paypal_interval_duration": 1,
- "paypal_interval_frequency": 0,
- "paypal_interval_unit": "monthly",
- "kind": "one_off",
- "name": "Ruby Essentials",
- "product_type": "good",
- "stripe_plan_id": "price_1GtYUvKYlo3Dy5yXgrQS",
- "tax_based_on": "customer_country",
- "tax_class": "consulting",
- "tax_type": "excluded",
- "unit_cost": "9.99",
- "stock": "10"
}{- "id": 92732431,
- "code": "012345678901-MFN",
- "country": "US",
- "created_at": "1593260908",
- "currency": "USD",
- "description": "string",
- "paypal_interval_duration": 1,
- "paypal_interval_frequency": 0,
- "paypal_interval_unit": "monthly",
- "kind": "one_off",
- "name": "Ruby Essentials",
- "product_type": "good",
- "stripe_plan_id": "price_1GtYUvKYlo3Dy5yXgrQS",
- "tax_based_on": "customer_country",
- "tax_class": "consulting",
- "tax_type": "excluded",
- "unit_cost": "9.99",
- "stock": "10"
}Retrieves the details of an existing product.
| id required | string ID of the desired product. |
{- "id": 92732431,
- "code": "012345678901-MFN",
- "country": "US",
- "created_at": "1593260908",
- "currency": "USD",
- "description": "string",
- "paypal_interval_duration": 1,
- "paypal_interval_frequency": 0,
- "paypal_interval_unit": "monthly",
- "kind": "one_off",
- "name": "Ruby Essentials",
- "product_type": "good",
- "stripe_plan_id": "price_1GtYUvKYlo3Dy5yXgrQS",
- "tax_based_on": "customer_country",
- "tax_class": "consulting",
- "tax_type": "excluded",
- "unit_cost": "9.99",
- "stock": "10"
}Updates a product. Any parameters not provided will be left unchanged.
| id required | integer ID of the product to be updated. |
| code required | string The product’s SKU (Stock Keeping Unit) describe specific product variations, taking into account any combination of: attributes, currency, and cost. |
| country | string or null 2-letter ISO country code. Required if |
| currency | string or null Three-letter ISO currency code, in uppercase. Must be a supported currency in your payment processors. |
| description required | string or null The product’s description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes. |
| paypal_interval_duration | integer or null Only for |
| paypal_interval_frequency | integer or null Only for PayPal |
| paypal_interval_unit | string Default: "monthly" Enum: "daily" "weekly" "monthly" "yearly" Only for PayPal |
| kind required | string Default: "one_off" Enum: "one_off" "subscription" The type of transaction: one-off purchase or subscription. |
| name required | string The product’s name, meant to be displayable to the customer. |
| product_type required | string Default: "service" Enum: "good" "service" The type of the product. The product is either a tangible |
| stripe_plan_id | string or null Only for Stripe |
| tax_based_on required | string Default: "customer_country" Enum: "customer_country" "country" How taxes are going to be calculated: based on the customer country or a particular country. |
| tax_class required | string Default: "eservice" Enum: "consulting" "eservice" "ebook" "saas" "standard" "reduced" The tax class that applies to the product. |
| tax_type required | string Default: "included" Enum: "excluded" "included" Specify if taxes are included or excluded in the |
| unit_cost required | string The unit amount to be charged |
| stock required | string or null The stock of the physical product. |
{- "code": "012345678901-MFN",
- "country": "US",
- "currency": "USD",
- "description": "string",
- "paypal_interval_duration": 1,
- "paypal_interval_frequency": 0,
- "paypal_interval_unit": "monthly",
- "kind": "one_off",
- "name": "Ruby Essentials",
- "product_type": "good",
- "stripe_plan_id": "price_1GtYUvKYlo3Dy5yXgrQS",
- "tax_based_on": "customer_country",
- "tax_class": "consulting",
- "tax_type": "excluded",
- "unit_cost": "9.99",
- "stock": "10"
}{- "id": 92732431,
- "code": "012345678901-MFN",
- "country": "US",
- "created_at": "1593260908",
- "currency": "USD",
- "description": "string",
- "paypal_interval_duration": 1,
- "paypal_interval_frequency": 0,
- "paypal_interval_unit": "monthly",
- "kind": "one_off",
- "name": "Ruby Essentials",
- "product_type": "good",
- "stripe_plan_id": "price_1GtYUvKYlo3Dy5yXgrQS",
- "tax_based_on": "customer_country",
- "tax_class": "consulting",
- "tax_type": "excluded",
- "unit_cost": "9.99",
- "stock": "10"
}The Calculations endpoint computes the applicable taxes for one or more line items in real time, without creating any records. Use it at checkout to show customers the correct tax before charging them, or to validate your own tax logic against Quaderno's engine.
Calculates the applicable taxes for one or more line items based on the seller's origin, the customer's address, and the product type.
Pass customer_tax_id when selling to a business — Quaderno will determine whether the transaction qualifies for a reverse charge or zero-rate exemption.
Use tax_behavior to control whether the returned amounts are tax-exclusive (the default) or tax-inclusive. When inclusive, the tax is extracted from the line item amount rather than added on top.
| Authorization required | string |
object Physical location of the seller. Required for origin-based tax states (e.g. US states like Texas). Defaults to the account's registered address when omitted. | |
required | object Delivery or billing address of the customer. Used to determine the tax jurisdiction. |
| customer_tax_id | string Business tax ID of the customer (e.g. a VAT number). When provided and valid, Quaderno applies B2B rules such as reverse charge or zero-rating. |
| currency | string Three-letter ISO 4217 currency code for the transaction. Defaults to the account's default currency. |
| tax_date | integer Unix timestamp for the tax point date. Defaults to the current date when omitted. Use this to apply the correct rates for past or future transactions. |
| tax_behavior | string Enum: "exclusive" "inclusive" Whether the line item amounts already include tax ( |
required | Array of objects One or more items to calculate tax for. Each item must include a unique reference and the amount in the transaction currency. |
{- "origin_address": {
- "country": "US",
- "postal_code": "78701",
- "state": "TX",
- "city": "Austin"
}, - "customer_address": {
- "country": "DE",
- "postal_code": "10115",
- "state": "TX",
- "city": "Berlin"
}, - "customer_tax_id": "FR32123456789",
- "currency": "EUR",
- "tax_date": 1700000000,
- "tax_behavior": "exclusive",
- "line_items": [
- {
- "reference": "item_1",
- "amount": "100.00",
- "product_type": "service",
- "tax_code": "saas"
}
]
}{- "subtotal": "100.00",
- "total_tax": "19.00",
- "total": "119.00",
- "currency": "EUR",
- "tax_behavior": "exclusive",
- "tax_context": {
- "transaction_type": "domestic",
- "supply_place": "buyer",
- "tax_status": "taxable"
}, - "line_items": [
- {
- "reference": "item_1",
- "amount": "100.00",
- "tax_amount": "19.00",
- "total_amount": "119.00",
- "tax_breakdown": [
- {
- "country": "DE",
- "state": "TX",
- "tax_name": "VAT",
- "tax_rate": "0.19",
- "taxable_amount": "100.00",
- "taxable_part": 100,
- "tax_amount": "19.00"
}
]
}
], - "tax_breakdown": [
- {
- "jurisdiction": {
- "id": 42,
- "country": "DE",
- "state": null,
- "level": "country"
}, - "tax_name": "VAT",
- "tax_rate": "0.19",
- "tax_amount": "19.00",
- "taxable_amount": "100.00",
- "sourcing": "destination"
}
], - "tax_id_validation": {
- "valid": true,
- "tax_id": "FR32123456789",
- "country": "FR"
}
}Registrations represent your business's tax presence in a specific jurisdiction. Each registration pairs a tax jurisdiction with the local tax ID issued by that authority (for example, a VAT number in Germany or a GST registration in Australia). Quaderno uses your registrations to determine where you are obligated to collect tax and to apply the correct rules for each sale.
Returns a list of all your tax registrations. A registration represents your business's tax presence in a specific jurisdiction along with its local tax ID.
[- {
- "id": 23546,
- "import_scheme": true,
- "jurisdiction": {
- "id": 94,
- "name": "Canada - British Columbia",
- "country": "Canada - British Columbia",
- "region": "BC"
}, - "permanent_establishment": true,
- "state": "verified",
- "valid_from": "2023-01-01",
- "valid_until": "2024-12-31",
- "value": "123456789BW0001",
- "created_at": 1681199310
}
]Creates a new tax registration, associating your business with a tax jurisdiction and its corresponding local tax ID.
| jurisdiction_id required | integer ID of the tax jurisdiction where your business is registered. |
| value required | string The local tax ID issued by the jurisdiction (e.g. a VAT number). |
| valid_from | string Date from which the registration is valid. Defaults to the beginning of the current year. |
| valid_until | string Expiration date of the registration. Omit or leave blank if the registration has no expiration. |
| permanent_establishment | boolean Default: false Whether your business has a physical presence (office, warehouse, etc.) in the jurisdiction. |
| import_scheme | boolean Default: false Whether the business is enrolled in the EU import scheme for foreign sellers of physical goods. |
{- "jurisdiction_id": 94,
- "value": "123456789BW0001",
- "valid_from": "2023-01-01",
- "valid_until": "",
- "permanent_establishment": true,
- "import_scheme": true
}{- "id": 23546,
- "import_scheme": true,
- "jurisdiction": {
- "id": 94,
- "name": "Canada - British Columbia",
- "country": "Canada - British Columbia",
- "region": "BC"
}, - "permanent_establishment": true,
- "state": "verified",
- "valid_from": "2023-01-01",
- "valid_until": "2024-12-31",
- "value": "123456789BW0001",
- "created_at": 1681199310
}Retrieves the details of an existing registration.
| id required | integer ID of the registration. |
{- "id": 23546,
- "import_scheme": true,
- "jurisdiction": {
- "id": 94,
- "name": "Canada - British Columbia",
- "country": "Canada - British Columbia",
- "region": "BC"
}, - "permanent_establishment": true,
- "state": "verified",
- "valid_from": "2023-01-01",
- "valid_until": "2024-12-31",
- "value": "123456789BW0001",
- "created_at": 1681199310
}Updates an existing registration. Any parameters not provided will be left unchanged.
| id required | any ID of the registration to update. |
| value | string The local tax ID value. |
| valid_from | string Date from which the registration is valid. |
| valid_until | string Expiration date of the registration, or blank if it has no expiration. |
| permanent_establishment | boolean Default: false Whether your business has a physical presence in the jurisdiction. |
| import_scheme | boolean Default: false Whether the business is enrolled in the EU import scheme for foreign sellers of physical goods. |
{- "value": "123456789BW0001",
- "valid_from": "2023-01-01",
- "valid_until": "2024-12-31",
- "permanent_establishment": true,
- "import_scheme": true
}{- "id": 23546,
- "import_scheme": true,
- "jurisdiction": {
- "id": 94,
- "name": "Canada - British Columbia",
- "country": "Canada - British Columbia",
- "region": "BC"
}, - "permanent_establishment": true,
- "state": "verified",
- "valid_from": "2023-01-01",
- "valid_until": "2024-12-31",
- "value": "123456789BW0001",
- "created_at": 1681199310
}Jurisdictions are the geographic areas that define their own tax rules — a country, a state, a province, or a territory. Quaderno maintains a curated list of all supported jurisdictions. Use this endpoint to look up jurisdiction IDs when creating or updating registrations.
Retrieves a single tax jurisdiction by ID. Use this to look up the details of a jurisdiction before creating a registration.
| id required | string ID of the jurisdiction to retrieve. |
{- "id": 94,
- "name": "Canada - British Columbia",
- "country": "CA",
- "region": "BC"
}Returns the list of all tax jurisdictions supported by Quaderno. A jurisdiction is a geographic area with its own tax rules — it can be a country, a state, a province, or a territory.
Use the country and region filters to narrow results. To look up the jurisdiction ID needed to create a registration, filter by country and region code.
Pass region=none to return only country-level jurisdictions (those with no region).
| country | string Example: country=CA Filter by country. Two-letter ISO 3166-1 country code. Case-sensitive. |
| region | string Filter by region (state, province, or territory code). Case-sensitive. Pass |
[- {
- "id": 0,
- "name": "Canada - British Columbia",
- "country": "CA",
- "region": "BC"
}
]Tax codes classify your products and services for tax purposes. Different jurisdictions apply different rules depending on whether an item is a physical good, a digital service, a SaaS subscription, or an ebook. Assigning the right tax code ensures Quaderno applies the correct rate — and the correct exemption — for every sale.
Retrieves a tax code, which classify goods and services for tax purposes.
| id required | string Enum: "consulting" "ebook" "eservice" "exempt" "reduced" "saas" "standard" Example: eservice The ID of the tax code to retrieve. |
{- "id": "eservice",
- "description": "Service that is delivered over the internet. It is essentially automated, involves minimal human intervention and in the absence of information technology does not have viability.",
- "name": "Electronically supplied services"
}Retrieves the list of supported tax codes.
[- {
- "id": "consulting",
- "description": "Any consulting and professional service (e.g., lawyers, designers, engineers, tax advisors, etc.).",
- "name": "Consulting"
}, - {
- "id": "ebook",
- "description": "An electronic book that is sold with unlimited use.",
- "name": "eBook"
}, - {
- "id": "eservice",
- "description": "Service that is delivered over the internet. It is essentially automated, involves minimal human intervention and in the absence of information technology does not have viability.",
- "name": "Electronically supplied services"
}, - {
- "id": "exempt",
- "description": "Any nontaxable good or service. No tax is applied for jurisdictions that impose a tax.",
- "name": "Non-taxable"
}, - {
- "id": "reduced",
- "description": "Specific goods and services with a reduced tax rate.",
- "name": "Reduced tax rate"
}, - {
- "id": "saas",
- "description": "Cloud services software delivered over the internet. The software is not customized for the specific buyer. Assumes no software is downloaded by the buyer.",
- "name": "Software as a service (SaaS)"
}, - {
- "id": "standard",
- "description": "Any taxable good or service. For jurisdictions that impose a tax, the standard rate is applied.",
- "name": "Generally taxable"
}
]Invoices are formal payment requests that document amounts owed by customers for goods or services. Once issued, invoices are legally immutable in most jurisdictions — only administrative fields can be changed. Use the void endpoint to correct a finalized invoice.
Lists all invoices, paginated and sorted by creation date (newest first).
| q | string Filters an invoices list based on the invoice number, customer name or PO number. |
| date | string Filters an invoices list based on the issue date. A date range must be entered. Allowed formats are |
| state | string Enum: "outstanding" "late" "uncollectible" "paid" Filters an invoices list based on the invoice state. |
| processor_id | string Filters an invoices list based on its |
| contact | integer Filters an invoices list based on the customer ID. |
[- {
- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Recurring"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}
]Creates a new invoice. If a payment_method is provided, a payment for the full amount is automatically recorded and the invoice is immediately marked as paid.
| number | string Unique, sequential number identifying this invoice. Invoice numbers must be sequential without gaps or duplicates to comply with legal requirements. Automatically generated if not provided. |
| issue_date | string <date> Date the invoice was issued. May differ from the actual delivery or service date. |
| po_number | string or null Customer's purchase order number for reference and tracking. |
| due_date | string or null <date> Payment due date. Defines when payment is expected and affects the invoice state (outstanding, late, etc.). |
| currency | string Three-letter ISO 4217 currency code in uppercase. |
| exchange_rate | number or null <float> Exchange rate applied when converting from transaction currency to account base currency. If omitted, the ECB (European Central Bank) reference rate for the issue date is automatically applied. |
| tag_list | Array of strings or null Array of tags for categorizing and filtering invoices. Useful for organizing by product line, sales channel, or custom categories. |
| payment_details | string or null Additional information about accepted payment methods, displayed to the customer. |
| notes | string or null Internal notes or additional information about this invoice. Not typically shown to customers. |
required | contact (object) or object Customer being billed. Can reference an existing contact by ID or include full contact details. |
object (attachment) Invoices and expenses can have attached files. | |
| street_line_1 | string or null First line of customer's billing address (street address or PO Box). |
| street_line_2 | string or null Second line of customer's billing address (apartment, suite, unit, or building number). |
| tax_id | string or null Customer's tax identification number (VAT number, EIN, etc.). Important for B2B transactions and tax exemptions. |
| subject | string or null Brief summary or title describing what this invoice is for. Displayed prominently on the document. |
required | Array of objects (document_item) Line items included in this invoice (products, services, fees, etc.). Maximum 200 items per request; use update requests to add more. Total limit: 1000 items per invoice. |
object (evidence) Location evidence (IP address, billing country, etc.) used to determine applicable tax rates and jurisdictions. | |
| payment_processor | string or null Name of the payment processor that handled this transaction (e.g., "stripe", "paypal", "braintree"). |
| payment_processor_id | string or null Transaction ID from the payment processor. Used to link this invoice to the original payment gateway transaction. |
| processor_fee_cents | integer or null Payment processing fee charged by the payment processor, in cents. |
| custom_metadata | object or null Custom key-value pairs for storing additional structured data. Useful for integrations and storing application-specific information. |
| payment_method | string Enum: "credit_card" "cash" "wire_transfer" "direct_debit" "check" "iou" "paypal" "offset" "other" If provided, a payment for the full invoice amount is automatically recorded using this method, marking the invoice as paid immediately upon creation. |
{- "number": "00001",
- "issue_date": "2020-06-27",
- "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "attachment": {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}, - "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "evidence": {
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled"
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "payment_method": "credit_card"
}{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Recurring"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Retrieves the details of an existing invoice. You need only supply the unique invoice identifier that was returned upon invoice creation.
| id required | string The ID of the desired invoice. |
{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Recurring"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Updates an existing invoice. Once finalized, invoices are legally immutable — tax law prohibits altering amounts, line items, dates, or customer details on issued invoices. Only administrative fields (tag_list, payment_details, notes, custom_metadata) can still be modified. If a correction is needed, void the invoice and issue a new one.
| id required | integer The ID of the invoice to be updated. |
| tag_list | Array of strings or null Multiple tags should be separated by commas. |
| payment_details | string or null Detailed information about the accepted payment methods. |
| notes | string or null Extra notes about the document. |
| custom_metadata | object or null Set of key-value pairs that you can attach to an object. |
object (attachment) Invoices and expenses can have attached files. |
{- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "custom_metadata": {
- "key": "value"
}, - "attachment": {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}
}{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Recurring"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Marks an invoice as uncollectible. This is useful for tracking invoices that you have determined will not be paid.
| id required | string The ID of the desired invoice. |
{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Recurring"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Voids an invoice by creating a credit note with the given reason. If the invoice is pending, it will be marked as paid via an offset payment.
| id required | string The ID of the invoice to void. |
| void_reason required | string |
{- "void_reason": "string"
}{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Recurring"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Records a payment against an invoice. When the total payments reach the invoice amount, the invoice is automatically marked as paid.
| id required | string The ID of the invoice. |
| amount | number <float> Paid amount. |
| date | string or null <date> Default is current date. |
| payment_method | string or null Enum: "credit_card" "cash" "wire_transfer" "direct_debit" "check" "iou" "paypal" "other" "credit" "offset" |
| processor | string or null The payment processor used to process the payment. |
| processor_id | string or null The ID the |
{- "amount": 56.6,
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999"
}{- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}Sends the invoice to the customer via email using the account's configured invoice template and language. The contact must have a valid email address. Delivery history is recorded and accessible via the deliveries field.
| id required | string The ID of the desired invoice. |
Receipts document completed transactions. Unlike invoices, receipts are always paid by definition — a payment method is required at creation. They are immutable after creation; use the void endpoint if a correction is needed.
Lists all receipts, paginated and sorted by creation date (newest first). All receipts are paid by definition.
| q | string Filters an receipts list based on the receipt number, customer name or PO number. |
| date | string Filters an receipts list based on the issue date. A date range must be entered. Allowed formats are |
| processor_id | string Filters an receipts list based on its |
| contact | integer Filters an receipts list based on the customer ID. |
[- {
- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "attachments": [
- {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}
], - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "paid",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}
]Creates a new receipt documenting a completed transaction. Unlike invoices, receipts are always paid — a payment_method is required. Receipts are immutable after creation and cannot be updated or deleted. Use the void endpoint if a correction is needed.
| number | string Unique, sequential number identifying this receipt. Receipt numbers must be sequential without gaps or duplicates to comply with legal requirements. Automatically generated if not provided. |
| issue_date | string <date> Date the receipt was issued. May differ from the actual transaction date. |
| po_number | string or null Customer's purchase order number for reference and tracking. |
| due_date | string or null <date> Payment due date. For receipts this is typically the same as the issue date since payment is usually immediate. |
| currency | string Three-letter ISO 4217 currency code in uppercase. |
| exchange_rate | number or null <float> Exchange rate applied when converting from transaction currency to account base currency. If omitted, the ECB (European Central Bank) reference rate for the issue date is automatically applied. |
| tag_list | Array of strings or null Array of tags for categorizing and filtering receipts. Useful for organizing by product line, sales channel, or custom categories. |
| payment_details | string or null Additional information about accepted payment methods, displayed to the customer. |
| notes | string or null Internal notes or additional information about this receipt. Not typically shown to customers. |
required | contact (object) or object Customer receiving this receipt. Can reference an existing contact by ID or include full contact details. |
| street_line_1 | string or null First line of customer's billing address (street address or PO Box). |
| street_line_2 | string or null Second line of customer's billing address (apartment, suite, unit, or building number). |
| subject | string or null Brief summary or title describing what this receipt is for. Displayed prominently on the document. |
required | Array of objects (document_item) Line items included in this receipt (products, services, fees, etc.). Maximum 200 items per request; use update requests to add more. Total limit: 1000 items per receipt. |
object (evidence) Location evidence (IP address, billing country, etc.) used to determine applicable tax rates and jurisdictions. | |
| payment_processor | string or null Name of the payment processor that handled this transaction (e.g., "stripe", "paypal", "braintree"). |
| payment_processor_id | string or null Transaction ID from the payment processor. Used to link this receipt to the original payment gateway transaction. |
| processor_fee_cents | integer or null Payment processing fee charged by the payment processor, in cents. |
| custom_metadata | object or null Custom key-value pairs for storing additional structured data. Useful for integrations and storing application-specific information. |
| payment_method required | string Enum: "credit_card" "cash" "wire_transfer" "direct_debit" "check" "iou" "paypal" "offset" "other" How the customer paid. Required — receipts document completed transactions and must always record the payment method used. |
{- "number": "00001",
- "issue_date": "2020-06-27",
- "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "evidence": {
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled"
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "payment_method": "credit_card"
}{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "attachments": [
- {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}
], - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "paid",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Retrieves the details of an existing receipt.
| id required | string The ID of the desired receipt. |
{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "attachments": [
- {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}
], - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "paid",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Voids a receipt by automatically issuing an offsetting credit note. Tax law prohibits deleting receipts — voiding is the only way to reverse a completed transaction. A void_reason is required for audit purposes.
| id required | string The ID of the receipt to void. |
| void_reason required | string |
{- "void_reason": "string"
}{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "attachments": [
- {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}
], - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "paid",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Sends the receipt to the customer via email using the account's configured invoice template and language. The contact must have a valid email address. Delivery history is recorded and accessible via the deliveries field.
| id required | string The ID of the desired receipt. |
Credit notes reduce or cancel amounts owed by customers. They are used for refunds, order cancellations, and pricing corrections. Tax law prohibits deleting credit notes — voiding is the only way to reverse one.
Lists all credit notes, paginated and sorted by creation date (newest first). Credit notes are used to cancel or partially refund an invoice.
| q | string Filters a credit notes list based on the credit number, customer name or PO number. |
| date | string Filters a credit notes list based on the issue date. A date range must be entered. Allowed formats are |
| state | string Enum: "outstanding" "late" "paid" Filters a credit notes list based on the credit state. |
| processor_id | string Filters a credit notes list based on its |
[- {
- "id": 92732431,
- "created_at": "1593260908",
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Invoice"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "tag_list": "refund, product_return",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "Product return refund",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "exchange_rate": 0.680309,
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}
]Creates a credit note against an existing invoice. The credit note offsets the invoice amount — fully or partially — and automatically records the refund. Credit notes are immutable after creation and cannot be updated or deleted. Use the void endpoint if a correction is needed.
| invoice_id required | integer The ID of the refunded invoice. |
| payment_method | string Enum: "credit_card" "cash" "wire_transfer" "direct_debit" "check" "iou" "paypal" "other" Payment method used to refund the credited amount. |
| credited_amount | number Total amount to be credited, equal or lower than the total amount of the related invoice. Only works for refunds of invoices with one single item. When empty, defaults to the total amount of the related invoice. |
{- "invoice_id": 139331
}{- "id": 92732431,
- "created_at": "1593260908",
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Invoice"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "tag_list": "refund, product_return",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "Product return refund",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "exchange_rate": 0.680309,
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}Retrieves the details of an existing credit note. You need only supply the unique identifier returned upon creation.
| id required | string The ID of the desired credit. |
{- "id": 92732431,
- "created_at": "1593260908",
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Invoice"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "tag_list": "refund, product_return",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "Product return refund",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "exchange_rate": 0.680309,
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}Updates an existing credit note. Once finalized, credit notes are legally immutable — tax law prohibits altering amounts, line items, or customer details. Only administrative fields (tag_list, payment_details, notes, custom_metadata) can still be modified. If a correction is needed, void the credit note and issue a new one.
| id required | integer The ID of the credit to be updated. |
| tag_list | Array of strings or null Multiple tags should be separated by commas. |
| payment_details | string or null Detailed information about the accepted payment methods. |
| notes | string or null Extra notes about the document. |
| custom_metadata | object or null Set of key-value pairs that you can attach to an object. |
object (attachment) Invoices and expenses can have attached files. |
{- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "custom_metadata": {
- "key": "value"
}, - "attachment": {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}
}{- "id": 92732431,
- "created_at": "1593260908",
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Invoice"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "tag_list": "refund, product_return",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "Product return refund",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "exchange_rate": 0.680309,
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}Records a payment against a credit note. When the total payments reach the credit note amount, it is automatically marked as paid.
| id required | string The ID of the credit note. |
| amount | number <float> Paid amount. |
| date | string or null <date> Default is current date. |
| payment_method | string or null Enum: "credit_card" "cash" "wire_transfer" "direct_debit" "check" "iou" "paypal" "other" "credit" "offset" |
| processor | string or null The payment processor used to process the payment. |
| processor_id | string or null The ID the |
{- "amount": 56.6,
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999"
}{- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}Voids a credit note, effectively canceling it. Tax law prohibits deleting credit notes — voiding is the only way to reverse one. A void_reason is required for audit purposes. Voiding reopens the original invoice if it was closed by this credit note.
| id required | integer The ID of the credit to be voided. |
| void_reason required | string |
{- "void_reason": "string"
}{- "id": 92732431,
- "created_at": "1593260908",
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Invoice"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "tag_list": "refund, product_return",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "Product return refund",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "exchange_rate": 0.680309,
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}Sends the credit note to the customer via email using the account's configured template and language. The contact must have a valid email address. Delivery history is recorded and accessible via the deliveries field.
| id required | string The ID of the desired credit. |
Proformas are preliminary documents sent to customers before a sale is confirmed. They outline the expected cost and can be accepted, declined, or converted into a full invoice once the customer agrees.
Lists all proformas, paginated and sorted by creation date (newest first).
| q | string Filters a proformas list based on the proforma number, customer name or PO number. |
| date | string Filters a proformas list based on the issue date. A date range must be entered. Allowed formats are |
| state | string Enum: "outstanding" "accepted" "declined" "invoiced" "late" Filters a proformas list based on the proforma state. |
| contact | integer Filters a proformas list based on the customer ID. |
[- {
- "id": 92732431,
- "created_at": 1593260908,
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
], - "city": "Pasadena",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "currency": "USD",
- "custom_metadata": { },
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "due_days": 30,
- "discount_cents": 0,
- "issue_date": "2020-06-27",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "number": "E-00001",
- "payment_details": "string",
- "po_number": "999",
- "postal_code": "91104",
- "region": "CA",
- "state": "outstanding",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "subtotal_cents": 9375,
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "total_cents": 9375,
- "valid_until": "2020-07-27"
}
]Creates a new proforma object.
object (attachment) Invoices and expenses can have attached files. | |
required | contact (object) or object Customer receiving the proforma. Can reference an existing contact by ID or include full contact details. |
| currency | string Three-letter ISO 4217 currency code in uppercase. |
| custom_metadata | object or null Custom key-value pairs for storing additional structured data. |
| due_days | integer or null Number of days after the invoice issue date when payment is due. When the proforma is converted to an invoice, the invoice due_date is calculated as issue_date + due_days. |
required | Array of objects (document_item) Line items included in this proforma (products, services, fees, etc.). |
| notes | string or null Internal notes or additional information about this proforma. |
| payment_details | string or null Additional information about accepted payment methods, displayed to the customer. |
| po_number | string or null Customer's purchase order number for reference and tracking. |
| street_line_1 | string or null First line of customer's billing address. |
| street_line_2 | string or null Second line of customer's billing address. |
| subject | string or null Brief summary or title describing what this proforma is for. Displayed prominently on the document. |
| tag_list | Array of strings or null Array of tags for categorizing and filtering proformas. |
| tax_id | string or null Customer's tax identification number (VAT number, EIN, etc.). |
| valid_until | string or null <date> Expiration date of the proforma. Once this date is passed and the proforma has not been accepted, it transitions to the "late" state. |
{- "attachment": {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}, - "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "currency": "USD",
- "custom_metadata": { },
- "due_days": 30,
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "payment_details": "string",
- "po_number": "999",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "valid_until": "2020-07-27"
}{- "id": 92732431,
- "created_at": 1593260908,
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
], - "city": "Pasadena",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "currency": "USD",
- "custom_metadata": { },
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "due_days": 30,
- "discount_cents": 0,
- "issue_date": "2020-06-27",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "number": "E-00001",
- "payment_details": "string",
- "po_number": "999",
- "postal_code": "91104",
- "region": "CA",
- "state": "outstanding",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "subtotal_cents": 9375,
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "total_cents": 9375,
- "valid_until": "2020-07-27"
}Retrieves the details of an existing proforma.
| id required | string The ID of the desired proforma. |
{- "id": 92732431,
- "created_at": 1593260908,
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
], - "city": "Pasadena",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "currency": "USD",
- "custom_metadata": { },
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "due_days": 30,
- "discount_cents": 0,
- "issue_date": "2020-06-27",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "number": "E-00001",
- "payment_details": "string",
- "po_number": "999",
- "postal_code": "91104",
- "region": "CA",
- "state": "outstanding",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "subtotal_cents": 9375,
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "total_cents": 9375,
- "valid_until": "2020-07-27"
}Updates an existing proforma. Accepted and invoiced proformas cannot be modified.
| id required | integer The ID of the proforma to be updated. |
object (attachment) Invoices and expenses can have attached files. | |
required | contact (object) or object Customer receiving the proforma. Can reference an existing contact by ID or include full contact details. |
| currency | string Three-letter ISO 4217 currency code in uppercase. |
| custom_metadata | object or null Custom key-value pairs for storing additional structured data. |
| due_days | integer or null Number of days after the invoice issue date when payment is due. When the proforma is converted to an invoice, the invoice due_date is calculated as issue_date + due_days. |
required | Array of objects (document_item) Line items included in this proforma (products, services, fees, etc.). |
| notes | string or null Internal notes or additional information about this proforma. |
| payment_details | string or null Additional information about accepted payment methods, displayed to the customer. |
| po_number | string or null Customer's purchase order number for reference and tracking. |
| street_line_1 | string or null First line of customer's billing address. |
| street_line_2 | string or null Second line of customer's billing address. |
| subject | string or null Brief summary or title describing what this proforma is for. Displayed prominently on the document. |
| tag_list | Array of strings or null Array of tags for categorizing and filtering proformas. |
| tax_id | string or null Customer's tax identification number (VAT number, EIN, etc.). |
| valid_until | string or null <date> Expiration date of the proforma. Once this date is passed and the proforma has not been accepted, it transitions to the "late" state. |
{- "attachment": {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}, - "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "currency": "USD",
- "custom_metadata": { },
- "due_days": 30,
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "payment_details": "string",
- "po_number": "999",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "valid_until": "2020-07-27"
}{- "id": 92732431,
- "created_at": 1593260908,
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
], - "city": "Pasadena",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "currency": "USD",
- "custom_metadata": { },
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "due_days": 30,
- "discount_cents": 0,
- "issue_date": "2020-06-27",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "number": "E-00001",
- "payment_details": "string",
- "po_number": "999",
- "postal_code": "91104",
- "region": "CA",
- "state": "outstanding",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "subtotal_cents": 9375,
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "total_cents": 9375,
- "valid_until": "2020-07-27"
}Marks a proforma as accepted by the customer. Only proformas in "outstanding" or "late" state can be accepted.
| id required | string The ID of the proforma to accept. |
{- "id": 92732431,
- "created_at": 1593260908,
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
], - "city": "Pasadena",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "currency": "USD",
- "custom_metadata": { },
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "due_days": 30,
- "discount_cents": 0,
- "issue_date": "2020-06-27",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "number": "E-00001",
- "payment_details": "string",
- "po_number": "999",
- "postal_code": "91104",
- "region": "CA",
- "state": "outstanding",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "subtotal_cents": 9375,
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "total_cents": 9375,
- "valid_until": "2020-07-27"
}Marks a proforma as declined by the customer. Only proformas in "outstanding" or "late" state can be declined.
| id required | string The ID of the proforma to decline. |
{- "id": 92732431,
- "created_at": 1593260908,
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
], - "city": "Pasadena",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "currency": "USD",
- "custom_metadata": { },
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "due_days": 30,
- "discount_cents": 0,
- "issue_date": "2020-06-27",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "number": "E-00001",
- "payment_details": "string",
- "po_number": "999",
- "postal_code": "91104",
- "region": "CA",
- "state": "outstanding",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "subtotal_cents": 9375,
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "total_cents": 9375,
- "valid_until": "2020-07-27"
}Reverts a proforma back to "outstanding" from "accepted" or "declined". Invoiced proformas cannot be reverted.
| id required | string The ID of the proforma to revert. |
{- "id": 92732431,
- "created_at": 1593260908,
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
], - "city": "Pasadena",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "currency": "USD",
- "custom_metadata": { },
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "due_days": 30,
- "discount_cents": 0,
- "issue_date": "2020-06-27",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "notes": "string",
- "number": "E-00001",
- "payment_details": "string",
- "po_number": "999",
- "postal_code": "91104",
- "region": "CA",
- "state": "outstanding",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "subtotal_cents": 9375,
- "tag_list": "consulting, premium",
- "tax_id": "string",
- "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "total_cents": 9375,
- "valid_until": "2020-07-27"
}Converts an accepted proforma into an invoice. The proforma state transitions to "invoiced" and a new invoice is returned. Only proformas in the "accepted" state can be converted.
| id required | string The ID of the proforma to convert. |
{- "id": 92732431,
- "created_at": 1593260908,
- "number": "00001",
- "issue_date": "2020-06-27",
- "related_document": {
- "id": 92732430,
- "type": "Recurring"
}, - "po_number": "999",
- "due_date": "2020-07-27",
- "currency": "USD",
- "exchange_rate": 0.680309,
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "city": "Pasadena",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "subject": "string",
- "deliveries": [
- {
- "delivered_at": "1593260908",
- "recipient": "ticketbai_araba",
- "service_response": "string",
- "type": "registration"
}
], - "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "evidence": {
- "id": 92732431,
- "additional_evidence": "Phone bill",
- "additional_evidence_country": "DE",
- "bank_country": "DE",
- "billing_country": "DE",
- "created_at": "1593260908",
- "document_id": 43123,
- "ip_address": "127.0.0.1",
- "ip_country": "DE",
- "notes": "Some private notes about the evidence.",
- "state": "unsettled",
}, - "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "processor_fee_cents": 99,
- "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
- "alerts": [
- {
- "kind": "conflicting_evidence",
- "description": "Location evidence indicates customer is in US, but billing address shows CA. Tax calculated based on evidence."
}
],
}Expenses record the costs your business incurs from vendors and suppliers. They appear in your financial reports and can be used to track deductible business expenditures.
Lists all expenses, paginated and sorted by creation date (newest first).
| q | string Filters an expenses list based on the expense number, customer name or PO number. |
| date | string Filters an expenses list based on the issue date. A date range must be entered. Allowed formats are |
| state | string Enum: "outstanding" "late" "paid" Filters an expenses list based on the expense state: |
| contact | integer Filters an expenses list based on the customer ID. |
[- {
- "id": 927324,
- "created_at": 1593260908,
- "issue_date": "2023-09-01",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, office",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}
]Creates a new expense.
| issue_date | string <date> Date when the expense was issued. |
| po_number | string or null Purchase order number. |
| currency | string Three-letter ISO currency code, in uppercase. |
| tag_list | Array of strings or null Multiple tags should be separated by commas. |
| payment_details | string or null Detailed information about the payment. |
| notes | string or null Extra notes about the expense. |
required | contact (object) or object Provider of your expense. |
object (attachment) Invoices and expenses can have attached files. | |
| country | string The customer’s billing country. 2-letter ISO country code. |
| postal_code | string or null The customer’s billing ZIP or postal code. |
| region | string or null The customer’s billing state/province/region. |
| street_line_1 | string or null The customer’s billing address line 1 (Street address/PO Box). |
| street_line_2 | string or null The customer’s billing address line 2 (Apartment/Suite/Unit/Building). |
| subject | string or null An optional summary description of the document. |
required | Array of objects (document_item) The individual line items that make up the expense. No more than 200 items are allowed in a request. To add more use subsequent update requests. Maximum items per document are limited up to 1000 items. |
| payment_method | string Enum: "credit_card" "cash" "wire_transfer" "direct_debit" "check" "iou" "paypal" "other" Payment method used. |
| payment_processor | string or null The payment processor used to pay the expense. |
| payment_processor_id | string or null The ID the |
| custom_metadata | object or null Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. |
{- "issue_date": "2023-09-01",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, office",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "attachment": {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "payment_method": "credit_card",
- "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "custom_metadata": { }
}{- "id": 927324,
- "created_at": 1593260908,
- "issue_date": "2023-09-01",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, office",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}Retrieves the details of an existing expense.
| id required | string The ID of the desired expense. |
{- "id": 927324,
- "created_at": 1593260908,
- "issue_date": "2023-09-01",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, office",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}Updates an expense.
| id required | integer The ID of the expense to be updated. |
| issue_date | string <date> Date when the expense was issued. |
| po_number | string or null Purchase order number. |
| currency | string Three-letter ISO currency code, in uppercase. |
| tag_list | Array of strings or null Multiple tags should be separated by commas. |
| payment_details | string or null Detailed information about the payment. |
| notes | string or null Extra notes about the expense. |
required | contact (object) or object Provider of your expense. |
object (attachment) Invoices and expenses can have attached files. | |
| country | string The customer’s billing country. 2-letter ISO country code. |
| postal_code | string or null The customer’s billing ZIP or postal code. |
| region | string or null The customer’s billing state/province/region. |
| street_line_1 | string or null The customer’s billing address line 1 (Street address/PO Box). |
| street_line_2 | string or null The customer’s billing address line 2 (Apartment/Suite/Unit/Building). |
| subject | string or null An optional summary description of the document. |
required | Array of objects (document_item) The individual line items that make up the expense. No more than 200 items are allowed in a request. To add more use subsequent update requests. Maximum items per document are limited up to 1000 items. |
| payment_method | string Enum: "credit_card" "cash" "wire_transfer" "direct_debit" "check" "iou" "paypal" "other" Payment method used. |
| payment_processor | string or null The payment processor used to pay the expense. |
| payment_processor_id | string or null The ID the |
| custom_metadata | object or null Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. |
{- "issue_date": "2023-09-01",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, office",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "attachment": {
- "data": "string",
- "filename": "ticket.jpeg",
- "public": true
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "payment_method": "credit_card",
- "payment_processor": "stripe",
- "payment_processor_id": "ch_999999999999",
- "custom_metadata": { }
}{- "id": 927324,
- "created_at": 1593260908,
- "issue_date": "2023-09-01",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, office",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "country": "US",
- "postal_code": "91104",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "payments": [
- {
- "id": 92732431,
- "amount": 56.6,
- "created_at": "1593260908",
- "date": "2020-06-27",
- "payment_method": "credit_card",
- "processor": "stripe",
- "processor_id": "ch_999999999999",
}
], - "custom_metadata": { },
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "total_cents": 9375,
- "state": "outstanding",
}Recurring documents automatically generate invoices or expenses on a defined schedule — daily, weekly, monthly, or yearly. Use them to automate subscription billing and regular vendor payments without manual intervention.
Lists all recurring, paginated and sorted by creation date (newest first).
| q | string Filters a recurring list based on the recurring number, customer name or PO number. |
| date | string Filters a recurring list based on the issue date. A date range must be entered. Allowed formats are |
| state | string Enum: "active" "archived" Filters a recurring list based on the recurring state. |
| contact | integer Filters a recurring list based on the customer ID. |
[- {
- "id": 92732431,
- "start_date": "2023-01-27",
- "end_date": "2024-01-27",
- "frequency": "daily",
- "recurring_period": "days",
- "recurring_frequency": 1,
- "due_days": "2020-07-27",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "custom_metadata": { },
- "total_cents": 9375,
- "state": "active",
}
]Creates a new recurring.
| start_date | string <date> Date of the issue of the first document for this recurring. Defaults to 1 months from today. |
| end_date | string or null <date> Date of the issue of the last document for this recurring. |
| frequency | string Default: "monthly" Enum: "daily" "weekly" "biweekly" "monthly" "bimonthly" "quarterly" "semiyearly" "yearly" "biyearly" Recurring frequency. Deprecated. Use recurring_period and recurring_frequency instead. |
| recurring_period | string Default: "months" Enum: "days" "weeks" "months" "years" Recurring period. |
| recurring_frequency | integer Default: 1 The number of recurring periods between each document. |
| due_days | string or null <date> The date on which payment for this recurring is due. |
| po_number | string or null Purchase order number. |
| currency | string Three-letter ISO currency code, in uppercase. |
| tag_list | Array of strings or null Multiple tags should be separated by commas. |
| payment_details | string or null Detailed information about the accepted payment methods. |
| notes | string or null Extra notes about the recurring. |
required | contact (object) or object Customer who will be billed. |
| subject | string or null An optional summary description for the document. |
required | Array of objects (document_item) The individual line items that make up the recurring. No more than 200 items are allowed in a request. To add more use subsequent update requests. Maximum items per document are limited up to 1000 items. |
| custom_metadata | object or null Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. |
{- "start_date": "2023-01-27",
- "end_date": "2024-01-27",
- "frequency": "daily",
- "recurring_period": "days",
- "recurring_frequency": 1,
- "due_days": "2020-07-27",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "subject": "string",
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "custom_metadata": { }
}{- "id": 92732431,
- "start_date": "2023-01-27",
- "end_date": "2024-01-27",
- "frequency": "daily",
- "recurring_period": "days",
- "recurring_frequency": 1,
- "due_days": "2020-07-27",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "custom_metadata": { },
- "total_cents": 9375,
- "state": "active",
}Retrieves the details of an existing recurring.
| id required | string The ID of the desired recurring. |
{- "id": 92732431,
- "start_date": "2023-01-27",
- "end_date": "2024-01-27",
- "frequency": "daily",
- "recurring_period": "days",
- "recurring_frequency": 1,
- "due_days": "2020-07-27",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "custom_metadata": { },
- "total_cents": 9375,
- "state": "active",
}Updates a recurring.
| id required | integer The ID of the recurring to be updated. |
| start_date | string <date> Date of the issue of the first document for this recurring. Defaults to 1 months from today. |
| end_date | string or null <date> Date of the issue of the last document for this recurring. |
| frequency | string Default: "monthly" Enum: "daily" "weekly" "biweekly" "monthly" "bimonthly" "quarterly" "semiyearly" "yearly" "biyearly" Recurring frequency. Deprecated. Use recurring_period and recurring_frequency instead. |
| recurring_period | string Default: "months" Enum: "days" "weeks" "months" "years" Recurring period. |
| recurring_frequency | integer Default: 1 The number of recurring periods between each document. |
| due_days | string or null <date> The date on which payment for this recurring is due. |
| po_number | string or null Purchase order number. |
| currency | string Three-letter ISO currency code, in uppercase. |
| tag_list | Array of strings or null Multiple tags should be separated by commas. |
| payment_details | string or null Detailed information about the accepted payment methods. |
| notes | string or null Extra notes about the recurring. |
required | contact (object) or object Customer who will be billed. |
| subject | string or null An optional summary description for the document. |
required | Array of objects (document_item) The individual line items that make up the recurring. No more than 200 items are allowed in a request. To add more use subsequent update requests. Maximum items per document are limited up to 1000 items. |
| custom_metadata | object or null Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. |
{- "start_date": "2023-01-27",
- "end_date": "2024-01-27",
- "frequency": "daily",
- "recurring_period": "days",
- "recurring_frequency": 1,
- "due_days": "2020-07-27",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "subject": "string",
- "items": [
- {
- "description": "Ruby Essentials",
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "custom_metadata": { }
}{- "id": 92732431,
- "start_date": "2023-01-27",
- "end_date": "2024-01-27",
- "frequency": "daily",
- "recurring_period": "days",
- "recurring_frequency": 1,
- "due_days": "2020-07-27",
- "po_number": "999",
- "currency": "USD",
- "tag_list": "consulting, premium",
- "payment_details": "string",
- "notes": "string",
- "contact": {
- "id": 92732431,
- "city": "Pasadena",
- "contact_person": "string",
- "country": "US",
- "created_at": 1648037653,
- "department": "string",
- "discount": 0,
- "first_name": "Leonard",
- "kind": "person",
- "language": "EN",
- "last_name": "Hofstadter",
- "notes": "Some private notes about the contact.",
- "phone_1": "202-555-0104",
- "postal_code": "91104",
- "processor": "stripe",
- "processor_id": "cus_999999999999",
- "region": "CA",
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "tax_id": "string",
- "tax_status": "taxable",
}, - "subject": "string",
- "items": [
- {
- "id": 92732431,
- "description": "Ruby Essentials",
- "subtotal_cents": 9375,
- "discount_cents": 0,
- "discount_rate": 25.5,
- "quantity": 2,
- "product_code": "012345678901-MFN",
- "tax_1_transaction_type": "eservice",
- "tax_1_country": "CA",
- "tax_1_name": "GST",
- "tax_1_rate": 5,
- "tax_1_region": "BC",
- "tax_2_transaction_type": "eservice",
- "tax_2_country": "CA",
- "tax_2_name": "PST",
- "tax_2_rate": 7,
- "tax_2_region": "BC",
- "total_amount": 19.98,
- "unit_price": 9.99
}
], - "taxes": [
- {
- "label": "GST",
- "rate": 5,
- "country": "CA",
- "region": "BC",
- "county": "Los Angeles",
- "transaction_type": "eservice",
- "amount_cents": 1000
}
], - "custom_metadata": { },
- "total_cents": 9375,
- "state": "active",
}Quaderno Connect accounts are sub-accounts that belong to your platform. Each account has its own invoices, contacts, and tax settings. Use this API to create and manage accounts on behalf of your users.
Retrieves the details of an existing Quaderno Connect custom account.
| id required | integer Example: 41 The ID of the custom account to retrieve. |
{- "id": 0,
- "business_name": "string",
- "created_at": 0,
- "currency": "string",
- "default_product_type": "good",
- "default_tax_code": "eservice",
- "email": "string",
- "state": "string",
- "subdomain": "string",
- "web": "string",
- "registration_number": "string",
- "authentication": {
- "access_token": "bDFVtZRvVK9vg_H9RJFD7Oq6Oi_NMzDMiw_xxx",
- "token_type": "Bearer"
}
}Updates the details of an existing Quaderno Connect custom account.
| id required | integer The ID of the custom account to update. |
| business_name | string Legal or trade name of the business. |
| default_product_type | string or null Enum: "good" "service" Fallback product type for documents and tax calculations. Defaults to "service". |
| default_tax_code | string or null Enum: "eservice" "ebook" "saas" "consulting" "standard" "reduced" "retention" Fallback tax code for items and tax calculations. Defaults to "eservice". |
string Primary contact email for account notifications. | |
| web | string Business website URL. |
| registration_number | string Official government-issued number that identifies the business entity (e.g., EIN in the US, SIREN in France, W-IdNr. in Germany, ABN in Australia). |
{- "business_name": "string",
- "default_product_type": "good",
- "default_tax_code": "eservice",
- "email": "string",
- "web": "string",
- "registration_number": "string"
}{- "id": 0,
- "business_name": "string",
- "created_at": 0,
- "currency": "string",
- "default_product_type": "good",
- "default_tax_code": "eservice",
- "email": "string",
- "state": "string",
- "subdomain": "string",
- "web": "string",
- "registration_number": "string",
- "authentication": {
- "access_token": "bDFVtZRvVK9vg_H9RJFD7Oq6Oi_NMzDMiw_xxx",
- "token_type": "Bearer"
}
}Creates a new Quaderno Connect custom account.
| business_name required | string Legal or trade name of the business. |
| country required | string Two-letter ISO 3166-1 alpha-2 country code. Cannot be changed after creation. |
| currency | string or null Three-letter ISO 4217 currency code. Defaults to the country's official currency. |
| default_product_type | string or null Enum: "good" "service" Fallback product type for documents and tax calculations. Defaults to "service". |
| default_tax_code | string or null Enum: "eservice" "ebook" "saas" "consulting" "standard" "reduced" "retention" Fallback tax code for items and tax calculations. Defaults to "eservice". |
| email required | string Primary contact email for account notifications. |
| local_tax_id | string or null Tax ID that registers the account for tax collection in the country. Cannot be changed after creation. |
| postal_code | string or null ZIP or postal code of the business location. Cannot be changed after creation. |
| web | string or null Business website URL. |
| registration_number | string or null Official government-issued number that identifies the business entity (e.g., EIN in the US, SIREN in France, W-IdNr. in Germany, ABN in Australia). |
{- "business_name": "string",
- "country": "string",
- "currency": "string",
- "default_product_type": "good",
- "default_tax_code": "eservice",
- "email": "string",
- "local_tax_id": "string",
- "postal_code": "string",
- "web": "string",
- "registration_number": "string"
}{- "id": 0,
- "business_name": "string",
- "created_at": 0,
- "currency": "string",
- "default_product_type": "good",
- "default_tax_code": "eservice",
- "email": "string",
- "state": "string",
- "subdomain": "string",
- "web": "string",
- "registration_number": "string",
- "authentication": {
- "access_token": "bDFVtZRvVK9vg_H9RJFD7Oq6Oi_NMzDMiw_xxx",
- "token_type": "Bearer"
}
}Retrieves a list of all Quaderno Connect accounts.
[- {
- "id": 0,
- "business_name": "string",
- "created_at": 0,
- "currency": "string",
- "default_product_type": "good",
- "default_tax_code": "eservice",
- "email": "string",
- "state": "string",
- "subdomain": "string",
- "web": "string",
- "registration_number": "string",
- "authentication": {
- "access_token": "bDFVtZRvVK9vg_H9RJFD7Oq6Oi_NMzDMiw_xxx",
- "token_type": "Bearer"
}
}
]Addresses store the location history of a Quaderno Connect account. Each address has a validity period, allowing Quaderno to apply the correct tax rules based on where the business was located at any given point in time.
Lists all addresses from a Quaderno Connect custom account, paginated and sorted by creation date (newest first).
[- {
- "id": 16,
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "city": "Pasadena",
- "region": "CA",
- "postal_code": "91104",
- "country": "US",
- "valid_from": "2023-07-01",
- "valid_until": "2024-02-03"
}
]Creates a new address to be used on a Quaderno Connect custom account.
| street_line_1 | string or null Primary street address, including street number and name or PO Box. |
| street_line_2 | string or null Secondary address line for apartment, suite, unit, or building details. |
| city | string or null City, district, suburb, town, or village name. |
| region | string or null State, province, or region code. |
| postal_code | string or null ZIP or postal code. |
| country | string or null Two-letter ISO 3166-1 alpha-2 country code. Defaults to the account's original country. WARNING: Changing the country is not recommended, especially if the new country uses a different official currency than the account currency. This may lead to tax calculation errors, reporting inconsistencies, and compliance issues. If you need to operate in a different country with a different currency, consider creating a new account instead. |
| valid_from | string <date> Date when this address becomes effective (ISO 8601 format: YYYY-MM-DD). Defaults to the current date. |
| valid_until | string or null <date> Date when this address expires, if applicable (ISO 8601 format: YYYY-MM-DD). Leave empty for addresses with no end date. |
{- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "city": "Pasadena",
- "region": "CA",
- "postal_code": "91104",
- "country": "US",
- "valid_from": "2023-07-01",
- "valid_until": "2024-02-03"
}{- "id": 16,
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "city": "Pasadena",
- "region": "CA",
- "postal_code": "91104",
- "country": "US",
- "valid_from": "2023-07-01",
- "valid_until": "2024-02-03"
}Retrieves the details of an existing address.
| id required | string ID of the desired address. |
{- "id": 16,
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "city": "Pasadena",
- "region": "CA",
- "postal_code": "91104",
- "country": "US",
- "valid_from": "2023-07-01",
- "valid_until": "2024-02-03"
}Updates a address. Any parameters not provided will be left unchanged.
| id required | integer ID of the address to be updated. |
| street_line_1 | string or null Primary street address, including street number and name or PO Box. |
| street_line_2 | string or null Secondary address line for apartment, suite, unit, or building details. |
| city | string or null City, district, suburb, town, or village name. |
| region | string or null State, province, or region code. |
| postal_code | string or null ZIP or postal code. |
| country | string or null Two-letter ISO 3166-1 alpha-2 country code. Defaults to the account's original country. WARNING: Changing the country is not recommended, especially if the new country uses a different official currency than the account currency. This may lead to tax calculation errors, reporting inconsistencies, and compliance issues. If you need to operate in a different country with a different currency, consider creating a new account instead. |
| valid_from | string <date> Date when this address becomes effective (ISO 8601 format: YYYY-MM-DD). Defaults to the current date. |
| valid_until | string or null <date> Date when this address expires, if applicable (ISO 8601 format: YYYY-MM-DD). Leave empty for addresses with no end date. |
{- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "city": "Pasadena",
- "region": "CA",
- "postal_code": "91104",
- "country": "US",
- "valid_from": "2023-07-01",
- "valid_until": "2024-02-03"
}{- "id": 16,
- "street_line_1": "2311 North Los Robles Av.",
- "street_line_2": "Apartment C",
- "city": "Pasadena",
- "region": "CA",
- "postal_code": "91104",
- "country": "US",
- "valid_from": "2023-07-01",
- "valid_until": "2024-02-03"
}Reporting requests generate downloadable tax and billing reports asynchronously. Submit a request, then poll or wait for the report URL to become available once processing is complete.
Retrieves the list of reporting requests.
[- {
- "id": 0,
- "report_type": "tax_summary",
- "report_url": null,
- "state": "succeeded",
- "parameters": {
- "from_date": "2022-10-10",
- "to_date": "2022-11-11"
}, - "completed_at": 1632985500,
- "created_at": 1632985500
}
]Creates a new reporting request. The report file will be ready some minutes after creating a new request.
| report_type | string Enum: "tax_summary" "invoices_list" "credits_list" The type of report. |
object Parameters specifying report details. |
{- "report_type": "tax_summary",
- "parameters": {
- "from_date": "2022-10-10",
- "to_date": "2022-11-11"
}
}{- "id": 0,
- "report_type": "tax_summary",
- "report_url": null,
- "state": "pending",
- "parameters": {
- "from_date": "2022-10-10",
- "to_date": "2022-11-11"
}, - "completed_at": 1632985500,
- "created_at": 1632985500
}Retrieves updated info from the reporting request.
| id required | integer Example: 41 The ID of the reporting request to retrieve. |
{- "id": 0,
- "report_type": "tax_summary",
- "report_url": null,
- "state": "pending",
- "parameters": {
- "from_date": "2022-10-10",
- "to_date": "2022-11-11"
}, - "completed_at": 1632985500,
- "created_at": 1632985500
}Webhooks notify your server in real time when events happen in a Quaderno account — such as an invoice being created, a payment being recorded, or a tax transaction being processed. Each webhook delivers a signed payload to a URL you control.
Lists all webhooks, sorted by creation date (newest first).
[- {
- "id": 92732431,
- "auth_key": "zXQgArTtQxAMaYppMrDoUQ",
- "created_at": "2023-01-24T10:59:15.000Z",
- "events_sent": 0,
- "events_types": [
- "invoice.created",
- "credit.created"
], - "last_error": "Response code 503 returned.",
- "last_error_at": "2023-01-24T10:59:15.000Z",
- "last_sent_at": "2023-01-24T10:59:15.000Z",
}
]Creates a new webhook object. The url provided needs to respond with 200 OK to HEAD requests in order to validate the callback endpoint.
| events_types required | Array of strings The list of events to enable for this endpoint. |
| url required | string <uri> The URL of the webhook endpoint. |
{- "events_types": [
- "invoice.created",
- "credit.created"
],
}{- "id": 92732431,
- "auth_key": "zXQgArTtQxAMaYppMrDoUQ",
- "created_at": "2023-01-24T10:59:15.000Z",
- "events_sent": 0,
- "events_types": [
- "invoice.created",
- "credit.created"
], - "last_error": "Response code 503 returned.",
- "last_error_at": "2023-01-24T10:59:15.000Z",
- "last_sent_at": "2023-01-24T10:59:15.000Z",
}Retrieves the details of an existing webhook.
| id required | string The ID of the desired webhook. |
{- "id": 92732431,
- "auth_key": "zXQgArTtQxAMaYppMrDoUQ",
- "created_at": "2023-01-24T10:59:15.000Z",
- "events_sent": 0,
- "events_types": [
- "invoice.created",
- "credit.created"
], - "last_error": "Response code 503 returned.",
- "last_error_at": "2023-01-24T10:59:15.000Z",
- "last_sent_at": "2023-01-24T10:59:15.000Z",
}Updates the specified webhook.
| id required | integer The ID of the webhook to be updated. |
| events_types required | Array of strings The list of events to enable for this endpoint. |
| url required | string <uri> The URL of the webhook endpoint. |
{- "events_types": [
- "invoice.created",
- "credit.created"
],
}{- "id": 92732431,
- "auth_key": "zXQgArTtQxAMaYppMrDoUQ",
- "created_at": "2023-01-24T10:59:15.000Z",
- "events_sent": 0,
- "events_types": [
- "invoice.created",
- "credit.created"
], - "last_error": "Response code 503 returned.",
- "last_error_at": "2023-01-24T10:59:15.000Z",
- "last_sent_at": "2023-01-24T10:59:15.000Z",
}