API Reference

Account API

Read and update your Rebill account settings via the API: business details, tax settings, document defaults, quote layout, reminders, late fees, numbering and client codes. Covers GET /me and PUT /account with the full field list.

Last updated

Your account holds the business details printed on documents and every setting under Settings in the app. The API exposes the same object: read it with GET /me, change it with PUT /account. Both act on the account your API key belongs to.

Read your account

GET /me
curl https://api.rebill.co.za/me \
  -H "Authorization: Bearer sk_your_secret_key"

Response (abridged):

{
  "id": "acc123",
  "country": "ZA",
  "default_currency": "ZAR",
  "business_name": "Acme Corp Pty Ltd",
  "business_email": "[email protected]",
  "business_phone": "+27821234567",
  "vat_number": "4123456789",
  "tax_label": "VAT",
  "tax_rate": 1500,
  "timezone": "Africa/Johannesburg",
  "invoice_template": "standard",
  "hide_quote_status": false,
  "hide_quote_validity": false,
  "next_invoice_number": 42,
  "next_quote_number": 7,
  "client_code_auto": true,
  "client_code_prefix": "C",
  "next_client_code_number": 118,
  "subscription_status": "active",
  "has_logo": true,
  "logo_version": 1757400000
}

The full object is described below. logo_version is only present on this endpoint: the unix second of the last logo upload, 0 without a logo.

Account object

Fields marked read only are returned by GET /me but ignored by PUT /account.

FieldTypeDescription
idstringUnique identifier (read only)
countrystringTwo letter country code chosen at signup (read only)
default_currencystringISO 4217 code of the default currency (read only)
multi_currencybooleanWhether documents may use other currencies. Premium only; always false on the free plan
business_namestringTrading name printed on documents
business_emailstringSender and reply address for documents; stored lower case
business_phonestringE.164 phone number, e.g. +27821234567
business_websitestringFull URL including the scheme
business_addressobjectObject with street_1, street_2, city, province, postal_code, country; null when not set
vat_numberstringTax registration number. When empty, documents print without tax
tax_labelstringLabel used for tax on documents, e.g. VAT or GST. Empty uses the country default
tax_rateintegerDefault tax rate in basis points (1500 = 15%)
tax_number_labelstringLabel printed next to the tax number, e.g. VAT No.
vat_basisstringaccrual (default) · cash. Basis used by the VAT report
vat_categorystringA (default) · B. SARS tax period category
tax_entity_typestringindividual · company · company_sbc. Used by the tax tools; empty when not set
fiscal_year_start_monthinteger1 to 12, the month the financial year starts
timezonestringIANA zone name, e.g. Africa/Johannesburg. Empty means South African time
marketing_emailsbooleanWhether the account receives product news from Rebill
invoice_notesstringDefault notes on new invoices
quote_notesstringDefault notes on new quotes
invoice_bank_detailsstringDefault banking details on invoices
invoice_payment_termsstringPayment terms line printed on invoices, up to 100 characters
termsstringTerms and conditions in Markdown, shown on quotes and invoices
terms_on_pdfbooleanAdd the terms as a separate page on PDFs
custom_fieldsobjectLabel to value map printed on every document, e.g. {"Reg. no": "2020/123456/07"}
email_messagesobjectKey to text map of the messages Rebill sends. Keys: invoice_send, invoice_due_soon, invoice_due_today, invoice_past_due, invoice_payment_received, quote_send, statement_send, late_fee_applied. A missing key uses the default text
invoice_templatestringstandard · modern · kamu · bold · ledger · dotmatrix · registry · arica
brand_colourstringHex colour such as #2563eb used on documents; empty for the default
brand_colour_emailsbooleanApply the brand colour to emails as well
email_stylestringcard · minimal · letter · brand. Free accounts can only use minimal
hide_quote_statusbooleanHide the status line and the diagonal status mark on quotes (web, PDF and public link)
hide_quote_validitybooleanHide the "Valid until" line on quotes. The quote still expires on that date
include_assets_on_documentsbooleanShow item links and files in a Resources section on documents by default
attach_pdf_to_emailsbooleanAttach the PDF to client emails, including the ones Rebill sends for you
attach_pdf_to_whatsappbooleanInclude the PDF in WhatsApp messages
cc_on_all_emailsbooleanCopy the business email on every client email
auto_reminders_enabledbooleanSend invoice reminders automatically
reminder_schedulearrayDay offsets relative to the due date, from -30 to 90, up to 10 entries. Negative values are before the due date
invoice_reminder_hourinteger0 to 23, local hour reminders go out
reminder_whatsapp_enabledbooleanSend reminders over WhatsApp as well as email
recurring_invoice_generate_hourinteger0 to 23, local hour recurring invoices are generated
quote_auto_convertbooleanConvert accepted quotes to invoices automatically
quote_auto_convert_send_methodstringdraft · email · email_whatsapp. What happens to the converted invoice
quote_auto_convert_due_daysinteger1 to 90, days until the converted invoice is due
hide_quotesbooleanHide Quotes from the app menu
hide_recurring_invoicesbooleanHide Recurring invoices from the app menu
hide_reportsbooleanHide Reports from the app menu
hide_usersbooleanHide Users from the app menu
hide_expensesbooleanHide Expenses from the app menu
hide_bank_importbooleanHide Bank import from the app menu
hide_purchase_ordersbooleanHide Purchase orders from the app menu
module_picker_pendingbooleanWhether the first run module picker is still due (read only)
late_fee_enabledbooleanCharge late fees on overdue invoices. Premium only
late_fee_typestringpercentage · fixed
late_fee_amountintegerPercentage in basis points when the type is percentage (250 = 2.5%)
late_fee_amountsobjectCurrency code to fee in cents when the type is fixed, e.g. {"ZAR": 5000}
late_fee_grace_daysinteger0 to 30 days after the due date before a fee applies
late_fee_frequencystringonce · monthly
late_fee_cap_amountsobjectCurrency code to maximum fee in cents when the type is percentage
apply_credits_to_invoicesbooleanSettle new invoices from client credit automatically
apply_credits_to_recurring_invoicesbooleanSettle generated recurring invoices from client credit automatically
next_invoice_numberintegerNext number in the account invoice sequence
next_quote_numberintegerNext number in the account quote sequence
next_purchase_order_numberintegerNext number in the purchase order sequence (read only)
client_code_autobooleanAssign client codes automatically on create and import
client_code_prefixstringPrefix for automatic codes: letters, digits and dashes, up to 10 characters. Empty means C
next_client_code_numberintegerNext automatic client code number; codes are the prefix plus four digits, e.g. C0042
subscription_statusstringfree · active · canceled · exempt (read only)
is_agencybooleanWhether this is an agency parent account (read only)
agency_sub_account_limitintegerSub accounts an agency may create (read only)
parent_account_idstringParent account for agency sub accounts; omitted otherwise (read only)
whatsapp_credits_freeintegerFree WhatsApp credits left (read only)
whatsapp_credits_paidintegerPaid WhatsApp credits left (read only)
whatsapp_credit_reminderintegerCredit balance that triggers the low credit reminder (read only)
supported_payment_providersarrayPayment providers available for the account country (read only)
storage_used_bytesintegerBytes used by item files (read only)
has_logobooleanWhether a logo is uploaded (read only)
api_keystringYour secret API key (read only)

Update your account

PUT /account

Replaces your account settings with the body you send. Read the account first, change the fields you need and send the result back: many fields are cleared or reset to false when they are missing from the request.

  • Cleared when omitted: business_phone, business_website, business_address, vat_number, invoice_notes, quote_notes, invoice_bank_details, invoice_payment_terms, terms, custom_fields, email_messages, reminder_schedule.
  • Reset to false when omitted: every boolean except multi_currency, marketing_emails and brand_colour_emails.
  • Unchanged when omitted: everything else, including the tax settings, timezone, hours, template, colours, late fee values, the next numbers and the client code prefix.
FieldRequiredTypeDescription
business_nameYesstringTrading name
business_emailYesstringValid email address; stored lower case
business_phoneNostringE.164 format; cleared when omitted
business_websiteNostringFull URL; cleared when omitted
business_addressNoobjectSame shape as the account object; cleared when omitted
vat_numberNostringCleared when omitted
tax_labelNostringUp to 30 characters; empty restores the country default
tax_rateNointeger0 to 10000 basis points
tax_number_labelNostringUp to 40 characters
vat_basisNostringaccrual · cash; empty restores accrual
vat_categoryNostringA · B; empty restores A
tax_entity_typeNostringindividual · company · company_sbc; empty clears
fiscal_year_start_monthNointeger1 to 12
timezoneNostringIANA zone name; empty restores South African time
multi_currencyNobooleanPremium only; forced to false on the free plan
marketing_emailsNobooleanProduct news opt in
invoice_notesNostringCleared when omitted
quote_notesNostringCleared when omitted
invoice_bank_detailsNostringCleared when omitted
invoice_payment_termsNostringUp to 100 characters; cleared when omitted
termsNostringMarkdown; cleared when omitted
terms_on_pdfNobooleanFalse when omitted
hide_quote_statusNobooleanFalse when omitted (status shown)
hide_quote_validityNobooleanFalse when omitted (validity date shown)
include_assets_on_documentsNobooleanFalse when omitted
attach_pdf_to_emailsNobooleanFalse when omitted
attach_pdf_to_whatsappNobooleanFalse when omitted
custom_fieldsNoobjectLabel to value map; replaces the stored map, cleared when omitted
email_messagesNoobjectKey to text map; replaces the stored map, cleared when omitted
cc_on_all_emailsNobooleanFalse when omitted
auto_reminders_enabledNobooleanFalse when omitted
reminder_scheduleNoarrayUp to 10 integers from -30 to 90; cleared when omitted
invoice_reminder_hourNointeger0 to 23
reminder_whatsapp_enabledNobooleanFalse when omitted
recurring_invoice_generate_hourNointeger0 to 23
quote_auto_convertNobooleanFalse when omitted
quote_auto_convert_send_methodNostringdraft · email · email_whatsapp
quote_auto_convert_due_daysNointeger1 to 90
invoice_templateNostringstandard · modern · kamu · bold · ledger · dotmatrix · registry · arica
brand_colourNostringHex colour with a leading #; empty clears
brand_colour_emailsNobooleanUnchanged when omitted
email_styleNostringcard · minimal · letter · brand; empty restores minimal. Anything other than minimal on the free plan returns 402
hide_quotesNobooleanFalse when omitted
hide_recurring_invoicesNobooleanFalse when omitted
hide_reportsNobooleanFalse when omitted
hide_usersNobooleanFalse when omitted
hide_expensesNobooleanFalse when omitted
hide_bank_importNobooleanFalse when omitted
hide_purchase_ordersNobooleanFalse when omitted
late_fee_enabledNobooleanFalse when omitted. True on the free plan returns 402
late_fee_typeNostringpercentage · fixed
late_fee_amountNointegerBasis points; at least 1 when late fees are on and the type is percentage
late_fee_amountsNoobjectCurrency code to cents, fixed type
late_fee_grace_daysNointeger0 to 30
late_fee_frequencyNostringonce · monthly
late_fee_cap_amountsNoobjectCurrency code to cents, percentage type
apply_credits_to_invoicesNobooleanFalse when omitted
apply_credits_to_recurring_invoicesNobooleanFalse when omitted
next_invoice_numberNointegerMinimum 1; may only be raised, never lowered
next_quote_numberNointegerMinimum 1; may only be raised, never lowered
client_code_autoNobooleanFalse when omitted
client_code_prefixNostringLetters, digits and dashes, up to 10 characters, stored upper case; empty means C
next_client_code_numberNointegerMinimum 1; may only be raised, never lowered
curl -X PUT https://api.rebill.co.za/account \
  -H "Authorization: Bearer sk_your_secret_key" \
  -H "Content-Type: application/json" \
  -d '{
    "business_name": "Acme Corp Pty Ltd",
    "business_email": "[email protected]",
    "business_phone": "+27821234567",
    "vat_number": "4123456789",
    "invoice_notes": "Thank you for your business.",
    "hide_quote_status": true,
    "hide_quote_validity": false,
    "client_code_auto": true,
    "client_code_prefix": "C",
    "next_client_code_number": 118
  }'

Response (200 OK): the saved account in the same shape as GET /me.

Validation problems return 400 Bad Request with the field name and reason, for example a next_invoice_number lower than the current one, a timezone that is not a known IANA zone, or a client_code_prefix with other characters. Premium only settings on the free plan return 402 Payment Required.

Booleans default to false

Most true or false settings are plain booleans in the request: leaving one out switches it off. Menu visibility, quote layout, PDF attachments, reminders, auto convert, late fees, credit application and automatic client codes all work this way. Start from the GET /me response so nothing is switched off by accident.

Was this article helpful?

Still need help?

Our support team is happy to help you get the most out of Rebill.

Contact support