# Activate the given account.
Source: https://docs.bigcapital.app/api-reference/accounts/activate-the-given-account
api-reference/openapi.json post /api/accounts/{id}/activate
# Create an account
Source: https://docs.bigcapital.app/api-reference/accounts/create-an-account
api-reference/openapi.json post /api/accounts
# Delete the given account.
Source: https://docs.bigcapital.app/api-reference/accounts/delete-the-given-account
api-reference/openapi.json delete /api/accounts/{id}
# Deletes multiple accounts in bulk.
Source: https://docs.bigcapital.app/api-reference/accounts/deletes-multiple-accounts-in-bulk
api-reference/openapi.json post /api/accounts/bulk-delete
# Edit the given account.
Source: https://docs.bigcapital.app/api-reference/accounts/edit-the-given-account
api-reference/openapi.json put /api/accounts/{id}
# Inactivate the given account.
Source: https://docs.bigcapital.app/api-reference/accounts/inactivate-the-given-account
api-reference/openapi.json post /api/accounts/{id}/inactivate
# Retrieves the account details.
Source: https://docs.bigcapital.app/api-reference/accounts/retrieves-the-account-details
api-reference/openapi.json get /api/accounts/{id}
# Retrieves the account transactions.
Source: https://docs.bigcapital.app/api-reference/accounts/retrieves-the-account-transactions
api-reference/openapi.json get /api/accounts/transactions
# Retrieves the account types.
Source: https://docs.bigcapital.app/api-reference/accounts/retrieves-the-account-types
api-reference/openapi.json get /api/accounts/types
# Retrieves the accounts.
Source: https://docs.bigcapital.app/api-reference/accounts/retrieves-the-accounts
api-reference/openapi.json get /api/accounts
# Validates which accounts can be deleted and returns counts of deletable and non-deletable accounts.
Source: https://docs.bigcapital.app/api-reference/accounts/validates-which-accounts-can-be-deleted-and-returns-counts-of-deletable-and-non-deletable-accounts
api-reference/openapi.json post /api/accounts/validate-bulk-delete
# Generate a new API key
Source: https://docs.bigcapital.app/api-reference/api-keys/generate-a-new-api-key
api-reference/openapi.json post /api/api-keys/generate
# Get all API keys for the current tenant
Source: https://docs.bigcapital.app/api-reference/api-keys/get-all-api-keys-for-the-current-tenant
api-reference/openapi.json get /api/api-keys
# Revoke an API key
Source: https://docs.bigcapital.app/api-reference/api-keys/revoke-an-api-key
api-reference/openapi.json put /api/api-keys/{id}/revoke
# Delete attachment by ID
Source: https://docs.bigcapital.app/api-reference/attachments/delete-attachment-by-id
api-reference/openapi.json delete /api/attachments/{id}
# Get attachment by ID
Source: https://docs.bigcapital.app/api-reference/attachments/get-attachment-by-id
api-reference/openapi.json get /api/attachments/{id}
# Get presigned URL for attachment
Source: https://docs.bigcapital.app/api-reference/attachments/get-presigned-url-for-attachment
api-reference/openapi.json get /api/attachments/{id}/presigned-url
# Link attachment to a model
Source: https://docs.bigcapital.app/api-reference/attachments/link-attachment-to-a-model
api-reference/openapi.json post /api/attachments/{id}/link
# Unlink attachment from a model
Source: https://docs.bigcapital.app/api-reference/attachments/unlink-attachment-from-a-model
api-reference/openapi.json post /api/attachments/{id}/unlink
# Upload attachment to S3
Source: https://docs.bigcapital.app/api-reference/attachments/upload-attachment-to-s3
api-reference/openapi.json post /api/attachments
# Confirm user signup
Source: https://docs.bigcapital.app/api-reference/auth/confirm-user-signup
api-reference/openapi.json post /api/auth/signup/verify
# Get auth metadata (e.g. signup disabled)
Source: https://docs.bigcapital.app/api-reference/auth/get-auth-metadata-eg-signup-disabled
api-reference/openapi.json get /api/auth/meta
# Resend the signup confirmation message
Source: https://docs.bigcapital.app/api-reference/auth/resend-the-signup-confirmation-message
api-reference/openapi.json post /api/auth/signup/verify/resend
# Reset password using token
Source: https://docs.bigcapital.app/api-reference/auth/reset-password-using-token
api-reference/openapi.json post /api/auth/reset_password/{token}
# Retrieve the authenticated account
Source: https://docs.bigcapital.app/api-reference/auth/retrieve-the-authenticated-account
api-reference/openapi.json get /api/auth/account
# Send reset password email
Source: https://docs.bigcapital.app/api-reference/auth/send-reset-password-email
api-reference/openapi.json post /api/auth/send_reset_password
# Sign in a user
Source: https://docs.bigcapital.app/api-reference/auth/sign-in-a-user
api-reference/openapi.json post /api/auth/signin
# Sign up a new user
Source: https://docs.bigcapital.app/api-reference/auth/sign-up-a-new-user
api-reference/openapi.json post /api/auth/signup
# Disconnect the bank connection of the given bank account.
Source: https://docs.bigcapital.app/api-reference/bank-accounts/disconnect-the-bank-connection-of-the-given-bank-account
api-reference/openapi.json post /api/banking/accounts/{id}/disconnect
# Pause transactions syncing of the given bank account.
Source: https://docs.bigcapital.app/api-reference/bank-accounts/pause-transactions-syncing-of-the-given-bank-account
api-reference/openapi.json post /api/banking/accounts/{id}/pause
# Refresh the bank account transactions.
Source: https://docs.bigcapital.app/api-reference/bank-accounts/refresh-the-bank-account-transactions
api-reference/openapi.json post /api/banking/accounts/{id}/refresh
# Resume transactions syncing of the given bank account.
Source: https://docs.bigcapital.app/api-reference/bank-accounts/resume-transactions-syncing-of-the-given-bank-account
api-reference/openapi.json post /api/banking/accounts/{id}/resume
# Retrieve the bank account summary.
Source: https://docs.bigcapital.app/api-reference/bank-accounts/retrieve-the-bank-account-summary
api-reference/openapi.json get /api/banking/accounts/{bankAccountId}/summary
# Retrieve the bank accounts.
Source: https://docs.bigcapital.app/api-reference/bank-accounts/retrieve-the-bank-accounts
api-reference/openapi.json get /api/banking/accounts
# Create a new bank rule.
Source: https://docs.bigcapital.app/api-reference/bank-rules/create-a-new-bank-rule
api-reference/openapi.json post /api/banking/rules
# Delete the given bank rule.
Source: https://docs.bigcapital.app/api-reference/bank-rules/delete-the-given-bank-rule
api-reference/openapi.json delete /api/banking/rules/{id}
# Edit the given bank rule.
Source: https://docs.bigcapital.app/api-reference/bank-rules/edit-the-given-bank-rule
api-reference/openapi.json put /api/banking/rules/{id}
# Retrieves the bank rule details.
Source: https://docs.bigcapital.app/api-reference/bank-rules/retrieves-the-bank-rule-details
api-reference/openapi.json get /api/banking/rules/{id}
# Retrieves the bank rules.
Source: https://docs.bigcapital.app/api-reference/bank-rules/retrieves-the-bank-rules
api-reference/openapi.json get /api/banking/rules
# Categorize bank transactions.
Source: https://docs.bigcapital.app/api-reference/banking-categorization/categorize-bank-transactions
api-reference/openapi.json post /api/banking/categorize
# Uncategorize a bank transaction.
Source: https://docs.bigcapital.app/api-reference/banking-categorization/uncategorize-a-bank-transaction
api-reference/openapi.json delete /api/banking/categorize/{id}
# Uncategorize bank transactions in bulk.
Source: https://docs.bigcapital.app/api-reference/banking-categorization/uncategorize-bank-transactions-in-bulk
api-reference/openapi.json delete /api/banking/categorize/bulk
# Get pending bank account transactions
Source: https://docs.bigcapital.app/api-reference/banking-pending-transactions/get-pending-bank-account-transactions
api-reference/openapi.json get /api/banking/pending
# Exchange Plaid access token
Source: https://docs.bigcapital.app/api-reference/banking-plaid/exchange-plaid-access-token
api-reference/openapi.json post /api/banking/plaid/exchange-token
# Get Plaid link token
Source: https://docs.bigcapital.app/api-reference/banking-plaid/get-plaid-link-token
api-reference/openapi.json post /api/banking/plaid/link-token
# Listen to Plaid webhooks
Source: https://docs.bigcapital.app/api-reference/banking-plaid/listen-to-plaid-webhooks
api-reference/openapi.json post /api/banking/plaid/webhooks
# Get a list of recognized transactions
Source: https://docs.bigcapital.app/api-reference/banking-recognized-transactions/get-a-list-of-recognized-transactions
api-reference/openapi.json get /api/banking/recognized
# Get recognized transaction
Source: https://docs.bigcapital.app/api-reference/banking-recognized-transactions/get-recognized-transaction
api-reference/openapi.json get /api/banking/recognized/{recognizedTransactionId}
# Match the given uncategorized transaction.
Source: https://docs.bigcapital.app/api-reference/banking-transactions-matching/match-the-given-uncategorized-transaction
api-reference/openapi.json post /api/banking/matching/match
# Retrieves the matched transactions.
Source: https://docs.bigcapital.app/api-reference/banking-transactions-matching/retrieves-the-matched-transactions
api-reference/openapi.json get /api/banking/matching/matched
# Unmatch the given uncategorized transaction.
Source: https://docs.bigcapital.app/api-reference/banking-transactions-matching/unmatch-the-given-uncategorized-transaction
api-reference/openapi.json patch /api/banking/matching/unmatch/{uncategorizedTransactionId}
# Create a new bank transaction
Source: https://docs.bigcapital.app/api-reference/banking-transactions/create-a-new-bank-transaction
api-reference/openapi.json post /api/banking/transactions
# Delete a bank transaction
Source: https://docs.bigcapital.app/api-reference/banking-transactions/delete-a-bank-transaction
api-reference/openapi.json delete /api/banking/transactions/{id}
# Exclude the given bank transaction.
Source: https://docs.bigcapital.app/api-reference/banking-transactions/exclude-the-given-bank-transaction
api-reference/openapi.json put /api/banking/exclude/{id}
# Exclude the given bank transactions.
Source: https://docs.bigcapital.app/api-reference/banking-transactions/exclude-the-given-bank-transactions
api-reference/openapi.json put /api/banking/exclude/bulk
# Get a specific bank transaction by ID
Source: https://docs.bigcapital.app/api-reference/banking-transactions/get-a-specific-bank-transaction-by-id
api-reference/openapi.json get /api/banking/transactions/{id}
# Get bank account transactions
Source: https://docs.bigcapital.app/api-reference/banking-transactions/get-bank-account-transactions
api-reference/openapi.json get /api/banking/transactions
# Retrieves the excluded bank transactions.
Source: https://docs.bigcapital.app/api-reference/banking-transactions/retrieves-the-excluded-bank-transactions
api-reference/openapi.json get /api/banking/exclude
# Unexclude the given bank transaction.
Source: https://docs.bigcapital.app/api-reference/banking-transactions/unexclude-the-given-bank-transaction
api-reference/openapi.json delete /api/banking/exclude/{id}
# Unexclude the given bank transactions.
Source: https://docs.bigcapital.app/api-reference/banking-transactions/unexclude-the-given-bank-transactions
api-reference/openapi.json delete /api/banking/exclude/bulk
# Get a specific uncategorized transaction by ID
Source: https://docs.bigcapital.app/api-reference/banking-uncategorized-transactions/get-a-specific-uncategorized-transaction-by-id
api-reference/openapi.json get /api/banking/uncategorized/{uncategorizedTransactionId}
# Get autofill values for categorize transactions
Source: https://docs.bigcapital.app/api-reference/banking-uncategorized-transactions/get-autofill-values-for-categorize-transactions
api-reference/openapi.json get /api/banking/uncategorized/autofill
# Get uncategorized transactions for a specific bank account
Source: https://docs.bigcapital.app/api-reference/banking-uncategorized-transactions/get-uncategorized-transactions-for-a-specific-bank-account
api-reference/openapi.json get /api/banking/uncategorized/accounts/{accountId}
# Create a new bill payment.
Source: https://docs.bigcapital.app/api-reference/bill-payments/create-a-new-bill-payment
api-reference/openapi.json post /api/bill-payments
# Delete the given bill payment.
Source: https://docs.bigcapital.app/api-reference/bill-payments/delete-the-given-bill-payment
api-reference/openapi.json delete /api/bill-payments/{billPaymentId}
# Edit the given bill payment.
Source: https://docs.bigcapital.app/api-reference/bill-payments/edit-the-given-bill-payment
api-reference/openapi.json put /api/bill-payments/{billPaymentId}
# Retrieves the bill payment details.
Source: https://docs.bigcapital.app/api-reference/bill-payments/retrieves-the-bill-payment-details
api-reference/openapi.json get /api/bill-payments/{billPaymentId}
# Retrieves the bill payments list.
Source: https://docs.bigcapital.app/api-reference/bill-payments/retrieves-the-bill-payments-list
api-reference/openapi.json get /api/bill-payments
# Retrieves the bills of the given bill payment.
Source: https://docs.bigcapital.app/api-reference/bill-payments/retrieves-the-bills-of-the-given-bill-payment
api-reference/openapi.json get /api/bill-payments/{billPaymentId}/bills
# Retrieves the edit page of the given bill payment.
Source: https://docs.bigcapital.app/api-reference/bill-payments/retrieves-the-edit-page-of-the-given-bill-payment
api-reference/openapi.json get /api/bill-payments/{billPaymentId}/edit-page
# Retrieves the payable entries of the new page once vendor be selected.
Source: https://docs.bigcapital.app/api-reference/bill-payments/retrieves-the-payable-entries-of-the-new-page-once-vendor-be-selected
api-reference/openapi.json get /api/bill-payments/new-page/entries
# Create a new bill.
Source: https://docs.bigcapital.app/api-reference/bills/create-a-new-bill
api-reference/openapi.json post /api/bills
# Delete the given bill.
Source: https://docs.bigcapital.app/api-reference/bills/delete-the-given-bill
api-reference/openapi.json delete /api/bills/{id}
# Deletes multiple bills.
Source: https://docs.bigcapital.app/api-reference/bills/deletes-multiple-bills
api-reference/openapi.json post /api/bills/bulk-delete
# Edit the given bill.
Source: https://docs.bigcapital.app/api-reference/bills/edit-the-given-bill
api-reference/openapi.json put /api/bills/{id}
# Open the given bill.
Source: https://docs.bigcapital.app/api-reference/bills/open-the-given-bill
api-reference/openapi.json patch /api/bills/{id}/open
# Retrieve the specific bill associated payment transactions.
Source: https://docs.bigcapital.app/api-reference/bills/retrieve-the-specific-bill-associated-payment-transactions
api-reference/openapi.json get /api/bills/{id}/payment-transactions
# Retrieves the bill details.
Source: https://docs.bigcapital.app/api-reference/bills/retrieves-the-bill-details
api-reference/openapi.json get /api/bills/{id}
# Retrieves the bills.
Source: https://docs.bigcapital.app/api-reference/bills/retrieves-the-bills
api-reference/openapi.json get /api/bills
# Retrieves the due bills.
Source: https://docs.bigcapital.app/api-reference/bills/retrieves-the-due-bills
api-reference/openapi.json get /api/bills/due
# Validate which bills can be deleted and return the results.
Source: https://docs.bigcapital.app/api-reference/bills/validate-which-bills-can-be-deleted-and-return-the-results
api-reference/openapi.json post /api/bills/validate-bulk-delete
# Activate the branches feature.
Source: https://docs.bigcapital.app/api-reference/branches/activate-the-branches-feature
api-reference/openapi.json post /api/branches/activate
# Create a new branch.
Source: https://docs.bigcapital.app/api-reference/branches/create-a-new-branch
api-reference/openapi.json post /api/branches
# Delete the given branch.
Source: https://docs.bigcapital.app/api-reference/branches/delete-the-given-branch
api-reference/openapi.json delete /api/branches/{id}
# Edit the given branch.
Source: https://docs.bigcapital.app/api-reference/branches/edit-the-given-branch
api-reference/openapi.json put /api/branches/{id}
# Mark the given branch as primary.
Source: https://docs.bigcapital.app/api-reference/branches/mark-the-given-branch-as-primary
api-reference/openapi.json put /api/branches/{id}/mark-as-primary
# Retrieves the branch details.
Source: https://docs.bigcapital.app/api-reference/branches/retrieves-the-branch-details
api-reference/openapi.json get /api/branches/{id}
# Retrieves the branches.
Source: https://docs.bigcapital.app/api-reference/branches/retrieves-the-branches
api-reference/openapi.json get /api/branches
# Activate a contact
Source: https://docs.bigcapital.app/api-reference/contacts/activate-a-contact
api-reference/openapi.json patch /api/contacts/{id}/activate
# Get contact by ID (customer or vendor)
Source: https://docs.bigcapital.app/api-reference/contacts/get-contact-by-id-customer-or-vendor
api-reference/openapi.json get /api/contacts/{id}
# Get the auto-complete contacts
Source: https://docs.bigcapital.app/api-reference/contacts/get-the-auto-complete-contacts
api-reference/openapi.json get /api/contacts/auto-complete
# Inactivate a contact
Source: https://docs.bigcapital.app/api-reference/contacts/inactivate-a-contact
api-reference/openapi.json patch /api/contacts/{id}/inactivate
# Create a refund for the given credit note.
Source: https://docs.bigcapital.app/api-reference/credit-note-refunds/create-a-refund-for-the-given-credit-note
api-reference/openapi.json post /api/credit-notes/{creditNoteId}/refunds
# Delete a refund for the given credit note.
Source: https://docs.bigcapital.app/api-reference/credit-note-refunds/delete-a-refund-for-the-given-credit-note
api-reference/openapi.json delete /api/credit-notes/refunds/{refundCreditId}
# Retrieve the credit note graph.
Source: https://docs.bigcapital.app/api-reference/credit-note-refunds/retrieve-the-credit-note-graph
api-reference/openapi.json get /api/credit-notes/{creditNoteId}/refunds
# Applied credit note to invoices
Source: https://docs.bigcapital.app/api-reference/credit-notes-apply-invoice/applied-credit-note-to-invoices
api-reference/openapi.json get /api/credit-notes/{creditNoteId}/applied-invoices
# Apply credit note to invoices
Source: https://docs.bigcapital.app/api-reference/credit-notes-apply-invoice/apply-credit-note-to-invoices
api-reference/openapi.json post /api/credit-notes/{creditNoteId}/apply-invoices
# Delete applied credit note to invoice
Source: https://docs.bigcapital.app/api-reference/credit-notes-apply-invoice/delete-applied-credit-note-to-invoice
api-reference/openapi.json delete /api/credit-notes/applied-invoices/{applyCreditToInvoicesId}
# Get credit note associated invoices to apply
Source: https://docs.bigcapital.app/api-reference/credit-notes-apply-invoice/get-credit-note-associated-invoices-to-apply
api-reference/openapi.json get /api/credit-notes/{creditNoteId}/apply-invoices
# Create a new credit note
Source: https://docs.bigcapital.app/api-reference/credit-notes/create-a-new-credit-note
api-reference/openapi.json post /api/credit-notes
# Delete a credit note
Source: https://docs.bigcapital.app/api-reference/credit-notes/delete-a-credit-note
api-reference/openapi.json delete /api/credit-notes/{id}
# Deletes multiple credit notes.
Source: https://docs.bigcapital.app/api-reference/credit-notes/deletes-multiple-credit-notes
api-reference/openapi.json post /api/credit-notes/bulk-delete
# Get a specific credit note by ID
Source: https://docs.bigcapital.app/api-reference/credit-notes/get-a-specific-credit-note-by-id
api-reference/openapi.json get /api/credit-notes/{id}
# Get all credit notes
Source: https://docs.bigcapital.app/api-reference/credit-notes/get-all-credit-notes
api-reference/openapi.json get /api/credit-notes
# Get credit note state
Source: https://docs.bigcapital.app/api-reference/credit-notes/get-credit-note-state
api-reference/openapi.json get /api/credit-notes/state
# Open a credit note
Source: https://docs.bigcapital.app/api-reference/credit-notes/open-a-credit-note
api-reference/openapi.json put /api/credit-notes/{id}/open
# Update a credit note
Source: https://docs.bigcapital.app/api-reference/credit-notes/update-a-credit-note
api-reference/openapi.json put /api/credit-notes/{id}
# Validates which credit notes can be deleted and returns the results.
Source: https://docs.bigcapital.app/api-reference/credit-notes/validates-which-credit-notes-can-be-deleted-and-returns-the-results
api-reference/openapi.json post /api/credit-notes/validate-bulk-delete
# Create a new currency
Source: https://docs.bigcapital.app/api-reference/currencies/create-a-new-currency
api-reference/openapi.json post /api/currencies
# Delete a currency by code
Source: https://docs.bigcapital.app/api-reference/currencies/delete-a-currency-by-code
api-reference/openapi.json delete /api/currencies/{code}
# Edit an existing currency
Source: https://docs.bigcapital.app/api-reference/currencies/edit-an-existing-currency
api-reference/openapi.json put /api/currencies/{id}
# Get a currency by code
Source: https://docs.bigcapital.app/api-reference/currencies/get-a-currency-by-code
api-reference/openapi.json get /api/currencies/{currencyCode}
# Get all currencies
Source: https://docs.bigcapital.app/api-reference/currencies/get-all-currencies
api-reference/openapi.json get /api/currencies
# Create a new customer.
Source: https://docs.bigcapital.app/api-reference/customers/create-a-new-customer
api-reference/openapi.json post /api/customers
# Delete the given customer.
Source: https://docs.bigcapital.app/api-reference/customers/delete-the-given-customer
api-reference/openapi.json delete /api/customers/{id}
# Deletes multiple customers in bulk.
Source: https://docs.bigcapital.app/api-reference/customers/deletes-multiple-customers-in-bulk
api-reference/openapi.json post /api/customers/bulk-delete
# Edit the given customer.
Source: https://docs.bigcapital.app/api-reference/customers/edit-the-given-customer
api-reference/openapi.json put /api/customers/{id}
# Edit the opening balance of the given customer.
Source: https://docs.bigcapital.app/api-reference/customers/edit-the-opening-balance-of-the-given-customer
api-reference/openapi.json put /api/customers/{id}/opening-balance
# Retrieves the customer details.
Source: https://docs.bigcapital.app/api-reference/customers/retrieves-the-customer-details
api-reference/openapi.json get /api/customers/{id}
# Retrieves the customers paginated list.
Source: https://docs.bigcapital.app/api-reference/customers/retrieves-the-customers-paginated-list
api-reference/openapi.json get /api/customers
# Validates which customers can be deleted and returns counts of deletable and non-deletable customers.
Source: https://docs.bigcapital.app/api-reference/customers/validates-which-customers-can-be-deleted-and-returns-counts-of-deletable-and-non-deletable-customers
api-reference/openapi.json post /api/customers/validate-bulk-delete
# Get dashboard boot metadata
Source: https://docs.bigcapital.app/api-reference/dashboard/get-dashboard-boot-metadata
api-reference/openapi.json get /api/dashboard/boot
# Create a new expense transaction.
Source: https://docs.bigcapital.app/api-reference/expenses/create-a-new-expense-transaction
api-reference/openapi.json post /api/expenses
# Delete the given expense transaction.
Source: https://docs.bigcapital.app/api-reference/expenses/delete-the-given-expense-transaction
api-reference/openapi.json delete /api/expenses/{id}
# Deletes multiple expenses.
Source: https://docs.bigcapital.app/api-reference/expenses/deletes-multiple-expenses
api-reference/openapi.json post /api/expenses/bulk-delete
# Edit the given expense transaction.
Source: https://docs.bigcapital.app/api-reference/expenses/edit-the-given-expense-transaction
api-reference/openapi.json put /api/expenses/{id}
# Get the expense transaction details.
Source: https://docs.bigcapital.app/api-reference/expenses/get-the-expense-transaction-details
api-reference/openapi.json get /api/expenses/{id}
# Get the expense transactions.
Source: https://docs.bigcapital.app/api-reference/expenses/get-the-expense-transactions
api-reference/openapi.json get /api/expenses
# Publish the given expense transaction.
Source: https://docs.bigcapital.app/api-reference/expenses/publish-the-given-expense-transaction
api-reference/openapi.json post /api/expenses/{id}/publish
# Validate which expenses can be deleted and return the results.
Source: https://docs.bigcapital.app/api-reference/expenses/validate-which-expenses-can-be-deleted-and-return-the-results
api-reference/openapi.json post /api/expenses/validate-bulk-delete
# Retrieves exported the given resource.
Source: https://docs.bigcapital.app/api-reference/export/retrieves-exported-the-given-resource
api-reference/openapi.json get /api/export
# Get apisystem db
Source: https://docs.bigcapital.app/api-reference/get-apisystem_db
api-reference/openapi.json get /api/system_db
# Get import metadata
Source: https://docs.bigcapital.app/api-reference/import/get-import-metadata
api-reference/openapi.json get /api/import/{import_id}
# Get import sample
Source: https://docs.bigcapital.app/api-reference/import/get-import-sample
api-reference/openapi.json get /api/import/sample
# Map import columns
Source: https://docs.bigcapital.app/api-reference/import/map-import-columns
api-reference/openapi.json post /api/import/{import_id}/mapping
# Preview import data
Source: https://docs.bigcapital.app/api-reference/import/preview-import-data
api-reference/openapi.json get /api/import/{import_id}/preview
# Process import
Source: https://docs.bigcapital.app/api-reference/import/process-import
api-reference/openapi.json post /api/import/{import_id}/import
# Upload import file
Source: https://docs.bigcapital.app/api-reference/import/upload-import-file
api-reference/openapi.json post /api/import/file
# Introduction
Source: https://docs.bigcapital.app/api-reference/introduction
General concepts, response codes, and authentication strategies for the Bigcapital API.
This section introduces the Bigcapital API, including authentication, response
codes, and rate limits.
## Base URL
The Bigcapital API is built on **REST** principles. We enforce **HTTPS** in every request to improve data security, integrity, and privacy. The API does not support **HTTP**.
All requests contain the following base URL:
```
https://api.bigcapital.com
```
## Authentication
To authenticate, add an *Authorization* header with the contents of the header being `Bearer bc_xxxxxxxxx` where `bc_xxxxxxxxx` is your API Key.
```
Authorization: Bearer bc_xxxxxxxxx
```
## Response codes
Bigcapital uses standard HTTP codes to indicate the success or failure of your requests.
| Status | Description |
| ------ | ------------------------------------------- |
| 200 | Successful request. |
| 400 | Check that the parameters were correct. |
| 401 | The API key used was missing. |
| 403 | The API key used was invalid. |
| 404 | The resource was not found. |
| 429 | The rate limit was exceeded. |
| 5xx | Indicates an error with Bigcapital servers. |
## Rate limit
The default maximum rate limit is **2 requests per second**. This number can be increased for trusted senders by request. After that, you'll hit the rate limit and receive a `429` response error code.
# Create a quick inventory adjustment.
Source: https://docs.bigcapital.app/api-reference/inventory-adjustments/create-a-quick-inventory-adjustment
api-reference/openapi.json post /api/inventory-adjustments/quick
# Delete the given inventory adjustment.
Source: https://docs.bigcapital.app/api-reference/inventory-adjustments/delete-the-given-inventory-adjustment
api-reference/openapi.json delete /api/inventory-adjustments/{id}
# Publish the given inventory adjustment.
Source: https://docs.bigcapital.app/api-reference/inventory-adjustments/publish-the-given-inventory-adjustment
api-reference/openapi.json put /api/inventory-adjustments/{id}/publish
# Retrieves the inventory adjustment details.
Source: https://docs.bigcapital.app/api-reference/inventory-adjustments/retrieves-the-inventory-adjustment-details
api-reference/openapi.json get /api/inventory-adjustments/{id}
# Retrieves the inventory adjustments.
Source: https://docs.bigcapital.app/api-reference/inventory-adjustments/retrieves-the-inventory-adjustments
api-reference/openapi.json get /api/inventory-adjustments
# Get items inventory valuation list
Source: https://docs.bigcapital.app/api-reference/inventory-cost/get-items-inventory-valuation-list
api-reference/openapi.json get /api/inventory-cost/items
# Create a new item category.
Source: https://docs.bigcapital.app/api-reference/item-categories/create-a-new-item-category
api-reference/openapi.json post /api/item-categories
# Delete the given item category.
Source: https://docs.bigcapital.app/api-reference/item-categories/delete-the-given-item-category
api-reference/openapi.json delete /api/item-categories/{id}
# Edit the given item category.
Source: https://docs.bigcapital.app/api-reference/item-categories/edit-the-given-item-category
api-reference/openapi.json put /api/item-categories/{id}
# Retrieves the item categories.
Source: https://docs.bigcapital.app/api-reference/item-categories/retrieves-the-item-categories
api-reference/openapi.json get /api/item-categories
# Retrieves the item category details.
Source: https://docs.bigcapital.app/api-reference/item-categories/retrieves-the-item-category-details
api-reference/openapi.json get /api/item-categories/{id}
# Activate the given item (product or service).
Source: https://docs.bigcapital.app/api-reference/items/activate-the-given-item-product-or-service
api-reference/openapi.json patch /api/items/{id}/activate
# Create a new item (product or service).
Source: https://docs.bigcapital.app/api-reference/items/create-a-new-item-product-or-service
api-reference/openapi.json post /api/items
# Delete the given item (product or service).
Source: https://docs.bigcapital.app/api-reference/items/delete-the-given-item-product-or-service
api-reference/openapi.json delete /api/items/{id}
# Deletes multiple items in bulk.
Source: https://docs.bigcapital.app/api-reference/items/deletes-multiple-items-in-bulk
api-reference/openapi.json post /api/items/bulk-delete
# Edit the given item (product or service).
Source: https://docs.bigcapital.app/api-reference/items/edit-the-given-item-product-or-service
api-reference/openapi.json put /api/items/{id}
# Get the given item (product or service).
Source: https://docs.bigcapital.app/api-reference/items/get-the-given-item-product-or-service
api-reference/openapi.json get /api/items/{id}
# Inactivate the given item (product or service).
Source: https://docs.bigcapital.app/api-reference/items/inactivate-the-given-item-product-or-service
api-reference/openapi.json patch /api/items/{id}/inactivate
# Retrieves the item associated bills transactions.
Source: https://docs.bigcapital.app/api-reference/items/retrieves-the-item-associated-bills-transactions
api-reference/openapi.json get /api/items/{id}/bills
# Retrieves the item associated estimates transactions.
Source: https://docs.bigcapital.app/api-reference/items/retrieves-the-item-associated-estimates-transactions
api-reference/openapi.json get /api/items/{id}/estimates
# Retrieves the item associated invoices transactions.
Source: https://docs.bigcapital.app/api-reference/items/retrieves-the-item-associated-invoices-transactions
api-reference/openapi.json get /api/items/{id}/invoices
# Retrieves the item associated receipts transactions.
Source: https://docs.bigcapital.app/api-reference/items/retrieves-the-item-associated-receipts-transactions
api-reference/openapi.json get /api/items/{id}/receipts
# Retrieves the item list.
Source: https://docs.bigcapital.app/api-reference/items/retrieves-the-item-list
api-reference/openapi.json get /api/items
# Validates which items can be deleted and returns counts of deletable and non-deletable items.
Source: https://docs.bigcapital.app/api-reference/items/validates-which-items-can-be-deleted-and-returns-counts-of-deletable-and-non-deletable-items
api-reference/openapi.json post /api/items/validate-bulk-delete
# Allocate landed cost to bill items
Source: https://docs.bigcapital.app/api-reference/landed-cost/allocate-landed-cost-to-bill-items
api-reference/openapi.json post /api/landed-cost/bills/{billId}/allocate
# Delete allocated landed cost
Source: https://docs.bigcapital.app/api-reference/landed-cost/delete-allocated-landed-cost
api-reference/openapi.json delete /api/landed-cost/{allocatedLandedCostId}
# Get bill landed cost transactions
Source: https://docs.bigcapital.app/api-reference/landed-cost/get-bill-landed-cost-transactions
api-reference/openapi.json get /api/landed-cost/bills/{billId}/transactions
# Get landed cost transactions
Source: https://docs.bigcapital.app/api-reference/landed-cost/get-landed-cost-transactions
api-reference/openapi.json get /api/landed-cost/transactions
# Create a new manual journal.
Source: https://docs.bigcapital.app/api-reference/manual-journals/create-a-new-manual-journal
api-reference/openapi.json post /api/manual-journals
# Delete the given manual journal.
Source: https://docs.bigcapital.app/api-reference/manual-journals/delete-the-given-manual-journal
api-reference/openapi.json delete /api/manual-journals/{id}
# Deletes multiple manual journals.
Source: https://docs.bigcapital.app/api-reference/manual-journals/deletes-multiple-manual-journals
api-reference/openapi.json post /api/manual-journals/bulk-delete
# Edit the given manual journal.
Source: https://docs.bigcapital.app/api-reference/manual-journals/edit-the-given-manual-journal
api-reference/openapi.json put /api/manual-journals/{id}
# Publish the given manual journal.
Source: https://docs.bigcapital.app/api-reference/manual-journals/publish-the-given-manual-journal
api-reference/openapi.json patch /api/manual-journals/{id}/publish
# Retrieves the manual journal details.
Source: https://docs.bigcapital.app/api-reference/manual-journals/retrieves-the-manual-journal-details
api-reference/openapi.json get /api/manual-journals/{id}
# Retrieves the manual journals paginated list.
Source: https://docs.bigcapital.app/api-reference/manual-journals/retrieves-the-manual-journals-paginated-list
api-reference/openapi.json get /api/manual-journals
# Validate which manual journals can be deleted and return the results.
Source: https://docs.bigcapital.app/api-reference/manual-journals/validate-which-manual-journals-can-be-deleted-and-return-the-results
api-reference/openapi.json post /api/manual-journals/validate-bulk-delete
# Get apidate formats
Source: https://docs.bigcapital.app/api-reference/misc/get-apidate-formats
api-reference/openapi.json get /api/date-formats
# Build organization database
Source: https://docs.bigcapital.app/api-reference/organization/build-organization-database
api-reference/openapi.json post /api/organization/build
# Get apiorganizationbase currency mutate
Source: https://docs.bigcapital.app/api-reference/organization/get-apiorganizationbase-currency-mutate
api-reference/openapi.json get /api/organization/base-currency-mutate
# Get current organization
Source: https://docs.bigcapital.app/api-reference/organization/get-current-organization
api-reference/openapi.json get /api/organization/current
# Gets the organization build job details
Source: https://docs.bigcapital.app/api-reference/organization/gets-the-organization-build-job-details
api-reference/openapi.json get /api/organization/build/{buildJobId}
# Update organization information
Source: https://docs.bigcapital.app/api-reference/organization/update-organization-information
api-reference/openapi.json put /api/organization
# Create Stripe checkout session
Source: https://docs.bigcapital.app/api-reference/payment-links/create-stripe-checkout-session
api-reference/openapi.json post /api/payment-links/{paymentLinkId}/stripe_checkout_session
Creates a Stripe checkout session for an invoice payment link
# Get payment link invoice PDF
Source: https://docs.bigcapital.app/api-reference/payment-links/get-payment-link-invoice-pdf
api-reference/openapi.json get /api/payment-links/{paymentLinkId}/invoice/pdf
Retrieves the PDF of the invoice associated with a payment link
# Get payment link public metadata
Source: https://docs.bigcapital.app/api-reference/payment-links/get-payment-link-public-metadata
api-reference/openapi.json get /api/payment-links/{paymentLinkId}/invoice
Retrieves public metadata for an invoice payment link
# Delete apipayment services
Source: https://docs.bigcapital.app/api-reference/payment-services/delete-apipayment-services
api-reference/openapi.json delete /api/payment-services/{paymentMethodId}
# Get apipayment services
Source: https://docs.bigcapital.app/api-reference/payment-services/get-apipayment-services
api-reference/openapi.json get /api/payment-services
# Get apipayment services 1
Source: https://docs.bigcapital.app/api-reference/payment-services/get-apipayment-services-1
api-reference/openapi.json get /api/payment-services/{paymentServiceId}
# Get apipayment servicesstate
Source: https://docs.bigcapital.app/api-reference/payment-services/get-apipayment-servicesstate
api-reference/openapi.json get /api/payment-services/state
# Post apipayment services
Source: https://docs.bigcapital.app/api-reference/payment-services/post-apipayment-services
api-reference/openapi.json post /api/payment-services/{paymentMethodId}
# Create a new payment received.
Source: https://docs.bigcapital.app/api-reference/payments-received/create-a-new-payment-received
api-reference/openapi.json post /api/payments-received
# Delete the given payment received.
Source: https://docs.bigcapital.app/api-reference/payments-received/delete-the-given-payment-received
api-reference/openapi.json delete /api/payments-received/{id}
# Deletes multiple payments received.
Source: https://docs.bigcapital.app/api-reference/payments-received/deletes-multiple-payments-received
api-reference/openapi.json post /api/payments-received/bulk-delete
# Edit the given payment received.
Source: https://docs.bigcapital.app/api-reference/payments-received/edit-the-given-payment-received
api-reference/openapi.json put /api/payments-received/{id}
# Get apipayments received edit page
Source: https://docs.bigcapital.app/api-reference/payments-received/get-apipayments-received-edit-page
api-reference/openapi.json get /api/payments-received/{id}/edit-page
# Get apipayments received mail
Source: https://docs.bigcapital.app/api-reference/payments-received/get-apipayments-received-mail
api-reference/openapi.json get /api/payments-received/{id}/mail
# Post apipayments received mail
Source: https://docs.bigcapital.app/api-reference/payments-received/post-apipayments-received-mail
api-reference/openapi.json post /api/payments-received/{id}/mail
# Retrieves the payment received details.
Source: https://docs.bigcapital.app/api-reference/payments-received/retrieves-the-payment-received-details
api-reference/openapi.json get /api/payments-received/{id}
# Retrieves the payment received invoices.
Source: https://docs.bigcapital.app/api-reference/payments-received/retrieves-the-payment-received-invoices
api-reference/openapi.json get /api/payments-received/{id}/invoices
# Retrieves the payment received list.
Source: https://docs.bigcapital.app/api-reference/payments-received/retrieves-the-payment-received-list
api-reference/openapi.json get /api/payments-received
# Retrieves the payment received state.
Source: https://docs.bigcapital.app/api-reference/payments-received/retrieves-the-payment-received-state
api-reference/openapi.json get /api/payments-received/state
# Validates which payments received can be deleted and returns the results.
Source: https://docs.bigcapital.app/api-reference/payments-received/validates-which-payments-received-can-be-deleted-and-returns-the-results
api-reference/openapi.json post /api/payments-received/validate-bulk-delete
# Assign the given PDF template as default.
Source: https://docs.bigcapital.app/api-reference/pdf-templates/assign-the-given-pdf-template-as-default
api-reference/openapi.json put /api/pdf-templates/{id}/assign-default
# Create a new PDF template.
Source: https://docs.bigcapital.app/api-reference/pdf-templates/create-a-new-pdf-template
api-reference/openapi.json post /api/pdf-templates
# Delete the given PDF template.
Source: https://docs.bigcapital.app/api-reference/pdf-templates/delete-the-given-pdf-template
api-reference/openapi.json delete /api/pdf-templates/{id}
# Edit the given PDF template.
Source: https://docs.bigcapital.app/api-reference/pdf-templates/edit-the-given-pdf-template
api-reference/openapi.json put /api/pdf-templates/{id}
# Retrieves the PDF template branding state.
Source: https://docs.bigcapital.app/api-reference/pdf-templates/retrieves-the-pdf-template-branding-state
api-reference/openapi.json get /api/pdf-templates/state
# Retrieves the PDF template details.
Source: https://docs.bigcapital.app/api-reference/pdf-templates/retrieves-the-pdf-template-details
api-reference/openapi.json get /api/pdf-templates/{id}
# Retrieves the PDF templates.
Source: https://docs.bigcapital.app/api-reference/pdf-templates/retrieves-the-pdf-templates
api-reference/openapi.json get /api/pdf-templates
# Get balance sheet statement
Source: https://docs.bigcapital.app/api-reference/reports/get-balance-sheet-statement
api-reference/openapi.json get /api/reports/balance-sheet
# Get cashflow statement report
Source: https://docs.bigcapital.app/api-reference/reports/get-cashflow-statement-report
api-reference/openapi.json get /api/reports/cashflow-statement
# Get customer balance summary report
Source: https://docs.bigcapital.app/api-reference/reports/get-customer-balance-summary-report
api-reference/openapi.json get /api/reports/customer-balance-summary
# Get general ledger report
Source: https://docs.bigcapital.app/api-reference/reports/get-general-ledger-report
api-reference/openapi.json get /api/reports/general-ledger
# Get inventory item details
Source: https://docs.bigcapital.app/api-reference/reports/get-inventory-item-details
api-reference/openapi.json get /api/reports/inventory-item-details
# Get payable aging summary
Source: https://docs.bigcapital.app/api-reference/reports/get-payable-aging-summary
api-reference/openapi.json get /api/reports/payable-aging-summary
# Get profit/loss statement report
Source: https://docs.bigcapital.app/api-reference/reports/get-profitloss-statement-report
api-reference/openapi.json get /api/reports/profit-loss-sheet
# Get purchases by items report
Source: https://docs.bigcapital.app/api-reference/reports/get-purchases-by-items-report
api-reference/openapi.json get /api/reports/purchases-by-items
# Get receivable aging summary
Source: https://docs.bigcapital.app/api-reference/reports/get-receivable-aging-summary
api-reference/openapi.json get /api/reports/receivable-aging-summary
# Get sales tax liability summary report
Source: https://docs.bigcapital.app/api-reference/reports/get-sales-tax-liability-summary-report
api-reference/openapi.json get /api/reports/sales-tax-liability-summary
# Get transactions by customer
Source: https://docs.bigcapital.app/api-reference/reports/get-transactions-by-customer
api-reference/openapi.json get /api/reports/transactions-by-customers
# Get transactions by reference
Source: https://docs.bigcapital.app/api-reference/reports/get-transactions-by-reference
api-reference/openapi.json get /api/reports/transactions-by-reference
# Get transactions by vendor
Source: https://docs.bigcapital.app/api-reference/reports/get-transactions-by-vendor
api-reference/openapi.json get /api/reports/transactions-by-vendors
# Get trial balance sheet
Source: https://docs.bigcapital.app/api-reference/reports/get-trial-balance-sheet
api-reference/openapi.json get /api/reports/trial-balance-sheet
# Get vendor balance summary
Source: https://docs.bigcapital.app/api-reference/reports/get-vendor-balance-summary
api-reference/openapi.json get /api/reports/vendor-balance-summary
# Journal report
Source: https://docs.bigcapital.app/api-reference/reports/journal-report
api-reference/openapi.json get /api/reports/journal
# Retrieves the inventory valuation sheet
Source: https://docs.bigcapital.app/api-reference/reports/retrieves-the-inventory-valuation-sheet
api-reference/openapi.json get /api/reports/inventory-valuation
# Sales by items report
Source: https://docs.bigcapital.app/api-reference/reports/sales-by-items-report
api-reference/openapi.json get /api/reports/sales-by-items
Retrieves the sales by items report.
# Retrieves the resource meta
Source: https://docs.bigcapital.app/api-reference/resources/retrieves-the-resource-meta
api-reference/openapi.json get /api/resources/{resourceModel}/meta
# Create a new role
Source: https://docs.bigcapital.app/api-reference/roles/create-a-new-role
api-reference/openapi.json post /api/roles
# Delete a role
Source: https://docs.bigcapital.app/api-reference/roles/delete-a-role
api-reference/openapi.json delete /api/roles/{id}
# Edit an existing role
Source: https://docs.bigcapital.app/api-reference/roles/edit-an-existing-role
api-reference/openapi.json put /api/roles/{id}
# Get a specific role by ID
Source: https://docs.bigcapital.app/api-reference/roles/get-a-specific-role-by-id
api-reference/openapi.json get /api/roles/{id}
# Get all roles
Source: https://docs.bigcapital.app/api-reference/roles/get-all-roles
api-reference/openapi.json get /api/roles
# Get role permissions schema
Source: https://docs.bigcapital.app/api-reference/roles/get-role-permissions-schema
api-reference/openapi.json get /api/roles/permissions/schema
# Approve the given sale estimate.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/approve-the-given-sale-estimate
api-reference/openapi.json put /api/sale-estimates/{id}/approve
# Create a new sale estimate.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/create-a-new-sale-estimate
api-reference/openapi.json post /api/sale-estimates
# Delete the given sale estimate.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/delete-the-given-sale-estimate
api-reference/openapi.json delete /api/sale-estimates/{id}
# Deletes multiple sale estimates.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/deletes-multiple-sale-estimates
api-reference/openapi.json post /api/sale-estimates/bulk-delete
# Deliver the given sale estimate.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/deliver-the-given-sale-estimate
api-reference/openapi.json post /api/sale-estimates/{id}/deliver
# Edit the given sale estimate.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/edit-the-given-sale-estimate
api-reference/openapi.json put /api/sale-estimates/{id}
# Notify the given sale estimate by SMS.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/notify-the-given-sale-estimate-by-sms
api-reference/openapi.json post /api/sale-estimates/{id}/notify-sms
# Reject the given sale estimate.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/reject-the-given-sale-estimate
api-reference/openapi.json put /api/sale-estimates/{id}/reject
# Retrieves the sale estimate details.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/retrieves-the-sale-estimate-details
api-reference/openapi.json get /api/sale-estimates/{id}
# Retrieves the sale estimate mail state.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/retrieves-the-sale-estimate-mail-state
api-reference/openapi.json get /api/sale-estimates/{id}/mail
# Retrieves the sale estimate SMS details.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/retrieves-the-sale-estimate-sms-details
api-reference/openapi.json get /api/sale-estimates/{id}/sms-details
# Retrieves the sale estimate state.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/retrieves-the-sale-estimate-state
api-reference/openapi.json get /api/sale-estimates/state
# Retrieves the sale estimates.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/retrieves-the-sale-estimates
api-reference/openapi.json get /api/sale-estimates
# Send the given sale estimate by mail.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/send-the-given-sale-estimate-by-mail
api-reference/openapi.json post /api/sale-estimates/{id}/mail
# Validates which sale estimates can be deleted and returns the results.
Source: https://docs.bigcapital.app/api-reference/sale-estimates/validates-which-sale-estimates-can-be-deleted-and-returns-the-results
api-reference/openapi.json post /api/sale-estimates/validate-bulk-delete
# Cancel the written off sale invoice.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/cancel-the-written-off-sale-invoice
api-reference/openapi.json post /api/sale-invoices/{id}/cancel-writeoff
# Create a new sale invoice.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/create-a-new-sale-invoice
api-reference/openapi.json post /api/sale-invoices
# Delete the given sale invoice.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/delete-the-given-sale-invoice
api-reference/openapi.json delete /api/sale-invoices/{id}
# Deletes multiple sale invoices.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/deletes-multiple-sale-invoices
api-reference/openapi.json post /api/sale-invoices/bulk-delete
# Deliver the given sale invoice.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/deliver-the-given-sale-invoice
api-reference/openapi.json put /api/sale-invoices/{id}/deliver
# Edit the given sale invoice.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/edit-the-given-sale-invoice
api-reference/openapi.json put /api/sale-invoices/{id}
# Generate sharable sale invoice link (private or public)
Source: https://docs.bigcapital.app/api-reference/sale-invoices/generate-sharable-sale-invoice-link-private-or-public
api-reference/openapi.json post /api/sale-invoices/{id}/generate-link
# Retrieves the receivable sale invoices.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/retrieves-the-receivable-sale-invoices
api-reference/openapi.json get /api/sale-invoices/receivable
# Retrieves the sale invoice details.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/retrieves-the-sale-invoice-details
api-reference/openapi.json get /api/sale-invoices/{id}
# Retrieves the sale invoice HTML.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/retrieves-the-sale-invoice-html
api-reference/openapi.json get /api/sale-invoices/{id}/html
# Retrieves the sale invoice mail state.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/retrieves-the-sale-invoice-mail-state
api-reference/openapi.json get /api/sale-invoices/{id}/mail
# Retrieves the sale invoice payments.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/retrieves-the-sale-invoice-payments
api-reference/openapi.json get /api/sale-invoices/{id}/payments
# Retrieves the sale invoice state.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/retrieves-the-sale-invoice-state
api-reference/openapi.json get /api/sale-invoices/state
# Retrieves the sale invoices.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/retrieves-the-sale-invoices
api-reference/openapi.json get /api/sale-invoices
# Send the sale invoice mail.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/send-the-sale-invoice-mail
api-reference/openapi.json post /api/sale-invoices/{id}/mail
# Validates which sale invoices can be deleted and returns the results.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/validates-which-sale-invoices-can-be-deleted-and-returns-the-results
api-reference/openapi.json post /api/sale-invoices/validate-bulk-delete
# Write off the given sale invoice.
Source: https://docs.bigcapital.app/api-reference/sale-invoices/write-off-the-given-sale-invoice
api-reference/openapi.json post /api/sale-invoices/{id}/writeoff
# Close the given sale receipt.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/close-the-given-sale-receipt
api-reference/openapi.json post /api/sale-receipts/{id}/close
# Create a new sale receipt.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/create-a-new-sale-receipt
api-reference/openapi.json post /api/sale-receipts
# Delete the given sale receipt.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/delete-the-given-sale-receipt
api-reference/openapi.json delete /api/sale-receipts/{id}
# Deletes multiple sale receipts.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/deletes-multiple-sale-receipts
api-reference/openapi.json post /api/sale-receipts/bulk-delete
# Edit the given sale receipt.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/edit-the-given-sale-receipt
api-reference/openapi.json put /api/sale-receipts/{id}
# Retrieves the sale receipt details.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/retrieves-the-sale-receipt-details
api-reference/openapi.json get /api/sale-receipts/{id}
# Retrieves the sale receipt mail.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/retrieves-the-sale-receipt-mail
api-reference/openapi.json get /api/sale-receipts/{id}/mail
# Retrieves the sale receipt state.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/retrieves-the-sale-receipt-state
api-reference/openapi.json get /api/sale-receipts/state
# Retrieves the sale receipts paginated list
Source: https://docs.bigcapital.app/api-reference/sale-receipts/retrieves-the-sale-receipts-paginated-list
api-reference/openapi.json get /api/sale-receipts
# Send the sale receipt mail.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/send-the-sale-receipt-mail
api-reference/openapi.json post /api/sale-receipts/{id}/mail
# Validates which sale receipts can be deleted and returns the results.
Source: https://docs.bigcapital.app/api-reference/sale-receipts/validates-which-sale-receipts-can-be-deleted-and-returns-the-results
api-reference/openapi.json post /api/sale-receipts/validate-bulk-delete
# Retrieves the settings.
Source: https://docs.bigcapital.app/api-reference/settings/retrieves-the-settings
api-reference/openapi.json get /api/settings
# Save the given settings.
Source: https://docs.bigcapital.app/api-reference/settings/save-the-given-settings
api-reference/openapi.json put /api/settings
# Get apistripelink
Source: https://docs.bigcapital.app/api-reference/stripe/get-apistripelink
api-reference/openapi.json get /api/stripe/link
# Listen to Stripe webhooks
Source: https://docs.bigcapital.app/api-reference/stripe/listen-to-stripe-webhooks
api-reference/openapi.json post /api/webhooks/stripe
# Post apistripeaccount link
Source: https://docs.bigcapital.app/api-reference/stripe/post-apistripeaccount_link
api-reference/openapi.json post /api/stripe/account_link
# Post apistripecallback
Source: https://docs.bigcapital.app/api-reference/stripe/post-apistripecallback
api-reference/openapi.json post /api/stripe/callback
# Cancel the current organization subscription
Source: https://docs.bigcapital.app/api-reference/subscriptions/cancel-the-current-organization-subscription
api-reference/openapi.json post /api/subscription/cancel
# Change the subscription plan of the current organization
Source: https://docs.bigcapital.app/api-reference/subscriptions/change-the-subscription-plan-of-the-current-organization
api-reference/openapi.json post /api/subscription/change
# Get all subscriptions for the current tenant
Source: https://docs.bigcapital.app/api-reference/subscriptions/get-all-subscriptions-for-the-current-tenant
api-reference/openapi.json get /api/subscription
# Get LemonSqueezy checkout URL
Source: https://docs.bigcapital.app/api-reference/subscriptions/get-lemonsqueezy-checkout-url
api-reference/openapi.json post /api/subscription/lemon/checkout_url
# Post apiwebhookslemon
Source: https://docs.bigcapital.app/api-reference/subscriptions/post-apiwebhookslemon
api-reference/openapi.json post /api/webhooks/lemon
# Resume the current organization subscription
Source: https://docs.bigcapital.app/api-reference/subscriptions/resume-the-current-organization-subscription
api-reference/openapi.json post /api/subscription/resume
# Activate the given tax rate.
Source: https://docs.bigcapital.app/api-reference/tax-rates/activate-the-given-tax-rate
api-reference/openapi.json put /api/tax-rates/{id}/activate
# Create a new tax rate.
Source: https://docs.bigcapital.app/api-reference/tax-rates/create-a-new-tax-rate
api-reference/openapi.json post /api/tax-rates
# Delete the given tax rate.
Source: https://docs.bigcapital.app/api-reference/tax-rates/delete-the-given-tax-rate
api-reference/openapi.json delete /api/tax-rates/{id}
# Edit the given tax rate.
Source: https://docs.bigcapital.app/api-reference/tax-rates/edit-the-given-tax-rate
api-reference/openapi.json put /api/tax-rates/{id}
# Inactivate the given tax rate.
Source: https://docs.bigcapital.app/api-reference/tax-rates/inactivate-the-given-tax-rate
api-reference/openapi.json put /api/tax-rates/{id}/inactivate
# Retrieves the tax rate details.
Source: https://docs.bigcapital.app/api-reference/tax-rates/retrieves-the-tax-rate-details
api-reference/openapi.json get /api/tax-rates/{id}
# Retrieves the tax rates.
Source: https://docs.bigcapital.app/api-reference/tax-rates/retrieves-the-tax-rates
api-reference/openapi.json get /api/tax-rates
# Cancel all transactions locking for a module or all modules
Source: https://docs.bigcapital.app/api-reference/transactions-locking/cancel-all-transactions-locking-for-a-module-or-all-modules
api-reference/openapi.json put /api/transactions-locking/cancel-lock
# Cancel partial unlocking all transactions locking for a module or all modules
Source: https://docs.bigcapital.app/api-reference/transactions-locking/cancel-partial-unlocking-all-transactions-locking-for-a-module-or-all-modules
api-reference/openapi.json put /api/transactions-locking/cancel-unlock-partial
# Get all transactions locking meta
Source: https://docs.bigcapital.app/api-reference/transactions-locking/get-all-transactions-locking-meta
api-reference/openapi.json get /api/transactions-locking
# Get transactions locking meta for a module
Source: https://docs.bigcapital.app/api-reference/transactions-locking/get-transactions-locking-meta-for-a-module
api-reference/openapi.json get /api/transactions-locking/{module}
# Lock all transactions for a module or all modules
Source: https://docs.bigcapital.app/api-reference/transactions-locking/lock-all-transactions-for-a-module-or-all-modules
api-reference/openapi.json put /api/transactions-locking/lock
# Partial unlock all transactions locking for a module or all modules
Source: https://docs.bigcapital.app/api-reference/transactions-locking/partial-unlock-all-transactions-locking-for-a-module-or-all-modules
api-reference/openapi.json put /api/transactions-locking/unlock-partial
# Accept a user invitation.
Source: https://docs.bigcapital.app/api-reference/users/accept-a-user-invitation
api-reference/openapi.json post /api/invite/accept/{token}
# Activate the given user.
Source: https://docs.bigcapital.app/api-reference/users/activate-the-given-user
api-reference/openapi.json put /api/users/{id}/activate
# Check if an invitation token is valid.
Source: https://docs.bigcapital.app/api-reference/users/check-if-an-invitation-token-is-valid
api-reference/openapi.json get /api/invite/check/{token}
# Edit details of the given user.
Source: https://docs.bigcapital.app/api-reference/users/edit-details-of-the-given-user
api-reference/openapi.json put /api/users/{id}
# Inactivate the given user.
Source: https://docs.bigcapital.app/api-reference/users/inactivate-the-given-user
api-reference/openapi.json put /api/users/{id}/inactivate
# Resend an invitation to an existing user.
Source: https://docs.bigcapital.app/api-reference/users/resend-an-invitation-to-an-existing-user
api-reference/openapi.json post /api/invite/users/{id}/resend
# Retrieve the list of users.
Source: https://docs.bigcapital.app/api-reference/users/retrieve-the-list-of-users
api-reference/openapi.json get /api/users
# Retrieve user details of the given user id.
Source: https://docs.bigcapital.app/api-reference/users/retrieve-user-details-of-the-given-user-id
api-reference/openapi.json get /api/users/{id}
# Send an invitation to a new user.
Source: https://docs.bigcapital.app/api-reference/users/send-an-invitation-to-a-new-user
api-reference/openapi.json patch /api/invite
# Soft deleting the given user.
Source: https://docs.bigcapital.app/api-reference/users/soft-deleting-the-given-user
api-reference/openapi.json delete /api/users/{id}
# Apply vendor credit to the given bills.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-apply-bills/apply-vendor-credit-to-the-given-bills
api-reference/openapi.json post /api/vendor-credits/{vendorCreditId}/apply-to-bills
# Get bills already applied to this vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-apply-bills/get-bills-already-applied-to-this-vendor-credit
api-reference/openapi.json get /api/vendor-credits/{vendorCreditId}/applied-bills
# Get bills that can be applied with this vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-apply-bills/get-bills-that-can-be-applied-with-this-vendor-credit
api-reference/openapi.json get /api/vendor-credits/{vendorCreditId}/bills-to-apply
# Remove an applied bill from the vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-apply-bills/remove-an-applied-bill-from-the-vendor-credit
api-reference/openapi.json delete /api/vendor-credits/applied-bills/{vendorCreditAppliedBillId}
# Create a refund for the given vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-refunds/create-a-refund-for-the-given-vendor-credit
api-reference/openapi.json post /api/vendor-credits/{vendorCreditId}/refund
# Delete a refund for the given vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-refunds/delete-a-refund-for-the-given-vendor-credit
api-reference/openapi.json delete /api/vendor-credits/refunds/{refundCreditId}
# Retrieve a refund vendor credit transaction by id.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-refunds/retrieve-a-refund-vendor-credit-transaction-by-id
api-reference/openapi.json get /api/vendor-credits/refunds/{refundCreditId}
# Retrieve the vendor credit refunds graph.
Source: https://docs.bigcapital.app/api-reference/vendor-credits-refunds/retrieve-the-vendor-credit-refunds-graph
api-reference/openapi.json get /api/vendor-credits/{vendorCreditId}/refund
# Create a new vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/create-a-new-vendor-credit
api-reference/openapi.json post /api/vendor-credits
# Delete the given vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/delete-the-given-vendor-credit
api-reference/openapi.json delete /api/vendor-credits/{id}
# Deletes multiple vendor credits.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/deletes-multiple-vendor-credits
api-reference/openapi.json post /api/vendor-credits/bulk-delete
# Edit the given vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/edit-the-given-vendor-credit
api-reference/openapi.json put /api/vendor-credits/{id}
# Open the given vendor credit.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/open-the-given-vendor-credit
api-reference/openapi.json put /api/vendor-credits/{id}/open
# Retrieves the vendor credit details.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/retrieves-the-vendor-credit-details
api-reference/openapi.json get /api/vendor-credits/{id}
# Retrieves the vendor credits.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/retrieves-the-vendor-credits
api-reference/openapi.json get /api/vendor-credits
# Validates which vendor credits can be deleted and returns the results.
Source: https://docs.bigcapital.app/api-reference/vendor-credits/validates-which-vendor-credits-can-be-deleted-and-returns-the-results
api-reference/openapi.json post /api/vendor-credits/validate-bulk-delete
# Create a new vendor.
Source: https://docs.bigcapital.app/api-reference/vendors/create-a-new-vendor
api-reference/openapi.json post /api/vendors
# Delete the given vendor.
Source: https://docs.bigcapital.app/api-reference/vendors/delete-the-given-vendor
api-reference/openapi.json delete /api/vendors/{id}
# Deletes multiple vendors in bulk.
Source: https://docs.bigcapital.app/api-reference/vendors/deletes-multiple-vendors-in-bulk
api-reference/openapi.json post /api/vendors/bulk-delete
# Edit the given vendor.
Source: https://docs.bigcapital.app/api-reference/vendors/edit-the-given-vendor
api-reference/openapi.json put /api/vendors/{id}
# Edit the given vendor opening balance.
Source: https://docs.bigcapital.app/api-reference/vendors/edit-the-given-vendor-opening-balance
api-reference/openapi.json put /api/vendors/{id}/opening-balance
# Retrieves the vendor details.
Source: https://docs.bigcapital.app/api-reference/vendors/retrieves-the-vendor-details
api-reference/openapi.json get /api/vendors/{id}
# Retrieves the vendors.
Source: https://docs.bigcapital.app/api-reference/vendors/retrieves-the-vendors
api-reference/openapi.json get /api/vendors
# Validates which vendors can be deleted and returns counts of deletable and non-deletable vendors.
Source: https://docs.bigcapital.app/api-reference/vendors/validates-which-vendors-can-be-deleted-and-returns-counts-of-deletable-and-non-deletable-vendors
api-reference/openapi.json post /api/vendors/validate-bulk-delete
# Get the given resource views
Source: https://docs.bigcapital.app/api-reference/views/get-the-given-resource-views
api-reference/openapi.json get /api/views/resource/{resourceModel}
# Create a new warehouse transfer transaction.
Source: https://docs.bigcapital.app/api-reference/warehouse-transfers/create-a-new-warehouse-transfer-transaction
api-reference/openapi.json post /api/warehouse-transfers
# Delete the given warehouse transfer transaction.
Source: https://docs.bigcapital.app/api-reference/warehouse-transfers/delete-the-given-warehouse-transfer-transaction
api-reference/openapi.json delete /api/warehouse-transfers/{id}
# Edit the given warehouse transfer transaction.
Source: https://docs.bigcapital.app/api-reference/warehouse-transfers/edit-the-given-warehouse-transfer-transaction
api-reference/openapi.json post /api/warehouse-transfers/{id}
# Initiate the given warehouse transfer.
Source: https://docs.bigcapital.app/api-reference/warehouse-transfers/initiate-the-given-warehouse-transfer
api-reference/openapi.json put /api/warehouse-transfers/{id}/initiate
# Mark the given warehouse transfer as transferred.
Source: https://docs.bigcapital.app/api-reference/warehouse-transfers/mark-the-given-warehouse-transfer-as-transferred
api-reference/openapi.json put /api/warehouse-transfers/{id}/transferred
# Retrieve warehouse transfer transaction details.
Source: https://docs.bigcapital.app/api-reference/warehouse-transfers/retrieve-warehouse-transfer-transaction-details
api-reference/openapi.json get /api/warehouse-transfers/{id}
# Retrieve warehouse transfer transactions with pagination.
Source: https://docs.bigcapital.app/api-reference/warehouse-transfers/retrieve-warehouse-transfer-transactions-with-pagination
api-reference/openapi.json get /api/warehouse-transfers
# Activate a warehouse
Source: https://docs.bigcapital.app/api-reference/warehouses/activate-a-warehouse
api-reference/openapi.json post /api/warehouses/activate
# Create a warehouse
Source: https://docs.bigcapital.app/api-reference/warehouses/create-a-warehouse
api-reference/openapi.json post /api/warehouses
# Delete a warehouse
Source: https://docs.bigcapital.app/api-reference/warehouses/delete-a-warehouse
api-reference/openapi.json delete /api/warehouses/{id}
# Get a warehouse
Source: https://docs.bigcapital.app/api-reference/warehouses/get-a-warehouse
api-reference/openapi.json get /api/warehouses/{id}
# Get all warehouses
Source: https://docs.bigcapital.app/api-reference/warehouses/get-all-warehouses
api-reference/openapi.json get /api/warehouses
# Mark a warehouse as primary
Source: https://docs.bigcapital.app/api-reference/warehouses/mark-a-warehouse-as-primary
api-reference/openapi.json put /api/warehouses/{id}/mark-primary
# Put apiwarehouses
Source: https://docs.bigcapital.app/api-reference/warehouses/put-apiwarehouses
api-reference/openapi.json put /api/warehouses/{id}
# Retrieves the item associated warehouses.
Source: https://docs.bigcapital.app/api-reference/warehouses/retrieves-the-item-associated-warehouses
api-reference/openapi.json get /api/items/{id}/warehouses
# Architecture
Source: https://docs.bigcapital.app/architecture
Bigcapital is built with a multi-tenancy architecture that allows multiple organizations to use the same software while keeping their data separate from each other. This means that every organization that uses the software has its own database that is isolated from other organizations' databases. At the same time there's a master or system database mutual between all tenants.
* Every organization that signs up for the software is given a unique identifier (Tenant ID). When an organization logs in, the server retrieves the organization's tenant ID from the login request and uses it to identify the organization's database.
* All database operations performed by the organization's users are performed on their own database.
* The server instance acts as a middleware between the client-side application and the database, and it routes all requests to the appropriate database based on the tenant ID.
### Components:
* **Nginx Proxy**: Proxy server configured to redirect requests that start with `/api` to dynamic data (API endpoints) to the server, and all other requests to static assets of the single-page application.
* **System Database**: The system database is distinct from the tenant databases, which are used to store the data for each individual tenant and used by the software itself to manage and coordinate the different tenants and their databases.
* **Tenant Database**: Mysql tenant databases, the database is used to store all the data related to that organization and created and managed automatically by the server once the user signup and set up the account.
* **Web App**: React SPA static assets communicate with the server instance.
Server: Stateful server instance NodeJS based (we work to make it stateless) to serve the dynamic data of API endpoints.
* **MongoDB**: MongoDB used to store Agenda jobs metadata.
* **Cache Store**: Redis to store cached data mutual between all tenants.
# Docker
Source: https://docs.bigcapital.app/deployment/docker
This page includes information about the minimum requirements you need to install and use self-managed Bigcapital.
## Docker Bigcapital Production deployment guide
Looking for the quickest way to deploy? Check out the [Setup Script](/deployment/setup-script) for an automated installation experience.
### Pre-requisites
Before proceeding, make sure you have the latest version of docker and
docker-compose installed.
### Steps to deploy Bigcapital using docker-compose
1. Download the required files.
In a directory of your choosing, clone the Bigcapital repository and navigate into the `./bigcapital` directory by entering the following commands:
```bash theme={null}
git clone --depth 1 -b main https://github.com/bigcapitalhq/bigcapital.git && cd ./bigcapital
```
The most important files in the docker deployment the `docker-compose.prod.yml`, `.env.example` and `docker` folder, we're not going to build docker images of the application from scratch, but docker-compose already imports built images from Github Registry where our continuous-deployment push the new built images when we release new versions.
2. Configure the `.env` file.
Change all mail variables to configure it with your mail server and the password of databases.
```bash theme={null}
cp .env.example .env && nano .env
```
The `.env.example` file contains all the necessary environment variable
values, allowing you to begin using the application directly with these
pre-configured settings. You also have the option to modify the values as
needed.
3. Get the services up and running.
```bash theme={null}
docker-compose --file docker-compose.prod.yml up -d
```
* `-f` and the path to your configuration file
* `-d` to run containers in the background
4. **Your Bigcapital installation is complete.** Please note that the containers are not exposed to the internet and they only bind to the localhost. You don't have to setup Nginx or any other proxy server to the requests, we're already set up Nginx container on docker-compose file as proxy server.
Wait for all containers to be in running state, and then point your browser to `http://:8000/` to access the application.
Once the installation is done, you will have to create your first account. No
default account is provided.
### Verify the Installation
1. Ensure that your containers are running correctly. To view the status of your containers, run the following command:
```bash theme={null}
docker ps
```
The output should look similar to the following:
```bash theme={null}
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28b2727fa769 bigcapital-nginx "/bin/sh -c nginx" 13 seconds ago Up 8 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp bigcapital-nginx-gateway
7fad8c349625 ghcr.io/bigcapitalhq/server:latest "docker-entrypoint.s…" 13 seconds ago Up 9 seconds bigcapital-server
4822ee034710 bigcapital-redis "docker-entrypoint.s…" 14 seconds ago Up 10 seconds 6379/tcp bigcapital-redis
0c1806951917 bigcapital-mongo "docker-entrypoint.s…" 14 seconds ago Up 11 seconds 27017/tcp bigcapital-mongo
ce5c8de35d28 bigcapital-mysql "docker-entrypoint.s…" 14 seconds ago Up 10 seconds 3306/tcp, 33060/tcp bigcapital-mysql
984978c4f75d ghcr.io/bigcapitalhq/webapp:latest "/docker-entrypoint.…" 14 seconds ago Up 10 seconds 80/tcp bigcapital-webapp
```
### Database migration
Once you get the services up and running, the docker-compose file has `database_migration` container once listen to the `mysql` container and will execute the migration command in automated way and the container stop automatically after finish the migration (the container do not have to be run all the time), you have to execute it once to update the database schema.
#### Make sure the database migration ran successfully.
Get the container ID by listing all containers `docker ps -a | grep bigcapital-database_migration` and show the logs of that container by `docker logs -f CONTAINER_ID`
### Upgrading
First we need just to pull latest version of the project, might be some changes on the docker-compose files.
```bash theme={null}
git pull origin main
```
Now we are going to pull the latest images from regsitry by doing.
```bash theme={null}
docker-compose --file docker-compose.prod.yml pull
```
and start build and using them again.
```bash theme={null}
docker-compose --file docker-compose.prod.yml up --build -d
```
### Changing `.env` values after running Docker containers
Once the Docker containers are built and running, the application inside the container has already read the values from the .env file and is using them.
If you need to change the environment variable values, you will have to stop and re-start the Bigcapital containers.
If you were on **production**, use the following command.
```bash theme={null}
docker-compose --file docker-compose.prod.yml restart
```
Or if you were on **development** mode.
```bash theme={null}
docker-compose restart
```
All environment variables of databases cannot be modified. This is because the initial user, username, password and database name have already been set up by the database. However, if it becomes necessary to change these credentials, you can access the MySQL container and execute SQL queries to modify the username, password, or even the system database name. Afterwards, you can update the corresponding values in the .env file to ensure they match the changes made.
**Alternatively**, you can remove the MySQL volume by performing the following action, but that it will delete all your database data.
*on production*
```bash theme={null}
docker volume rm bigcapital_prod_mysql
```
*on development*
```bash theme={null}
docker volume rm bigcapital_dev_mysql
```
# Environment Variables
Source: https://docs.bigcapital.app/deployment/env_vars
Bigcaptial requires the following environment variables to be configured:
### Mail
Following environment variables related to the application mail.
| Variable | Description |
| ----------------------- | ---------------------------------------------------------------------------- |
| **MAIL\_HOST** | The hostname or IP address of the mail server used for sending emails. |
| **MAIL\_USERNAME** | The username or email address used for authentication when sending emails. |
| **MAIL\_PASSWORD** | The password associated with the **MAIL\_USERNAME** for authentication. |
| **MAIL\_PORT** | The port number on the mail server used for email communication. |
| **MAIL\_SECURE** | Indicates whether the email communication should be secured with encryption. |
| **MAIL\_FROM\_NAME** | The sender's display name shown in the "From" field of outgoing emails. |
| **MAIL\_FROM\_ADDRESS** | The email address shown in the "From" field of outgoing emails. |
### System Database
Following environment variables related to the system database.
| Variable | Description |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **SYSTEM\_DB\_HOST** | The hostname or IP address of the **system database** server. |
| **SYSTEM\_DB\_USER** | The port number on the **system database** server where the database service is running. |
| **SYSTEM\_DB\_PASSWORD** | The password associated with the `SYSTEM_DB_USER` for authentication. |
| **SYSTEM\_DB\_NAME** | The name of the **system database** that your application will connect to. the docker-compose config will create a new fresh database after initial container running. |
| **SYSTEM\_DB\_CHARSET** | Defines the character set or encoding for the **system database** connection. |
### Tenant Database
Following environment variables related to the tenant databases.
| Variable | Description |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **TENANT\_DB\_NAME\_PERFIX** | The prefix name of the **tenant databases** e.g. if the prefix name is `bigcapital_` the created tenant database at the runtime wil be `bigcapital_123123` with unique organization id. |
| **TENANT\_DB\_HOST** | The hostname or IP address of the **tenants database** server. |
| **TENANT\_DB\_USER** | The port number of the **tenants database** server where the database service is running. |
| **TENANT\_DB\_PASSWORD** | The password associated with the `TENANT_DB_USER` for authentication. |
| **TENANT\_DB\_CHARSET** | Defines the character set or encoding for the **tenants databases** connection. |
### Database
Following environment variables is mutual variables between system and tenant databases if both holding the same values.
:::info
If you have set the environment variable `DB_USER=bigcapital` and `SYSTEM_DB_USER=acme`, the value of `DB_USER` will be deprecated and the system's database user will be "**acme**". Similarly, if you have defined `TENANT_DB_NAME=acme`, the tenant databases will default to "**bigcapital**" until a value set to `TENANT_DB_NAME`.
:::
| Variable | Description |
| ---------------- | ---------------------------------------------------------------------------------------------------- |
| **DB\_HOST** | The hostname or IP address of the **system and tenant databases** server. |
| **DB\_USER** | The port number of the **system and tenant databases** server where the database service is running. |
| **DB\_PASSWORD** | The password associated with the `DB_PASSWORD` for authentication. |
| **DB\_CHARSET** | Defines the character set or encoding for the **system and tenants databases** connection. |
### Application
| Variable | Description |
| --------------- | --------------------------------------------------------------------- |
| **JWT\_SECRET** | Should be a strong, random, and unique value to enhance the security. |
### Signup Restrictions
Following environment variables related to the [Signup Restrictions](/docs/deployment/signup_restriction).
| Variable | Description |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **SIGNUP\_DISABLED** | Disable the signing up of new users . |
| **SIGNUP\_ALLOWED\_DOMAINS** | Restrict signups to emails belonging to only a specific set of domains. This field takes a comma-separated set of values. |
| **SIGNUP\_ALLOWED\_EMAILS** | restrict signups to specific email addresses. This field takes a comma-separated set of values. |
# Plaid Setup
Source: https://docs.bigcapital.app/deployment/plaid_setup
This guide will walk you through configuring Plaid for your self-managed Bigcapital instance. You will learn how to obtain your Plaid credentials, set up the required environment variables, and configure webhooks.
### 1. Obtain Your Plaid Credentials
To connect Bigcapital (self-hosted) to Plaid, you need your **Client ID** and **Secret**. These can be found in your Plaid Dashboard:
1. Log in to your [Plaid Dashboard](https://dashboard.plaid.com/).
2. Navigate to **Developers** > **Keys** or go directly to [Account Keys](https://dashboard.plaid.com/account/keys).
3. Copy your **Client ID** and **Secret** for the environment you wish to use (Sandbox, Development, or Production).
Never share your secret key publicly. Treat it like a password.
### 2. Configure Environment Variables
Add the following environment variables to your `.env` file or your deployment environment:
```bash theme={null}
# The Plaid environment to use ('sandbox', 'development', or 'production').
# See: https://plaid.com/docs/#api-host
PLAID_ENV=sandbox
# Your Plaid keys, which can be found in the Plaid Dashboard.
# https://dashboard.plaid.com/account/keys
PLAID_CLIENT_ID=your_client_id_here
PLAID_SECRET=your_secret_here
# (Optional) Webhook URL for Plaid Link events.
PLAID_LINK_WEBHOOK=https://your-domain.com/api/banking/plaid/webhooks
```
If your PLAID\_SECRET is for the production
environment, make sure to set PLAID\_ENV=production to match.
Using the wrong environment may cause authentication errors or prevent access
to live data.
### Variable Descriptions
* **PLAID\_ENV**: The Plaid environment to use. Use `sandbox` for testing, `development` for real data with limited access, or `production` for live data.
* **PLAID\_CLIENT\_ID**: Your unique Plaid client ID from the dashboard.
* **PLAID\_SECRET**: Your Plaid secret key from the dashboard.
* **PLAID\_LINK\_WEBHOOK**: (Optional) The URL where Plaid will send webhook events. This should be publicly accessible if you want to receive real-time updates from Plaid.
### 4. Setting Up the Webhook (Optional)
If you want to receive real-time updates from Plaid (such as transaction updates), you need to set up a webhook:
1. Deploy your API endpoint to a publicly accessible URL (e.g., using [ngrok](https://ngrok.com/) for local development).
2. Set the `PLAID_LINK_WEBHOOK` variable to your endpoint URL.
3. Ensure your endpoint is configured to handle Plaid webhook events. See [Plaid Webhooks Documentation](https://plaid.com/docs/api/webhooks/) - To configure your webhook URL in the Plaid Dashboard.
* From [Plaid Dashboard](https://dashboard.plaid.com/). Go to **Developers** > **Webhook URLs**.
* Click **Add webhook URL** (or edit an existing one).
* Enter your endpoint URL (the same as `PLAID_LINK_WEBHOOK`).
* Save your changes. For more details, see the [Plaid Webhook Configuration Guide](https://plaid.com/docs/api/webhooks/#registering-webhooks).
### 5. Enable Bank Feeds Feature
After completing the Plaid configuration, you must enable the bank feeds feature in your environment. Add the following variable to your `.env` file or deployment environment:
```bash theme={null}
BANK_FEED_ENABLED=true
```
This setting activates the bank feeds integration, allowing your Bigcapital instance to sync and process bank transactions via Plaid.
### Additional Resources
* [Plaid API Documentation](https://plaid.com/docs/)
* [Plaid Dashboard](https://dashboard.plaid.com/)
* [Plaid Webhooks](https://plaid.com/docs/api/webhooks/)
# System Recommendations
Source: https://docs.bigcapital.app/deployment/recommendation
This page includes information about the minimum requirements you need to install and use self-managed Bigcapital.
**Quick Start**: Bigcapital provides an automated [setup script](/deployment/setup-script) that handles the entire deployment process. This is the recommended approach for most users.
### CPU
CPU requirements are dependent on the number of users, organizations, volume of transactions and expected workload.
* 2 cores is the recommended minimum number of cores and supports up to 10 organizations.
### Memory
Memory requirements are dependent on the number of users, organizations, volume of transactions and expected workload.
* 4 GB RAM is the required minimum memory size and supports up to 10 organizations
The higher volume transactions and journal entries you have the higher CPU and memory you need, generating financial reports with a large number of transactions necessitates substantial computational power and memory resources.
### MariaDB Server
The server running MariaDB should have at least 5-10 GB of storage available, though the exact requirements depend on the number of organizations.
The minimum MariaDB version should be >= `v10.2.0`
# Setup Script
Source: https://docs.bigcapital.app/deployment/setup-script
Deploy Bigcapital quickly using the automated setup script
The Bigcapital setup script provides the fastest way to deploy Bigcapital on your own server. This interactive script automates the entire deployment process including downloading configuration files, managing environment variables, and controlling Docker containers.
The setup script is the recommended way to self-host Bigcapital for most users.
It handles all the complexity of Docker deployment through a simple interactive menu.
## Prerequisites
Before running the setup script, ensure you have the following installed on your server:
* **Docker** (latest version)
* **Docker Compose** (either `docker-compose` or `docker compose` plugin)
* **Git**
* **curl**
## Download the Setup Script
Download the setup script from the Bigcapital repository:
```bash theme={null}
curl -o setup.sh https://raw.githubusercontent.com/bigcapitalhq/bigcapital/develop/setup.sh
```
Make the script executable:
```bash theme={null}
chmod +x setup.sh
```
## Using the Setup Script
Run the setup script interactively:
```bash theme={null}
./setup.sh
```
Or pass a specific action directly:
```bash theme={null}
./setup.sh [action]
```
Available actions:
| Action | Description |
| --------- | ------------------------------------- |
| `install` | Download Docker files and pull images |
| `start` | Start all Bigcapital services |
| `stop` | Stop all Bigcapital services |
| `restart` | Restart all Bigcapital services |
| `upgrade` | Upgrade to the latest version |
| `logs` | View logs for specific services |
## Interactive Menu
When you run `./setup.sh` without arguments, you'll see an interactive menu:
```
--------------------------------------------
× ≠≠≠≠ ____ _ _ _ _
×××× ≠≠≠≠≠ | __ )(_) __ _ ___ __ _ _ __ (_) |_ __ _| |
××××× ≠≠≠≠≠ | _ \| |/ _` |/ __/ _` | '_ \| | __/ _` | |
××××× ≠≠≠≠≠= | |_) | | (_| | (_| (_| | |_) | | || (_| | |
××××× ≠≠≠≠≠≠ |____/|_|\__, |\___\__,_| .__/|_|\__\__,_|_|
×××× ≠≠≠ |___/ |_|
--------------------------------------------
Self-hosted modern core accounting software
--------------------------------------------
Select a Action you want to perform:
1) Install
2) Start
3) Stop
4) Restart
5) Upgrade
6) Logs
7) Exit
Action [2]:
```
## Installation Steps
### 1. Install
Select option `1` or run:
```bash theme={null}
./setup.sh install
```
This command will:
* Clone the latest Docker configuration files from the repository
* Create an `.env` file from the example configuration
* Pull the latest Docker images from GitHub Container Registry
* Archive any existing configuration files (stored in `./archive/`)
### 2. Configure Environment Variables
Before starting the services, edit the `.env` file to configure your deployment:
```bash theme={null}
nano .env
```
Required configurations:
* **Mail settings** (`MAIL_HOST`, `MAIL_USERNAME`, `MAIL_PASSWORD`, etc.)
* **JWT\_SECRET** (generate a strong random value)
* **Database passwords** (change default passwords for security)
See the [Environment Variables](/deployment/env_vars) page for detailed information about each variable.
### 3. Start Services
Select option `2` or run:
```bash theme={null}
./setup.sh start
```
The script will:
* Build and start all Docker containers
* Wait for database migrations to complete
* Wait for the API server to be ready
* Display the access URL
Once complete, you'll see:
```
Database migration completed successfully ✅
API server started successfully ✅
Bigcapital server started successfully ✅
You can access the application at http://localhost
```
The default access URL is `http://localhost:8000` unless you configured a
different `BASE_URL` in the `.env` file.
### 4. Create Your First Account
Navigate to the displayed URL in your browser and create your first account. No default account is provided.
## Managing Services
### Stop Services
```bash theme={null}
./setup.sh stop
```
Stops all running Docker containers without removing data.
### Restart Services
```bash theme={null}
./setup.sh restart
```
Restarts all services. Useful after making changes to environment variables.
### View Logs
```bash theme={null}
./setup.sh logs
```
Opens a menu to view logs for specific services:
1. Webapp
2. API (Server)
3. Migration
4. Envoy Proxy
5. MariaDB
## Upgrading Bigcapital
To upgrade to the latest version:
```bash theme={null}
./setup.sh upgrade
```
This will:
1. Stop all running services
2. Download the latest Docker configuration files
3. Pull the latest images from the registry
After upgrading, start the services again:
```bash theme={null}
./setup.sh start
```
## What the Script Does
The setup script automates the following components:
Downloads the `docker/` directory, `docker-compose.prod.yml`, and
`.env.example` from the Bigcapital repository. Existing files are archived
with timestamps in the `./archive/` directory.
Automatically creates an `.env` file from `.env.example` if one doesn't
exist. You'll need to edit this file to configure mail settings and
security credentials.
Detects whether your system uses `docker-compose` (legacy) or
`docker compose` (plugin) and uses the appropriate command.
During startup, the script monitors the database migration container and
waits for migrations to complete before reporting success.
Verifies that the API server starts successfully and listens on the
configured port. If migrations fail, the script stops services and
displays an error message.
## Troubleshooting
### Database Migration Fails
If you see "Bigcapital Server failed to start" during startup:
1. Check migration logs: `./setup.sh logs` → Select option 3
2. Fix any configuration issues in `.env`
3. Stop services: `./setup.sh stop`
4. Start again: `./setup.sh start`
### Port Already in Use
If port 8000 is already in use, edit the `.env` file and change the `PORT` variable, or stop the conflicting service.
### Container Conflicts
If you encounter container name conflicts:
```bash theme={null}
./setup.sh stop
docker system prune -a
./setup.sh start
```
`docker system prune` removes all unused containers and images. Only use this
if you're not running other important Docker containers on the same server.
## Next Steps
Learn about all available configuration options
Advanced Docker deployment options
Common issues and solutions
# Signup Restriction
Source: https://docs.bigcapital.app/deployment/signup_restriction
This document describes ways to restrict users from signing up on your self-hosted Bigcapital instance. This configuration is done by editing envirement variables of the instance.
## Disable Signup
The environment variable `SIGNUP_DISABLED` should be set to `true` to disable the signing up of new users. When set, the following facts hold:
* The **Register link** in Login page will disappear but you can access to the page directly through `/auth/register` url and the page will show up but when sign-up the form will throw an error.
* **Uninvited users** cannot sign-up using the signup form.
* **Invited users** can still signup using the signup form.
This environment variable's value does not affect the login behavior of existing users.
```bash theme={null}
SIGNUP_DISABLED=true
```
## Email domains white-list
The environment variable `SIGNUP_ALLOWED_DOMAINS` can be used to restrict signups to emails belonging to only a specific set of domains. This field takes a comma-separated set of values.
Setting `SIGNUP_ALLOWED_DOMAINS`=bigcapital.ly allows [ahmed@bigcapital.ly](mailto:ahmed@bigcapital.ly) to sign up, but not [ahmed@gmail.com](mailto:ahmed@gmail.com).
You should set `SIGNUP_DISABLED` to `true` first to allow a specific set of
domains.
```bash theme={null}
SIGNUP_DISABLED=true
SIGNUP_ALLOWED_DOMAINS=bigcapital.ly,self-hosted.com
```
## Email addresses white-list
The environment variable `SIGNUP_ALLOWED_EMAILS` can be set to a comma-separated list of email addresses, that is always allowed to sign up, irrespective of the above environment variable.
You should set `SIGNUP_DISABLED` to `true` first to allow a specific set of
email addresses.
```bash theme={null}
SIGNUP_DISABLED=true
SIGNUP_ALLOWED_EMAILS=ahmed@bigcapital.ly,hello@gmail.ly
```
These two email addresses can sign up on the Bigcapital instance.
# Troubleshooting
Source: https://docs.bigcapital.app/deployment/troubleshooting
### Ports unavailable
If you encountered that ports 80 or 443 are not available, it's recommended to terminate all processes using these ports and restart them. If it is not possible to stop the processes occupying these ports, **you can modify the public port of the application proxy and re-run Bigcapital once more**.
1. From `.env` there are two envirment variable for proxy port, change these ports to your custom port as shown in the below example.
```bash theme={null}
# App Proxy
PUBLIC_PROXY_PORT=8000
PUBLIC_PROXY_SSL_PORT=443
```
2. Run `docker-compose up -d`
To stop a previous version of Bigcapital running on these ports, run the following:
Stop production containers: `docker-compose --file docker-compose.prod.yml down`
Stop development containers: `docker-compose down`
Kill all running containers: `docker container kill $(docker ps -q)`
# Development
Source: https://docs.bigcapital.app/development
Thank you for considering contributing to our project! We appreciate your interest and welcome any contributions you may have.
Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution.
## Contributing Guidelines
#### For Pull Request(s)
Contributions via pull requests are much appreciated. Once the approach is agreed upon ✅, make your changes and open a Pull Request(s). Before sending us a pull request, please ensure that,
* Fork the repo on GitHub, clone it on your machine.
* Create a branch with your changes.
* You are working against the latest source on the `develop` branch.
* Modify the source; please focus only on the specific change.
* Ensure local tests pass.
* Commit to your fork using clear commit messages.
* Send us a pull request.
* Pay attention to any automated CI failures reported in the pull request.
* Stay involved in the conversation
Please note: If you want to work on an issue, please ask the maintainers to
assign the issue to you before starting work on it. This would help us
understand who is working on an issue and prevent duplicate work. 🙏🏻
***
## Local Setup Prerequisites
* The application currently supports **Node.js v18.x**.
* `pnpm` packages manager, (from pnpm [guide](https://pnpm.io/installation) pick any installation method).
## Contribute to Backend
* Clone the `bigcapital` repository and `cd` into `bigcapital` directory.
* Create `.env` file by copying `.env.example` file to `.env`. (The `.env.example` file has all the necessary values of variables to start development directly).
```bash theme={null}
cp .env.example .env
```
* Install all npm dependencies of the monorepo, you don't have to change directory to the `backend` package. just hit the command on root directory and it will install dependencies of all packages.
```bash theme={null}
pnpm install
```
* Run all required docker containers in the development, we already configured all containers under `docker-compose.yml`.
```bash theme={null}
docker-compose up -d
```
Wait some seconds, and hit `docker-compose ps` and you should see the same result below.
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d974edfab9df bigcapital-mysql "docker-entrypoint.s…" 7 seconds ago Up 1 second 0.0.0.0:3306->3306/tcp, 33060/tcp bigcapital-mysql-1
cefa73fe2881 bigcapital-redis "docker-entrypoint.s…" 7 seconds ago Up 1 second 6379/tcp bigcapital-redis-1
1ea059198cb4 bigcapital-mongo "docker-entrypoint.s…" 7 seconds ago Up 1 second 0.0.0.0:27017->27017/tcp bigcapital-mongo-1
```
* There're some CLI commands we should run before running the server like databaase migration, so we need to build the `server` app first.
```bash theme={null}
pnpm run build:server
```
* Run the database migration for system database.
```bash theme={null}
node packages/server/build/commands.js system:migrate:latest
```
And you should get something like that.
```bash theme={null}
Batch 1 run: 6 migrations
```
* Next, start the webapp application.
```bash theme={null}
pnpm run dev:server
```
***
## Contribute to Frontend
* Clone the `bigcapital` repository and cd into `bigcapital` directory.
```
git clone https://github.com/bigcapital/bigcapital.git && cd bigcaptial
```
* Install all npm dependencies of the monorepo, you don't have to change directory to the `frontend` package. just hit that command and will install all packages across all application.
```bash theme={null}
pnpm install
```
* Next, start the webapp application.
```bash theme={null}
pnpm run dev:webapp
```
***
## Code Review
We welcome constructive criticism and feedback on code submitted by contributors. All feedback should be constructive and respectful, and should focus on the code rather than the contributor. Code review may include suggestions for improvement or changes to the code.
***
## Other Ways to Contribute
There are many other ways to get involved with the community and to participate in this project:
* Use the product, submitting GitHub issues when a problem is found.
* Help code review pull requests and participate in issue threads.
* Submit a new feature request as an issue.
* Help answer questions on forums such as Bigcapital Community Discord Channel.
* Tell others about the project on Twitter, your blog, etc.
Again, Feel free to ping us on [`#contributing`](https://discord.com/invite/c8nPBJafeb) on our Discord community if you need any help on this :)
Thank You!
# Introduction
Source: https://docs.bigcapital.app/index
Welcome to the Bigcapital documentation
This guide will help you to install and setup a production ready Bigcapital.
Learn how to self-host Bigcapital for controlled instance
Discover the Bigcapital’s API to interact with the core system.
# Quickstart
Source: https://docs.bigcapital.app/quickstart
Start building awesome documentation in under 5 minutes
## Setup your development
Learn how to update your docs locally and deploy them to the public.
### Edit and preview
During the onboarding process, we created a repository on your Github with
your docs content. You can find this repository on our
[dashboard](https://dashboard.mintlify.com). To clone the repository
locally, follow these
[instructions](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)
in your terminal.
Previewing helps you make sure your changes look as intended. We built a
command line interface to render these changes locally.
1. Install the
[Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the
documentation changes locally with this command: `npm i -g mintlify`
2. Run the following command at the root of your documentation (where
`docs.json` is): `mintlify dev`
If you’re currently using the legacy `mint.json` configuration file, please update the Mintlify CLI:
`npm i -g mintlify@latest`
And run the new upgrade command in your docs repository:
`mintlify upgrade`
You should now be using the new `docs.json` configuration file. Feel free to delete the `mint.json` file from your repository.
### Deploy your changes
Our Github app automatically deploys your changes to your docs site, so you
don't need to manage deployments yourself. You can find the link to install on
your [dashboard](https://dashboard.mintlify.com). Once the bot has been
successfully installed, there should be a check mark next to the commit hash
of the repo.
[Commit and push your changes to
Git](https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository#about-git-push)
for your changes to update in your docs site. If you push and don't see that
the Github app successfully deployed your changes, you can also manually
update your docs through our [dashboard](https://dashboard.mintlify.com).
## Update your docs
Add content directly in your files with MDX syntax and React components. You can use any of our components, or even build your own.
Add content to your docs with MDX syntax.
Add code directly to your docs with syntax highlighting.
Add images to your docs to make them more engaging.
Add templates to your docs to make them more reusable.