@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
@returns(200)

@endgroup

@group analysisCategories
@endpoint GET /v1/analysisCategories
@returns(200)

@endgroup

@group bankAccounts
@endpoint GET /v1/bankAccounts
@returns(200)

@endpoint POST /v1/bankAccounts
@required {item: map}
@returns(200)

@endpoint GET /v1/bankAccounts/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/bankAccounts/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/bankAccounts/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/bankAccounts/batch
@required {items: [map]}
@returns(200)

@endgroup

@group bookTranTypes
@endpoint GET /v1/bookTranTypes
@returns(200)

@endgroup

@group cashPayments
@endpoint GET /v1/cashPayments
@returns(200)

@endpoint POST /v1/cashPayments
@required {item: map}
@returns(200)

@endpoint GET /v1/cashPayments/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/cashPayments/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/cashPayments/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/cashPayments/batch
@required {items: [map]}
@returns(200)

@endgroup

@group cashReceipts
@endpoint GET /v1/cashReceipts
@returns(200)

@endpoint POST /v1/cashReceipts
@required {item: map}
@returns(200)

@endpoint GET /v1/cashReceipts/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/cashReceipts/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/cashReceipts/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/cashReceipts/batch
@required {items: [map]}
@returns(200)

@endgroup

@group categoryTypes
@endpoint GET /v1/categoryTypes
@returns(200)

@endgroup

@group companySettings
@endpoint GET /v1/companySettings
@returns(200)

@endgroup

@group companySetupConfig
@endpoint GET /v1/companySetupConfig
@returns(200)

@endpoint GET /v1/companySetupConfig/getFinancialYear
@returns(200)

@endpoint GET /v1/companySetupConfig/getCompanyOptions
@returns(200)

@endpoint GET /v1/companySetupConfig/getCompanyLogo
@returns(200)

@endgroup

@group customers
@endpoint GET /v1/customers
@returns(200)

@endpoint POST /v1/customers
@required {item: map}
@returns(200)

@endpoint GET /v1/customers/{id}
@required {id: any}
@optional {needBalance: any}
@returns(200)

@endpoint PUT /v1/customers/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/customers/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint GET /v1/customers/GetWithoutDormant
@returns(200)

@endpoint PUT /v1/customers/batch
@required {items: [map]}
@returns(200)

@endpoint GET /v1/customers/{itemId}/openingBalance
@required {itemId: any}
@returns(200)

@endpoint GET /v1/customers/{itemId}/openingBalanceList
@required {itemId: any}
@returns(200)

@endpoint GET /v1/customers/{itemId}/accountTrans
@required {itemId: any}
@returns(200)

@endpoint GET /v1/customers/{itemId}/quotes
@required {itemId: any}
@returns(200)

@endgroup

@group email
@endpoint POST /v1/email/sendSalesInvoice
@required {salesInvoiceEmailInfo: map}
@returns(200)

@endpoint POST /v1/email/sendEmailStatement
@required {emailStatementDto: map}
@returns(200)

@endpoint POST /v1/email/sendQuote
@required {emailQuoteDto: map}
@returns(200)

@endgroup

@group nominalAccounts
@endpoint GET /v1/nominalAccounts
@returns(200)

@endpoint GET /v1/nominalAccounts/{id}
@required {id: any}
@returns(200)

@endpoint GET /v1/nominalAccounts/ledger
@required {startDate: any, endDate: any}
@returns(200)

@endpoint GET /v1/nominalAccounts/ledger/{ids}
@required {ids: any, startDate: any, endDate: any}
@returns(200)

@endgroup

@group ownerTypeGroups
@endpoint GET /v1/ownerTypeGroups
@returns(200)

@endgroup

@group ownerTypes
@endpoint GET /v1/ownerTypes
@returns(200)

@endgroup

@group payments
@endpoint GET /v1/payments
@returns(200)

@endpoint POST /v1/payments
@required {item: map}
@returns(200)

@endpoint GET /v1/payments/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/payments/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/payments/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/payments/batch
@required {items: [map]}
@returns(200)

@endgroup

@group products
@endpoint GET /v1/products
@returns(200)

@endpoint POST /v1/products
@required {item: map}
@returns(200)

@endpoint GET /v1/products/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/products/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/products/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint GET /v1/products/GetWithoutDormant
@returns(200)

@endpoint PUT /v1/products/batch
@required {items: [map]}
@returns(200)

@endgroup

@group productTypes
@endpoint GET /v1/productTypes
@returns(200)

@endgroup

@group purchases
@endpoint GET /v1/purchases
@returns(200)

@endpoint POST /v1/purchases
@required {item: map}
@returns(200)

@endpoint GET /v1/purchases/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/purchases/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/purchases/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/purchases/batch
@required {items: [map]}
@returns(200)

@endpoint POST /v1/purchases/createPurchaseWithGeneratingReference
@required {item: map}
@returns(200)

@endgroup

@group quotes
@endpoint GET /v1/quotes
@returns(200)

@endpoint POST /v1/quotes
@required {item: map}
@returns(200)

@endpoint GET /v1/quotes/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/quotes/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/quotes/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/quotes/batch
@required {items: [map]}
@returns(200)

@endpoint PUT /v1/quotes/close/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/quotes/reopen/{id}
@required {id: any}
@returns(200)

@endpoint POST /v1/quotes/generateSaleInvoice
@required {item: map}
@returns(200)

@endpoint POST /v1/quotes/createQuoteWithGeneratingReference
@required {item: map}
@returns(200)

@endgroup

@group sales
@endpoint GET /v1/sales
@returns(200)

@endgroup

@group salesCreditNotes
@endpoint GET /v1/salesCreditNotes
@returns(200)

@endpoint POST /v1/salesCreditNotes
@required {item: map}
@returns(200)

@endpoint GET /v1/salesCreditNotes/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/salesCreditNotes/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/salesCreditNotes/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/salesCreditNotes/batch
@required {items: [map]}
@returns(200)

@endpoint POST /v1/salesCreditNotes/createCreditNoteWithGeneratingReference
@required {item: map}
@returns(200)

@endgroup

@group salesEntries
@endpoint GET /v1/salesEntries
@returns(200)

@endpoint POST /v1/salesEntries
@required {item: map}
@returns(200)

@endpoint GET /v1/salesEntries/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/salesEntries/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/salesEntries/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/salesEntries/batch
@required {items: [map]}
@returns(200)

@endgroup

@group salesInvoices
@endpoint GET /v1/salesInvoices
@returns(200)

@endpoint POST /v1/salesInvoices
@required {item: map}
@returns(200)

@endpoint GET /v1/salesInvoices/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/salesInvoices/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/salesInvoices/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/salesInvoices/batch
@required {items: [map]}
@returns(200)

@endpoint POST /v1/salesInvoices/createSaleInvoiceWithGeneratingReference
@required {item: map}
@returns(200)

@endgroup

@group salesReps
@endpoint GET /v1/salesReps
@returns(200)

@endpoint POST /v1/salesReps
@required {item: map}
@returns(200)

@endpoint GET /v1/salesReps/{id}
@required {id: any}
@returns(200)

@endpoint PUT /v1/salesReps/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/salesReps/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/salesReps/batch
@required {items: [map]}
@returns(200)

@endgroup

@group suppliers
@endpoint GET /v1/suppliers
@returns(200)

@endpoint POST /v1/suppliers
@required {item: map}
@returns(200)

@endpoint GET /v1/suppliers/{id}
@required {id: any}
@optional {needBalance: any}
@returns(200)

@endpoint PUT /v1/suppliers/{id}
@required {id: any, item: map}
@returns(200)

@endpoint DELETE /v1/suppliers/{id}
@required {id: any, timestamp: any}
@returns(200)

@endpoint PUT /v1/suppliers/batch
@required {items: [map]}
@returns(200)

@endpoint GET /v1/suppliers/{itemId}/openingBalance
@required {itemId: any}
@returns(200)

@endpoint GET /v1/suppliers/{itemId}/openingBalanceList
@required {itemId: any}
@returns(200)

@endpoint GET /v1/suppliers/{itemId}/accountTrans
@required {itemId: any}
@returns(200)

@endgroup

@group userDefinedFields
@endpoint GET /v1/userDefinedFields
@returns(200)

@endgroup

@group vatAnalysisTypes
@endpoint GET /v1/vatAnalysisTypes
@returns(200)

@endgroup

@group vatCategories
@endpoint GET /v1/vatCategories
@returns(200)

@endpoint POST /v1/vatCategories/vatRates
@required {vatRates: [map]}
@returns(200)

@endgroup

@group vatRates
@endpoint GET /v1/vatRates
@returns(200)

@endgroup

@group vatTypes
@endpoint GET /v1/vatTypes
@returns(200)

@endgroup

@end
