Errors
Tallymark uses standard HTTP status codes to tell you whether a request
worked. 2xx codes mean it worked, and 4xx codes mean it failed.
Errors you can handle in code include a code. Each endpoint lists the
errors it can return.
HTTP status codes
200OK: everything worked.201Created: the record was created.400Bad Request: the request couldn't be processed.401Unauthorized: the API key is missing, invalid, or revoked.402Payment Required: the payment or refund failed.403Forbidden: the API key is read only, or the account must verify its email first.404Not Found: the record doesn't exist or was deleted.409Conflict: the invoice can't be paid or refunded right now.422Unprocessable Content: a field is missing or invalid.429Too Many Requests: you made more than 300 requests in 5 minutes, or the account can't send email right now.
Error codes
request_failed: the request couldn't be processed.api_key_missing: the request has no API key.api_key_invalid: the API key is invalid or revoked.api_key_read_only: the API key is read only and can't make POST requests.api_version_unsupported: theApi-Versionheader isn't a supported version.amount_too_large: the amount is more than what's left to pay or refund.amount_too_small: the amount is below the minimum card charge for the currency.payment_method_not_found: the payment method isn't one of the client's cards.payment_failed: the card was declined or the payment failed.account_not_verified: the account must verify its email before sending invoices or charging cards.already_paid: the invoice is already paid.stripe_not_connected: the account hasn't connected Stripe.no_payment_method: the client has no card on file.nothing_to_refund: the invoice has no payments left to refund.refund_failed: the refund failed at the payment processor.too_many_emails: the account hit its email limit and can't send email right now.invoice_void: the invoice is void.invoice_finalized: the invoice is no longer a draft.subscription_draft: the subscription is a draft.subscription_ended: the subscription has generated all of itsnumber_of_invoices.
The error object
- Name
message- Type
- string
- Description
What went wrong, written for people.
- Name
code- Type
- string
- Description
A short string for errors you can handle in code. See error codes.
The error object
{
"message": "This invoice is already paid.",
"code": "already_paid"
}The validation error object
- Name
message- Type
- string
- Description
The first validation error, written for people.
- Name
errors- Type
- object
- Description
The error messages for each invalid field, by field name.
The validation error object
{
"message": "The name field is required.",
"errors": {
"name": [
"The name field is required."
]
}
}