@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Big Red Cloud API
@base https://app.bigredcloud.com/api
@version v1
@auth ApiKey (inferred from docs)
@endpoints 120
@hint download_for_search
@toc accounts(1), analysisCategories(1), bankAccounts(6), bookTranTypes(1), cashPayments(6), cashReceipts(6), categoryTypes(1), companySettings(1), companySetupConfig(4), customers(11), email(3), nominalAccounts(4), ownerTypeGroups(1), ownerTypes(1), payments(6), products(7), productTypes(1), purchases(7), quotes(10), sales(1), salesCreditNotes(7), salesEntries(6), salesInvoices(7), salesReps(6), suppliers(9), userDefinedFields(1), vatAnalysisTypes(1), vatCategories(2), vatRates(1), vatTypes(1)

@group accounts
@endpoint GET /v1/accounts
@desc Returns a list of company's Accounts. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group analysisCategories
@endpoint GET /v1/analysisCategories
@desc Returns a list of company's Analysis Categories. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group bankAccounts
@endpoint GET /v1/bankAccounts
@desc Returns a list of company's Bank Account. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/bankAccounts
@desc Creates a new Bank Account.
@required {item: map # Information of Bank Account to create.}
@returns(200) OK

@endpoint GET /v1/bankAccounts/{id}
@desc Returns information about a single Bank Account.
@required {id: any # Id of Bank Account to return.}
@returns(200) OK

@endpoint PUT /v1/bankAccounts/{id}
@desc Updates an existing Bank Account.
@required {id: any # Id of Bank Account to update., item: map # Information of Bank Account to update.}
@returns(200) OK

@endpoint DELETE /v1/bankAccounts/{id}
@desc Removes an existing Bank Account.
@required {id: any # Id of Bank Account to remove., timestamp: any # Timestamp of Bank Account to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/bankAccounts/batch
@desc Processes a batch of Bank Accounts.
@required {items: [map] # Batch of Bank Accounts to process.}
@returns(200) OK

@endgroup

@group bookTranTypes
@endpoint GET /v1/bookTranTypes
@desc Returns a list of global Book Transactions' Types. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group cashPayments
@endpoint GET /v1/cashPayments
@desc Returns a list of company's Cash Payments. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/cashPayments
@desc Creates a new Cash Payment.
@required {item: map # Information of Cash Receipt to create.}
@returns(200) OK

@endpoint GET /v1/cashPayments/{id}
@desc Returns information about a single Cash Payment.
@required {id: any # Id of Cash Receipt to return.}
@returns(200) OK

@endpoint PUT /v1/cashPayments/{id}
@desc Updates an existing Cash Payment.
@required {id: any # Id of Cash Receipt to update., item: map # Information of Cash Receipt to update.}
@returns(200) OK

@endpoint DELETE /v1/cashPayments/{id}
@desc Removes an existing Cash Payment.
@required {id: any # Id of Cash Receipt to remove., timestamp: any # Timestamp of Cash Receipt to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/cashPayments/batch
@desc Processes a batch of Cash Payments.
@required {items: [map] # Batch of Cash Receipts to process.}
@returns(200) OK

@endgroup

@group cashReceipts
@endpoint GET /v1/cashReceipts
@desc Returns a list of company's Cash Receipts. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/cashReceipts
@desc Creates a new Cash Receipt.
@required {item: map # Information of Cash Receipt to create.}
@returns(200) OK

@endpoint GET /v1/cashReceipts/{id}
@desc Returns information about a single Cash Receipt.
@required {id: any # Id of Cash Receipt to return.}
@returns(200) OK

@endpoint PUT /v1/cashReceipts/{id}
@desc Updates an existing Cash Receipt.
@required {id: any # Id of Cash Receipt to update., item: map # Information of Cash Receipt to update.}
@returns(200) OK

@endpoint DELETE /v1/cashReceipts/{id}
@desc Removes an existing Cash Receipt.
@required {id: any # Id of Cash Receipt to remove., timestamp: any # Timestamp of Cash Receipt to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/cashReceipts/batch
@desc Processes a batch of Cash Receipts.
@required {items: [map] # Batch of Cash Receipts to process.}
@returns(200) OK

@endgroup

@group categoryTypes
@endpoint GET /v1/categoryTypes
@desc Returns a list of company's Category Types. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group companySettings
@endpoint GET /v1/companySettings
@desc Returns a list of company settings. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group companySetupConfig
@endpoint GET /v1/companySetupConfig
@desc Returns the company configuration settings.
@returns(200) OK

@endpoint GET /v1/companySetupConfig/getFinancialYear
@desc Returns the financial year.
@returns(200) OK

@endpoint GET /v1/companySetupConfig/getCompanyOptions
@desc Returns the company option setting.
@returns(200) OK

@endpoint GET /v1/companySetupConfig/getCompanyLogo
@desc Returns the company logo.
@returns(200) OK

@endgroup

@group customers
@endpoint GET /v1/customers
@desc Returns a list of company's Customers. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/customers
@desc Creates a new Customer.
@required {item: map # Information of Customer to create.}
@returns(200) OK

@endpoint GET /v1/customers/{id}
@desc Returns information about a single Customer. You may specify that Customer's ledger balance should be calculated.
@required {id: any # Id of Customer to return.}
@optional {needBalance: any # If "true" then Customer's ledger balance will be calculated; otherwise balance will be returned as 0.}
@returns(200) OK

@endpoint PUT /v1/customers/{id}
@desc Updates an existing Customer.
@required {id: any # Id of Customer to update., item: map # Information of Customer to update.}
@returns(200) OK

@endpoint DELETE /v1/customers/{id}
@desc Removes an existing Customer.
@required {id: any # Id of Customer to remove., timestamp: any # Timestamp of Customer to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint GET /v1/customers/GetWithoutDormant
@desc Returns a list of company's Customers without dormant records. Supports OData querying protocol.
@returns(200) OK

@endpoint PUT /v1/customers/batch
@desc Processes a batch of Customers.
@required {items: [map] # Batch of Customers to process.}
@returns(200) OK

@endpoint GET /v1/customers/{itemId}/openingBalance
@desc Returns a Customer's opening balances, calculated for the next periods: current month, one month old, two months old, three and more months old.
@required {itemId: any # Id of Customer to return opening balances.}
@returns(200) OK

@endpoint GET /v1/customers/{itemId}/openingBalanceList
@desc Returns a list of Customer's opening balance transactions.
@required {itemId: any # Id of Customer to return opening balances transaction.}
@returns(200) OK

@endpoint GET /v1/customers/{itemId}/accountTrans
@desc Returns a list of Customer's account transactions.
@required {itemId: any # Id of Customer to return account transaction.}
@returns(200) OK

@endpoint GET /v1/customers/{itemId}/quotes
@desc Returns a list of Customer's quotes.
@required {itemId: any # Id of Customer to return quotes.}
@returns(200) OK

@endgroup

@group email
@endpoint POST /v1/email/sendSalesInvoice
@desc Sends a Sales Invoice email.
@required {salesInvoiceEmailInfo: map}
@returns(200) OK

@endpoint POST /v1/email/sendEmailStatement
@desc Sends a Statement email.
@required {emailStatementDto: map}
@returns(200) OK

@endpoint POST /v1/email/sendQuote
@desc Sends a Quote email.
@required {emailQuoteDto: map}
@returns(200) OK

@endgroup

@group nominalAccounts
@endpoint GET /v1/nominalAccounts
@desc Returns a list of company's Nominal Accounts. Supports OData querying protocol.
@returns(200) OK

@endpoint GET /v1/nominalAccounts/{id}
@desc Returns information about a single Nominal Account.
@required {id: any # Id of Nominal Account to return.}
@returns(200) OK

@endpoint GET /v1/nominalAccounts/ledger
@desc Returns information about Nominal Ledger from all Nominal accounts.
@required {startDate: any # (yyyy-MM-dd) First day of month and belong to current financial year, endDate: any # (yyyy-MM-dd) Last day of month and belong to current financial year}
@returns(200) OK

@endpoint GET /v1/nominalAccounts/ledger/{ids}
@desc Returns information about Nominal Ledger from specific Nominal Accounts.
@required {ids: any # Ids of Nominal Accounts, can contain up to 100 semicolon delimited ids., startDate: any # (yyyy-MM-dd) First day of month and belong to current financial year, endDate: any # (yyyy-MM-dd) Last day of month and belong to current financial year}
@returns(200) OK

@endgroup

@group ownerTypeGroups
@endpoint GET /v1/ownerTypeGroups
@desc Returns a list of global Owner Type Groups. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group ownerTypes
@endpoint GET /v1/ownerTypes
@desc Returns a list of global Owner Types. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group payments
@endpoint GET /v1/payments
@desc Returns a list of company's Payments. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/payments
@desc Creates a new Payment.
@required {item: map # Information of Payment to create.}
@returns(200) OK

@endpoint GET /v1/payments/{id}
@desc Returns information about a single Payments.
@required {id: any # Id of Payment to return.}
@returns(200) OK

@endpoint PUT /v1/payments/{id}
@desc Updates an existing Payment.
@required {id: any # Id of Payment to update., item: map # Information of Payment to update.}
@returns(200) OK

@endpoint DELETE /v1/payments/{id}
@desc Removes an existing Payment.
@required {id: any # Id of Payment to remove., timestamp: any # Timestamp of Payment to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/payments/batch
@desc Processes a batch of Payments.
@required {items: [map] # Batch of Payments to process.}
@returns(200) OK

@endgroup

@group products
@endpoint GET /v1/products
@desc Returns a list of company's Products. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/products
@desc Creates a new Product.
@required {item: map # Information of Product to create.}
@returns(200) OK

@endpoint GET /v1/products/{id}
@desc Returns information about a single Product.
@required {id: any # Id of Product to return.}
@returns(200) OK

@endpoint PUT /v1/products/{id}
@desc Updates an existing Product.
@required {id: any # Id of Product to update., item: map # Information of Product to update.}
@returns(200) OK

@endpoint DELETE /v1/products/{id}
@desc Removes an existing Product.
@required {id: any # Id of Product to remove., timestamp: any # Timestamp of Product to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint GET /v1/products/GetWithoutDormant
@desc Returns a list of company's Products without dormant records. Supports OData querying protocol.
@returns(200) OK

@endpoint PUT /v1/products/batch
@desc Processes a batch of Products.
@required {items: [map] # Batch of Products to process.}
@returns(200) OK

@endgroup

@group productTypes
@endpoint GET /v1/productTypes
@desc Returns a list of global Product Types. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group purchases
@endpoint GET /v1/purchases
@desc Returns a list of company's Purchases. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/purchases
@desc Creates a new Purchase.
@required {item: map # Information of Purchase to create.}
@returns(200) OK

@endpoint GET /v1/purchases/{id}
@desc Returns information about a single Purchases.
@required {id: any # Id of Purchase to return.}
@returns(200) OK

@endpoint PUT /v1/purchases/{id}
@desc Updates an existing Purchase.
@required {id: any # Id of Purchase to update., item: map # Information of Purchase to update.}
@returns(200) OK

@endpoint DELETE /v1/purchases/{id}
@desc Removes an existing Purchase.
@required {id: any # Id of Purchase to remove., timestamp: any # Timestamp of Purchase to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/purchases/batch
@desc Processes a batch of Purchases.
@required {items: [map] # Batch of Purchases to process.}
@returns(200) OK

@endpoint POST /v1/purchases/createPurchaseWithGeneratingReference
@desc Creates a new Purchase with auto generating reference.
@required {item: map # Information of Purchase to create.}
@returns(200) OK

@endgroup

@group quotes
@endpoint GET /v1/quotes
@desc Returns a list of company's Quotes.
@returns(200) OK

@endpoint POST /v1/quotes
@desc Creates a new Quote.
@required {item: map # Information of Quote to create.}
@returns(200) OK

@endpoint GET /v1/quotes/{id}
@desc Returns information about a single Quote.
@required {id: any # Id of Sale Rep to return.}
@returns(200) OK

@endpoint PUT /v1/quotes/{id}
@desc Updates an existing Quote.
@required {id: any # Id of Quote to update., item: map # Information of Quote to update.}
@returns(200) OK

@endpoint DELETE /v1/quotes/{id}
@desc Removes an existing Quote.
@required {id: any # Id of Quote to remove., timestamp: any # Timestamp of Quote to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/quotes/batch
@desc Processes a batch of Quote.
@required {items: [map] # Batch of Quote to process.}
@returns(200) OK

@endpoint PUT /v1/quotes/close/{id}
@desc Close a Quote.
@required {id: any # Id of Quote to close}
@returns(200) OK

@endpoint PUT /v1/quotes/reopen/{id}
@desc Reopen a Quote.
@required {id: any # Id of Quote to reopen}
@returns(200) OK

@endpoint POST /v1/quotes/generateSaleInvoice
@desc Generate a sale invoice from a Quote.
@required {item: map # Id of Quote to generate}
@returns(200) OK

@endpoint POST /v1/quotes/createQuoteWithGeneratingReference
@desc Creates a new Quote with auto generating reference.
@required {item: map # Information of Quote to create.}
@returns(200) OK

@endgroup

@group sales
@endpoint GET /v1/sales
@desc Returns a list of company's Sales Entries, Sales Invoices and Sales Credit Notes. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group salesCreditNotes
@endpoint GET /v1/salesCreditNotes
@desc Returns a list of company's Sales Credit Notes. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/salesCreditNotes
@desc Creates a new Sales Credit Note.
@required {item: map # Information of Sales Credit Note to create.}
@returns(200) OK

@endpoint GET /v1/salesCreditNotes/{id}
@desc Returns information about a single Sales Credit Note.
@required {id: any # Id of Sales Credit Note to return.}
@returns(200) OK

@endpoint PUT /v1/salesCreditNotes/{id}
@desc Updates an existing Sales Credit Note.
@required {id: any # Id of Sales Credit Note to update., item: map # Information of Sales Credit Note to update.}
@returns(200) OK

@endpoint DELETE /v1/salesCreditNotes/{id}
@desc Removes an existing Sales Credit Note.
@required {id: any # Id of Sales Credit Note to remove., timestamp: any # Timestamp of Sales Credit Note to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/salesCreditNotes/batch
@desc Processes a batch of Sales Credit Notes.
@required {items: [map] # Batch of Sales Credit Notes to process.}
@returns(200) OK

@endpoint POST /v1/salesCreditNotes/createCreditNoteWithGeneratingReference
@desc Creates a new Sale Credit Note with auto generating reference.
@required {item: map # Information of Sale Credit Note to create.}
@returns(200) OK

@endgroup

@group salesEntries
@endpoint GET /v1/salesEntries
@desc Returns a list of company's Sales Entries. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/salesEntries
@desc Creates a new Sales Entry.
@required {item: map # Information of Sales Entry to create.}
@returns(200) OK

@endpoint GET /v1/salesEntries/{id}
@desc Returns information about a single Sales Entry.
@required {id: any # Id of Sales Entry to return.}
@returns(200) OK

@endpoint PUT /v1/salesEntries/{id}
@desc Updates an existing Sales Entry.
@required {id: any # Id of Sales Entry to update., item: map # Information of Sales Entry to update.}
@returns(200) OK

@endpoint DELETE /v1/salesEntries/{id}
@desc Removes an existing Sales Entry.
@required {id: any # Id of Sales Entry to remove., timestamp: any # Timestamp of Sales Entry to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/salesEntries/batch
@desc Processes a batch of Sales Entries.
@required {items: [map] # Batch of Sales Entries to process.}
@returns(200) OK

@endgroup

@group salesInvoices
@endpoint GET /v1/salesInvoices
@desc Returns a list of company's Sales Invoices. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/salesInvoices
@desc Creates a new Sales Invoice.
@required {item: map # Information of Sales Invoice to create.}
@returns(200) OK

@endpoint GET /v1/salesInvoices/{id}
@desc Returns information about a single Sales Invoice.
@required {id: any # Id of Sales Invoice to return.}
@returns(200) OK

@endpoint PUT /v1/salesInvoices/{id}
@desc Updates an existing Sales Invoice.
@required {id: any # Id of Sales Invoice to update., item: map # Information of Sales Invoice to update.}
@returns(200) OK

@endpoint DELETE /v1/salesInvoices/{id}
@desc Removes an existing Sales Invoice.
@required {id: any # Id of Sales Invoice to remove., timestamp: any # Timestamp of Sales Invoice to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/salesInvoices/batch
@desc Processes a batch of Sales Invoices.
@required {items: [map] # Batch of Sales Invoices to process.}
@returns(200) OK

@endpoint POST /v1/salesInvoices/createSaleInvoiceWithGeneratingReference
@desc Creates a new Sale Invoice with auto generating reference.
@required {item: map # Information of Sale Invoice to create.}
@returns(200) OK

@endgroup

@group salesReps
@endpoint GET /v1/salesReps
@desc Returns a list of company's SaleRep.
@returns(200) OK

@endpoint POST /v1/salesReps
@desc Creates a new SaleRep.
@required {item: map # Information of Sale Rep to create.}
@returns(200) OK

@endpoint GET /v1/salesReps/{id}
@desc Returns information about a single SaleRep.
@required {id: any # Id of Sale Rep to return.}
@returns(200) OK

@endpoint PUT /v1/salesReps/{id}
@desc Updates an existing Sale Rep.
@required {id: any # Id of Sale Rep to update., item: map # Information of Sale Rep to update.}
@returns(200) OK

@endpoint DELETE /v1/salesReps/{id}
@desc Removes an existing Sale Rep.
@required {id: any # Id of Sale Rep to remove., timestamp: any # Timestamp of Sale Rep to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/salesReps/batch
@desc Processes a batch of Sale Rep.
@required {items: [map] # Batch of Sale Rep to process.}
@returns(200) OK

@endgroup

@group suppliers
@endpoint GET /v1/suppliers
@desc Returns a list of company's Suppliers. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/suppliers
@desc Creates a new Supplier.
@required {item: map # Information of Supplier to create.}
@returns(200) OK

@endpoint GET /v1/suppliers/{id}
@desc Returns information about a single Supplier. You may specify that Supplier's ledger balance should be calculated.
@required {id: any # Id of Supplier to return.}
@optional {needBalance: any # If "true" then Supplier's ledger balance will be calculated; otherwise balance will be returned as 0.}
@returns(200) OK

@endpoint PUT /v1/suppliers/{id}
@desc Updates an existing Supplier.
@required {id: any # Id of Supplier to update., item: map # Information of Supplier to update.}
@returns(200) OK

@endpoint DELETE /v1/suppliers/{id}
@desc Removes an existing Supplier.
@required {id: any # Id of Supplier to remove., timestamp: any # Timestamp of Supplier to remove. Should be encoded in Base64.}
@returns(200) OK

@endpoint PUT /v1/suppliers/batch
@desc Processes a batch of Suppliers.
@required {items: [map] # Batch of Suppliers to process.}
@returns(200) OK

@endpoint GET /v1/suppliers/{itemId}/openingBalance
@desc Returns a Supplier's opening balances, calculated for the next periods: current month, one month old, two months old, three and more months old.
@required {itemId: any # Id of Supplier to return opening balances.}
@returns(200) OK

@endpoint GET /v1/suppliers/{itemId}/openingBalanceList
@desc Returns a list of Supplier's opening balance transactions.
@required {itemId: any # Id of Supplier to return opening balances transaction.}
@returns(200) OK

@endpoint GET /v1/suppliers/{itemId}/accountTrans
@desc Returns a list of Supplier's account transactions.
@required {itemId: any # Id of Supplier to return account transaction.}
@returns(200) OK

@endgroup

@group userDefinedFields
@endpoint GET /v1/userDefinedFields
@desc Returns a list of company's User Defined Fields. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group vatAnalysisTypes
@endpoint GET /v1/vatAnalysisTypes
@desc Returns a list of global Vat Analysis Types. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group vatCategories
@endpoint GET /v1/vatCategories
@desc Returns a list of global Vat Categories. Supports OData querying protocol.
@returns(200) OK

@endpoint POST /v1/vatCategories/vatRates
@desc Process Vat Rates
@required {vatRates: [map] # Array of Vat Rates.}
@returns(200) OK

@endgroup

@group vatRates
@endpoint GET /v1/vatRates
@desc Returns a list of company's Vat Rates. Supports OData querying protocol.
@returns(200) OK

@endgroup

@group vatTypes
@endpoint GET /v1/vatTypes
@desc Returns a list of global Vat Types. Supports OData querying protocol.
@returns(200) OK

@endgroup

@end
