Skip to content

Money API

Richard Salt edited this page Mar 18, 2021 · 33 revisions

Use the Money API to create bills, office debits & credits, and client debits & credits in Quill Interactive

Money API (Bills & Disbursements)

The Money API provides integrators with the following features:

  • Create Bill with fee, disbursement, and expense detail
  • Create Office Debit e.g. disbursement / expense paid out of Office
  • Create Client Debit e.g. disbursement / expense paid out of Client
  • Create Office Credit e.g. funds received to pay a bill
  • Create Client Credit e.g. mortgage lender funds received to client

Only POST methods are supported i.e. you can only create new items. You cannot update (PUT) or delete (DELETE) via this API. So, any updates or deletes can be managed manually by the user within the Quill Interactive UI.

Create Bills

The Create Bill endpoint allows integrators to mimic the same functionality as the Bill Echit in Interactive.

Supported areas of the Bill are:

  • Profit Costs - with Fees received
  • Manage Expenses - with Expenses received
  • Manage Disbursements - with Disbursements received

Un-supported areas of the Bill are:

  • Profit Costs split, uplift, WIP
  • TT Charges
  • Misc Charges

The screenshot below shows which fields are expected (see the "Parameters" section below to see how the data in these fields needs to be provided)

money-bills

POST /api/{tenant-uri}/money/bills/

Name Type Description
displayCode str(12) Required. Case code
narrative str Required. details about the transaction
reference str Required. The Bill’s Reference. If using auto-referencing then a value of “AUTO” must be provided, otherwise a custom reference of up to 6 characters can be provided
feeItems feeItem[] Optional. Fee items are equivalent to the "Profit Cost" rows (see screenshot above) and consist of { Cost (decimal); vatRateId (char); vatValue (decimal) } if feeItems are provided, all 3 properties are required per item
expenseItems expenseItem[] Optional. Expense items are equivalent to the "Manage Expenses" rows (see screenshot above) and consist of { date (dateTime); description (str); cost (decimal); vatRateId (char); vatValue (decimal) } if expenseItems are provided, all properties except date are required per item
disbursementItems disbursementItem[] Optional. Disbursement items are equivalent to the "Manage Disbursement" rows (see screenshot above) and consist of { date (dateTime); description (str); cost (decimal); vatRateId (char); vatValue (decimal) } if disbursementItems are provided, all properties except date are required per item

Lookup dependencies

  • VAT Rate Id: GET /Money/TaxRates

Example

Response

  • Status: 201 = Created
  • Status: 400 = Bad request

Create Office Debits

e.g. pay a disbursement/expense out of the office ledger; or pay a supplier; or pay out of a nominal ledger (such as rent)

The Create Office Debit endpoint allows integrators to mimic the same functionality as the Office Debit Echit in Interactive.

The screenshot below shows which fields are expected (see the "Parameters" section below to see how the data in these fields needs to be provided)

money-office-debits

POST /api/{tenant-uri}/money/office/debits/

Name Type Description
paymentMethod str(6) Required. The Id of the Payment Method. Lookup value: Payment Method Id
account obj Object containing displayCode; nominalBranch and nominalCode; or supplierCode
- displayCode str(12) The Display Code of the Case. If displayCode is provided, an "account type" of "Matter" is assumed
- nominalBranch int The Id of the Nominal Branch. If nominalBranch and nominalCode are provided, an "account type" of "Nominal" is assumed
- nominalCode str The Id of the Nominal. If nominalCode and nominalBranch are provided, an "account type" of "Nominal" is assumed
- supplierCode int The Id of the Supplier. If supplierCode is provided, an "account type" of "Supplier" is assumed
bank lookup str Required. The Id of the Bank. Lookup value: Bank Account Id
disbCategory lookup int Required. The Id of the Disbursement Category. Lookup value: Disbursement Category Id
disbType lookup str Required. The Id of the Disbursement Type. Lookup value: Disbursement Type Id
amount obj Object containing vatable, vat, net and total
- vat decimal VAT amount. Not applicable if account type = "Supplier"
- vatRateId char VAT Rate Id. Not applicable if account type = "Supplier"
- net decimal Net amount. Required if account type = "Matter" or "Nominal"
- total decimal Total (gross) amount. Required if account type = "Supplier"
date dateTime Required. Date transaction occurred
reference str(8) Required. Transaction reference
payee str(100) Required. Payee
paymentDetails obj Object containing accountNumber, sortCode, iban, bicCode and paymentReference
- accountNumber str bank account number. If accountNumber and sortCode are provided, a Payment Destination of "Domestic" is assumed
- sortCode str bank sortcode. If accountNumber and sortCode are provided, a Payment Destination of "Domestic" is assumed
- iban str Net amount. if iban and bicCode
- bicCode str Total (gross) amount. Required if account type = "Supplier"
- paymentReference str(18) Total (gross) amount. Required if account type = "Supplier"
narrative str(200) Required. details about the transaction
notes str notes about the transaction

Lookup dependencies

  • Payment Method: GET /Money/PaymentMethods
  • Bank Account: GET /Money/BankAccounts
  • Disbursement Type: GET /Money/DisbursementTypes
  • Disbursement Category: GET /Money/DisbursementCategories
  • VAT Rate: GET /Money/TaxRates

Examples

Response

  • Status: 201 = Created
  • Status: 400 = Bad request if any of the following occur:
    • The displayCode provided is not found within the system
    • The net amount provided for a Matter or Nominal account is 0
    • The nominalBranch provided does not belong to the given nominal
    • The total amount provided for a Supplier account is 0
    • The account type could not be inferred by the account information provided i.e. if displayCode AND supplierCode are sent
    • Both domestic AND international payment details are provided

Create Client Debits

e.g. pay out funds from the client ledger account

The Create Client Debit endpoint allows integrators to mimic the Client Debit Echit in Interactive.

The screenshot below shows which fields are expected (see the "Parameters" section below to see how the data in these fields needs to be provided)

money-client-debits

Lookup dependencies

  • Payment Method Id: GET /Money/PaymentMethods
  • Bank Account Id: GET /Money/BankAccounts

POST /api/{tenant-uri}/money/client/debits/

Name Type Description
paymentMethod str(6) Required. The Id of the Payment Method. Lookup value: Payment Method Id
account str Required. displayCode of the Case (aka Matter)
bank lookup str Required. The Id of the Bank. Lookup value: Bank Account Id
amount decimal Required. the amount of the payment
date dateTime Required. Date transaction occurred
reference str(8) Required. Transaction reference
payee str(100) Required. full name of the payee - the entity that will receive the money
paymentDetails obj Object containing accountNumber, sortCode, iban, bicCode and paymentReference
- accountNumber str bank account number. If accountNumber and sortCode are provided, a Payment Destination of "Domestic" is assumed
- sortCode str bank sortcode. If accountNumber and sortCode are provided, a Payment Destination of "Domestic" is assumed
- iban str Net amount. if iban and bicCode
- bicCode str Total (gross) amount. Required if account type = "Supplier"
- paymentReference str(18) Total (gross) amount. Required if account type = "Supplier"
narrative str(200) Required. details about the transaction
notes str notes about the transaction

Examples

https://github.com/quillpinpoint/interactive-api/blob/main/curl-examples/money-api/post-client-debit

Response

  • Status: 201 = Created
  • Status: 400 = Bad request if any of the following occur:
    • The displayCode provided is not found within the system
    • The total amount provided is 0
    • Both domestic AND international payment details are provided

Create Office Credits

e.g. funds received from the client to pay a bill

The Create Office Credits endpoint allows integrators to mimic the same functionality as the Office Credit Echit in Interactive.

The screenshot below shows which fields are expected (see the "Parameters" section below to see how the data in these fields needs to be provided)

money-office-credits

POST /api/{tenant-uri}/money/office/credits/

Name Type Description
paymentMethod str(6) Required. The Id of the Payment Method. Lookup value: Payment Method Id
account obj Object containing displayCode; or nominalBranch and nominalCode
- displayCode str(12) The Display Code of the Case. If displayCode is provided, an "account type" of "Matter" is assumed
- nominalBranch int The Id of the Nominal Branch. If nominalBranch and nominalCode are provided, an "account type" of "Nominal" is assumed
- nominalCode str The Id of the Nominal. If nominalCode and nominalBranch are provided, an "account type" of "Nominal" is assumed
bank lookup str Required. The Id of the Bank. Lookup value: Bank Account Id
amount decimal Required. amount of transaction
date dateTime Required. Date transaction occurred
receivedFrom str Required. full name of the payer - the entity that is paying
reference str(8) Required. Transaction reference
narrative str(200) Required. details about the transaction
notes str notes about the transaction

Lookup dependencies

  • Payment Method Id: GET /Money/PaymentMethods
  • Bank Account Id: GET /Money/BankAccounts

Example

https://github.com/quillpinpoint/interactive-api/blob/main/curl-examples/money-api/post-office-credit

Response

  • Status: 201 = Created
  • Status: 400 = Bad request if any of the following occur:
    • The displayCode provided is not found within the system
    • The net amount provided for a Matter or Nominal account is 0
    • The nominalBranch provided does not belong to the given nominal
    • The total amount provided for a Supplier account is 0
    • The account type could not be inferred by the account information provided i.e. if displayCode AND supplierCode are sent

Create Client Credits

e.g. mortgage lender funds received to client

The Create Client Credits endpoint allows integrators to mimic the same functionality as the Client Credit Echit in Interactive.

The screenshot below shows which fields are expected (see the "Parameters" section below to see how the data in these fields needs to be provided)

money-client-credits

POST /api/{tenant-uri}/money/client/credits/

Name Type Description
paymentMethod str(6) Required. The Id of the Payment Method. Lookup value: Payment Method Id
account str Required. displayCode of the Case (aka Matter)
bank lookup str Required. The Id of the Bank. Lookup value: Bank Account Id
amount decimal Required. amount of transaction
date dateTime Required. Date transaction occurred
receivedFrom str Required. full name of the payer - the entity that is paying
reference str(8) Required. Transaction reference
narrative str(200) Required. details about the transaction
notes str notes about the transaction

Lookup dependencies

  • Payment Method Id: GET /Money/PaymentMethods
  • Bank Account Id: GET /Money/BankAccounts

Example

https://github.com/quillpinpoint/interactive-api/blob/main/curl-examples/money-api/post-client-credit

Response

  • Status: 201 = Created
  • Status: 400 = Bad request if any of the following occur:
    • The displayCode provided is not found within the system
    • The total amount provided is 0

Lookup endpoints


END

Clone this wiki locally