Accounting
Search, create and update invoices, record and apply payments, manage charge types, and send invoices and payments to QuickBooks.
When a payment you create or update has paymentMethodType set to 2 (PaymentMethod), RushHour charges the saved card given in paymentMethod straight away, through your payment processor. This applies to POST /Accounting/Payment, POST /Accounting/Payments, POST /Accounting/BulkPayment, PUT /Accounting/Payment/{id} and PUT /Accounting/Payments. A payment with paymentMethodType 0 (Check) or 1 (Cash) is only recorded; no money moves. If a card payment request fails, check with your payment processor whether the card was charged before you send it again.
Paths are relative to https://api.rushhourapp.com/api/v1. See the API reference overview for how to read each entry.
Invoices, payments and charge types
| Method | Path | Summary |
|---|---|---|
POST | /Accounting | Searches for invoices and payments (transactions) based on provided criteria. |
GET | /Accounting/{id}/Customer | Retrieves detailed information for a specific customer. |
GET | /Accounting/{id}/export | Retrieves previously exported QuickBooks transaction files for a specific invoice. |
GET | /Accounting/{InvoiceId}/contacts | Retrieves customer contact details associated with a specific invoice. |
GET | /Accounting/{InvoiceId}/SentEmails | Retrieves all sent emails associated with a specific invoice. |
GET | /Accounting/AuditLog | Returns the invoice Audit Log (created, set default, edit, approved, sent to QuickBooks, emailed, revised, ...), newest first. |
PUT | /Accounting/AuditLog/{activityId}/note | Adds or updates the user-editable Note on an invoice Audit Log entry. |
DELETE | /Accounting/AuditLog/{activityId}/note | Clears the Note on an invoice Audit Log entry. |
POST | /Accounting/BulkPayment | Record one customer payment split across several invoices. A card payment charges the customer's saved card immediately. |
GET | /Accounting/chargeTypes | Retrieves all active charge types for the current company. |
POST | /Accounting/chargeTypes | Creates a new charge type for the current company. |
DELETE | /Accounting/chargeTypes | Deletes several charge types in one call. |
GET | /Accounting/chargeTypes/{id} | Retrieves details of a specific charge type. |
PUT | /Accounting/chargeTypes/{id} | Updates an existing charge type. |
DELETE | /Accounting/chargeTypes/{id} | Deletes an existing charge type. |
GET | /Accounting/chargeTypes/perStop | Retrieves all active charge types that are applicable per stop. |
GET | /Accounting/customers | Searches for customers based on provided criteria. |
GET | /Accounting/Customers/BasicDetails | Retrieves basic details for customers based on provided criteria. |
POST | /Accounting/DepositAccount | Create deposit account. |
GET | /Accounting/DepositAccounts | Lists the company's "Deposit to" bank accounts, each with its running total. |
POST | /Accounting/export | Exports one or more invoices into a QuickBooks-compatible transaction file. |
POST | /Accounting/invoice | Creates a new invoice for the current company. |
GET | /Accounting/invoice/{id} | Retrieves detailed information for a specific invoice. |
PUT | /Accounting/invoice/{id} | Updates an existing invoice. |
DELETE | /Accounting/invoice/{id} | Deletes an existing invoice by marking it as deleted. |
POST | /Accounting/invoice/{id}/duplicate | Duplicates an existing invoice. |
PUT | /Accounting/invoice/{id}/QBStatus/AddToQB | Marks a downloaded invoice as manually added to QuickBooks. |
PUT | /Accounting/invoice/{id}/QBStatus/CancelQB | Cancels a manual QuickBooks mark that was added by mistake. |
PUT | /Accounting/invoice/{id}/status | Updates the approval status of an invoice. |
GET | /Accounting/InvoiceCheck/{InvoiceNumber} | Validates whether an invoice or order exists for the given number. |
GET | /Accounting/InvoicePayments/{InvoiceId} | Retrieves all payments applied to a specific invoice. |
GET | /Accounting/Invoices | Retrieves a list of invoices with optional filtering by search term, customer, and payment status. |
POST | /Accounting/Invoices/SendQB | Sends invoices and their associated payments to QuickBooks. |
GET | /Accounting/InvoiceStats | Retrieves summary statistics for invoices. |
POST | /Accounting/Payment | Record a customer payment and apply it to invoices. A card payment charges the customer's saved card immediately. |
PUT | /Accounting/Payment/{id} | Update a customer payment. If the update makes it a card payment that has not been charged yet, the customer's saved card is charged immediately. |
DELETE | /Accounting/Payment/{id} | Deletes an existing customer payment. |
DELETE | /Accounting/Payment/Permanent/{id} | Permanently deletes an existing customer payment. |
PUT | /Accounting/Payment/Restore/{id} | Restores a previously deleted customer payment. |
GET | /Accounting/Payments | Lists the payments received in a date range (the Payments Received page). |
POST | /Accounting/Payments | Record several customer payments. Each card payment charges the customer's saved card immediately. |
PUT | /Accounting/Payments | Update several customer payments. Each one that becomes a card payment not yet charged charges the customer's saved card immediately. |
POST | /Accounting/Payments/SendQB | Sends payments to QuickBooks. |
POST /Accounting
Searches for invoices and payments (transactions) based on provided criteria.
Required access: the View Invoices and Payments permission.
Request body: SearchCriteria (JSON).
Response: envelope; data is TransactionPagedList.
GET /Accounting/{id}/Customer
Retrieves detailed information for a specific customer.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the customer. |
Response: envelope; data is Customer.
GET /Accounting/{id}/export
Retrieves previously exported QuickBooks transaction files for a specific invoice.
Required access: the Download data permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the invoice whose exported transaction files are being retrieved. |
Response: envelope; data is array of File.
GET /Accounting/{InvoiceId}/contacts
Retrieves customer contact details associated with a specific invoice.
Required access: the Email Invoice/Payment permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
invoiceId | path | integer (int32) | Yes | Unique identifier of the invoice whose customer contact details are being retrieved. |
Response: envelope; data is array of CustomerContactDetailsResponse.
GET /Accounting/{InvoiceId}/SentEmails
Retrieves all sent emails associated with a specific invoice.
Required access: the View Invoices and Payments permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
invoiceId | path | integer (int32) | Yes | Unique identifier of the invoice whose sent emails are being retrieved. |
suggestCustomerPastSentEmails | query | boolean | No | Optional flag to include suggested past customer sent emails in the response. Default: false. |
Response: envelope; data is array of SentEmail.
GET /Accounting/AuditLog
Returns the invoice Audit Log (created, set default, edit, approved, sent to QuickBooks, emailed, revised, ...), newest first.
Required access: the View Invoices and Payments permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
invoiceId | query | integer (int32) | No | |
orderId | query | integer (int32) | No |
Response: envelope; data is array of InvoiceActivityDto.
PUT /Accounting/AuditLog/{activityId}/note
Adds or updates the user-editable Note on an invoice Audit Log entry.
Required access: the Create/Edit Custom Quote permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
activityId | path | integer (int32) | Yes |
Request body: ActivityNoteDto (JSON).
Response: envelope; data is InvoiceActivityDto.
DELETE /Accounting/AuditLog/{activityId}/note
Clears the Note on an invoice Audit Log entry.
Required access: the Create/Edit Custom Quote permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
activityId | path | integer (int32) | Yes |
Response: envelope; data has no documented shape.
POST /Accounting/BulkPayment
Record one customer payment split across several invoices. A card payment charges the customer's saved card immediately.
Required access: the Add/Edit payment permission.
Request body: Payment (JSON).
Response: envelope; data has no documented shape.
GET /Accounting/chargeTypes
Retrieves all active charge types for the current company.
Required access: the Charge types - view charge types permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
excludeSystemForInvoice | query | boolean | No | When true, charge types flagged as system for Invoice are excluded from the result. Default: false. |
Response: envelope; data is array of ChargeType.
POST /Accounting/chargeTypes
Creates a new charge type for the current company.
Required access: the Charge types - create/edit/delete charge types permission.
Request body: ChargeType (JSON).
Response: envelope; data is ChargeType.
DELETE /Accounting/chargeTypes
Deletes several charge types in one call.
Required access: the Charge types - create/edit/delete charge types permission.
Request body: array of integer (int32) (JSON).
Response: envelope; data is array of ChargeType.
GET /Accounting/chargeTypes/{id}
Retrieves details of a specific charge type.
Required access: the Charge types - view charge types permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the charge type to retrieve. |
Response: envelope; data is ChargeType.
PUT /Accounting/chargeTypes/{id}
Updates an existing charge type.
Required access: the Charge types - create/edit/delete charge types permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the charge type to update. |
Request body: ChargeType (JSON).
Response: envelope; data is ChargeType.
DELETE /Accounting/chargeTypes/{id}
Deletes an existing charge type.
Required access: the Charge types - create/edit/delete charge types permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the charge type to delete. |
Response: envelope; data is ChargeType.
GET /Accounting/chargeTypes/perStop
Retrieves all active charge types that are applicable per stop.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
customerId | query | integer (int32) | No | Optional. |
Response: envelope; data is array of ChargeType.
GET /Accounting/customers
Searches for customers based on provided criteria.
Also accepts the shared list parameters.
Response: envelope; data is CustomerPagedList.
GET /Accounting/Customers/BasicDetails
Retrieves basic details for customers based on provided criteria.
Also accepts the shared list parameters.
Response: envelope; data is CustomerListDtoPagedList.
POST /Accounting/DepositAccount
Create deposit account.
Required access: the Add/Edit payment permission.
Request body: DepositAccount (JSON).
Response: envelope; data is DepositAccount.
GET /Accounting/DepositAccounts
Lists the company's "Deposit to" bank accounts, each with its running total.
Required access: the View Invoices and Payments permission.
Response: envelope; data is array of DepositAccount.
POST /Accounting/export
Exports one or more invoices into a QuickBooks-compatible transaction file.
Required access: the Download data permission.
Request body: array of integer (int32) (JSON).
Response: envelope; data is File.
POST /Accounting/invoice
Creates a new invoice for the current company.
Required access: the Create/Edit Custom Quote permission.
Request body: Invoice (JSON).
Response: envelope; data is InvoiceCreatedDto.
GET /Accounting/invoice/{id}
Retrieves detailed information for a specific invoice.
Required access: the View Invoices and Payments permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the invoice. |
byCustomer | query | boolean | No | If true, retrieves invoice by customer reference instead of search criteria. Default: false. |
includeOrder | query | boolean | No | Flag indicating whether related order details should be included in the response. Default: false. |
includePaymentMethod | query | boolean | No | Flag indicating whether related payment method details should be included in the response. Default: false. |
referenceId | query | integer (int32) | No | Optional reference identifier. |
tnxType | query | string | No | Transaction type context (Invoice or Payment). One of: Invoice, Payment. |
Also accepts the shared list parameters.
Response: envelope; data is Invoice.
PUT /Accounting/invoice/{id}
Updates an existing invoice.
Required access: the Create/Edit Custom Quote permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the invoice to update. |
Request body: Invoice (JSON).
Response: envelope; data is Invoice.
DELETE /Accounting/invoice/{id}
Deletes an existing invoice by marking it as deleted.
Required access: the Create/Edit Custom Quote permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the invoice to delete. |
Response: envelope; data has no documented shape.
POST /Accounting/invoice/{id}/duplicate
Duplicates an existing invoice.
Required access: the Create/Edit Custom Quote permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the invoice to duplicate. |
Response: envelope; data is boolean.
PUT /Accounting/invoice/{id}/QBStatus/AddToQB
Marks a downloaded invoice as manually added to QuickBooks.
Required access: the Send QB permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes |
Response: envelope; data is Invoice.
PUT /Accounting/invoice/{id}/QBStatus/CancelQB
Cancels a manual QuickBooks mark that was added by mistake.
Required access: the Send QB permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes |
Response: envelope; data is Invoice.
PUT /Accounting/invoice/{id}/status
Updates the approval status of an invoice.
Required access: the Create/Edit Custom Quote permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the invoice. |
status | query | integer (int32) | No | Desired approval status for the invoice (Approved or Unapproved). One of: 1 (Draft), 2 (Approved). |
Response: envelope; data has no documented shape.
GET /Accounting/InvoiceCheck/{InvoiceNumber}
Validates whether an invoice or order exists for the given number.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
invoiceNumber | path | string | Yes | The invoice or order number to validate. |
Response: envelope; data is integer (int32).
GET /Accounting/InvoicePayments/{InvoiceId}
Retrieves all payments applied to a specific invoice.
Required access: the View Invoices and Payments permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
invoiceId | path | integer (int32) | Yes | Unique identifier of the invoice whose payments are being retrieved. |
Response: envelope; data is array of Payment.
GET /Accounting/Invoices
Retrieves a list of invoices with optional filtering by search term, customer, and payment status.
Required access: the View Invoices and Payments permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
customerId | query | integer (int32) | No | Optional customer ID to filter invoices by customer. |
isFullyPaid | query | boolean | No | |
itemsPerPage | query | integer (int32) | No | Page size. |
page | query | integer (int32) | No | 1-based page number. |
SearchTerm | query | string | No | Optional search term to filter invoices by invoice number. |
Response: envelope; data is InvoicePagedList.
POST /Accounting/Invoices/SendQB
Sends invoices and their associated payments to QuickBooks.
Required access: the Send QB permission.
Request body: array of integer (int32) (JSON).
Response: envelope; data is QuickbooksInvoiceSendBatchResult.
GET /Accounting/InvoiceStats
Retrieves summary statistics for invoices.
Required access: the View Invoices and Payments permission.
Response: envelope; data is InvoiceStats.
POST /Accounting/Payment
Record a customer payment and apply it to invoices. A card payment charges the customer's saved card immediately.
Required access: the Add/Edit payment permission.
Request body: Payment (JSON).
Response: envelope; data has no documented shape.
PUT /Accounting/Payment/{id}
Update a customer payment. If the update makes it a card payment that has not been charged yet, the customer's saved card is charged immediately.
Required access: the Add/Edit payment permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the payment to update. |
Request body: Payment (JSON).
Response: envelope; data is Payment.
DELETE /Accounting/Payment/{id}
Deletes an existing customer payment.
Required access: the Company Admin role.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the payment to delete. |
Response: envelope; data has no documented shape.
DELETE /Accounting/Payment/Permanent/{id}
Permanently deletes an existing customer payment.
Required access: the Company Admin role.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the payment to permanently delete. |
Response: envelope; data has no documented shape.
PUT /Accounting/Payment/Restore/{id}
Restores a previously deleted customer payment.
Required access: the Company Admin role.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | integer (int32) | Yes | Unique identifier of the payment to restore. |
Response: envelope; data is Payment.
GET /Accounting/Payments
Lists the payments received in a date range (the Payments Received page).
Required access: the View Invoices and Payments permission.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
customerId | query | integer (int32) | No | Optional customer ID to restrict the period to one customer. |
from | query | string (date-time) | No | Start of the period (inclusive). |
to | query | string (date-time) | No | End of the period (inclusive). |
Response: envelope; data is array of Payment.
POST /Accounting/Payments
Record several customer payments. Each card payment charges the customer's saved card immediately.
Required access: the Add/Edit payment permission.
Request body: array of Payment (JSON).
Response: envelope; data has no documented shape.
PUT /Accounting/Payments
Update several customer payments. Each one that becomes a card payment not yet charged charges the customer's saved card immediately.
Required access: the Add/Edit payment permission.
Request body: array of Payment (JSON).
Response: envelope; data is array of Payment.
POST /Accounting/Payments/SendQB
Sends payments to QuickBooks.
Required access: the Send QB permission.
Request body: array of integer (int32) (JSON).
Response: envelope; data is QuickbooksPaymentSendBatchResult.