Skip to main content

Accounting

Search, create and update invoices, record and apply payments, manage charge types, and send invoices and payments to QuickBooks.

Card payments charge the customer

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​

MethodPathSummary
POST/AccountingSearches for invoices and payments (transactions) based on provided criteria.
GET/Accounting/{id}/CustomerRetrieves detailed information for a specific customer.
GET/Accounting/{id}/exportRetrieves previously exported QuickBooks transaction files for a specific invoice.
GET/Accounting/{InvoiceId}/contactsRetrieves customer contact details associated with a specific invoice.
GET/Accounting/{InvoiceId}/SentEmailsRetrieves all sent emails associated with a specific invoice.
GET/Accounting/AuditLogReturns the invoice Audit Log (created, set default, edit, approved, sent to QuickBooks, emailed, revised, ...), newest first.
PUT/Accounting/AuditLog/{activityId}/noteAdds or updates the user-editable Note on an invoice Audit Log entry.
DELETE/Accounting/AuditLog/{activityId}/noteClears the Note on an invoice Audit Log entry.
POST/Accounting/BulkPaymentRecord one customer payment split across several invoices. A card payment charges the customer's saved card immediately.
GET/Accounting/chargeTypesRetrieves all active charge types for the current company.
POST/Accounting/chargeTypesCreates a new charge type for the current company.
DELETE/Accounting/chargeTypesDeletes 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/perStopRetrieves all active charge types that are applicable per stop.
GET/Accounting/customersSearches for customers based on provided criteria.
GET/Accounting/Customers/BasicDetailsRetrieves basic details for customers based on provided criteria.
POST/Accounting/DepositAccountCreate deposit account.
GET/Accounting/DepositAccountsLists the company's "Deposit to" bank accounts, each with its running total.
POST/Accounting/exportExports one or more invoices into a QuickBooks-compatible transaction file.
POST/Accounting/invoiceCreates 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}/duplicateDuplicates an existing invoice.
PUT/Accounting/invoice/{id}/QBStatus/AddToQBMarks a downloaded invoice as manually added to QuickBooks.
PUT/Accounting/invoice/{id}/QBStatus/CancelQBCancels a manual QuickBooks mark that was added by mistake.
PUT/Accounting/invoice/{id}/statusUpdates 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/InvoicesRetrieves a list of invoices with optional filtering by search term, customer, and payment status.
POST/Accounting/Invoices/SendQBSends invoices and their associated payments to QuickBooks.
GET/Accounting/InvoiceStatsRetrieves summary statistics for invoices.
POST/Accounting/PaymentRecord 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/PaymentsLists the payments received in a date range (the Payments Received page).
POST/Accounting/PaymentsRecord several customer payments. Each card payment charges the customer's saved card immediately.
PUT/Accounting/PaymentsUpdate several customer payments. Each one that becomes a card payment not yet charged charges the customer's saved card immediately.
POST/Accounting/Payments/SendQBSends 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
invoiceIdpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
invoiceIdpathinteger (int32)YesUnique identifier of the invoice whose sent emails are being retrieved.
suggestCustomerPastSentEmailsquerybooleanNoOptional 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

NameInTypeRequiredDescription
invoiceIdqueryinteger (int32)No
orderIdqueryinteger (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

NameInTypeRequiredDescription
activityIdpathinteger (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

NameInTypeRequiredDescription
activityIdpathinteger (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

NameInTypeRequiredDescription
excludeSystemForInvoicequerybooleanNoWhen 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
customerIdqueryinteger (int32)NoOptional.

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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique identifier of the invoice.
byCustomerquerybooleanNoIf true, retrieves invoice by customer reference instead of search criteria. Default: false.
includeOrderquerybooleanNoFlag indicating whether related order details should be included in the response. Default: false.
includePaymentMethodquerybooleanNoFlag indicating whether related payment method details should be included in the response. Default: false.
referenceIdqueryinteger (int32)NoOptional reference identifier.
tnxTypequerystringNoTransaction 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (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

NameInTypeRequiredDescription
idpathinteger (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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique identifier of the invoice.
statusqueryinteger (int32)NoDesired 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

NameInTypeRequiredDescription
invoiceNumberpathstringYesThe 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

NameInTypeRequiredDescription
invoiceIdpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
customerIdqueryinteger (int32)NoOptional customer ID to filter invoices by customer.
isFullyPaidquerybooleanNo
itemsPerPagequeryinteger (int32)NoPage size.
pagequeryinteger (int32)No1-based page number.
SearchTermquerystringNoOptional 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
idpathinteger (int32)YesUnique 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

NameInTypeRequiredDescription
customerIdqueryinteger (int32)NoOptional customer ID to restrict the period to one customer.
fromquerystring (date-time)NoStart of the period (inclusive).
toquerystring (date-time)NoEnd 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.