Peak MCP Server

Tool Reference — 32 tools across 14 categories

BillingNote

4 tools
CreateBillingNote
Creates a billing note (ใบวางบิล) in PEAK Account to consolidate multiple invoices into a single payment request for a customer. Use this when you want to send one combined bill instead of multiple invoices. Provide transactions array with the invoice codes/IDs to combine. Returns a billing note with the combined total and a shareable link.
0 required · 27 optional
ParameterTypeDescription
transactions array[BillingNoteTransaction] optional The object array containing data of the documents to be invoiced
array[BillingNoteTransaction] fields
FieldType
idstring
codestring
amountnumber?
code string optional The code of the document for which a billing note is to be issued
issuedDate string optional Document issuance date
dueDate string optional Document due date, which must be after the document issuance date
contactId string optional Unique Identifier of the contact associated with the document
contactCode string optional Code of the contact associated with the document (If contactId has been assigned a value, contactCode is not required)
remark string optional Additional remarks or notes
tags array[String] optional Label attached to someone or something for the purpose of identification or to give other information
paymentDate string optional Payment date in the format yyyyMMdd
withHoldingTaxAmount string optional Withholding tax amount for the payment
paymentAmount number? optional Payment amount
paymentMethodId string optional The Unique Identifier of the payment method
paymentMethodCode string optional Code of the payment method (If paymentMethodId has been assigned a value, paymentMethodCode is not required)
accountCode string optional Account code to be used for recording financial transactions
accountSubId string optional Sub account Unique Identifier to be used for recording financial transactions
accountSubCode string optional Sub account code to be used for recording financial transactions
paymentNote string optional Additional remarks or notes for that specific payment received
isCheque integer? optional Whether this payment is made by Cheque (0 = No, 1 = Yes)
chequeAccountNo string optional Bank account number
chequeBranchNo string optional Bank branch number
chequeNo string optional Cheque number
chequeAmount number? optional Amount specified in the Cheque
chequeDate string optional Cheque issuance date in the format yyyyMMdd
chequeBankId integer? optional The numerical code that indicates a financial institution (If type is 2, bankId is required)
chequePaymentMethodId string optional The Unique Identifier of the payment method used to record the Cheque payment
chequePaymentMethodCode string optional The Code of the payment method used to record the Cheque payment
getResult integer? optional Numeric code used to reduce the amount of response data received
Response
{
  "PeakBillingNotes": {
    "resCode": "200",
    "resDesc": "PeakBillingNotes have Completed",
    "billingNotes": [{
      "id": "faa7a1d3-71af-48d0-bdd2-8c262bb15331",
      "code": "BAAN01A00039",
      "issuedDate": "20211209",
      "dueDate": "20211216",
      "contactId": "129c968f-23e9-4ee9-9dc7-3f799b47c029",
      "contactCode": "C00003",
      "transactions": [{ "id": "guid", "code": "IVTZ202112028", "amount": 260 }],
      "preTaxAmount": 242.99,
      "netAmount": 260,
      "vatAmount": 17.01,
      "whtAmount": 0,
      "paymentAmount": 0,
      "remainAmount": 260,
      "remainWhtAmount": 0,
      "documentLink": "https://...",
      "onlineViewLink": "https://...",
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
CreateBillingNoteExpense
Creates a billing note expense in Peak Account. Returns the created billing note expense details.
0 required · 27 optional
ParameterTypeDescription
transactions array[BillingNoteTransaction] optional The object array containing data of the documents to be invoiced
array[BillingNoteTransaction] fields
FieldType
idstring
codestring
amountnumber?
code string optional The code of the document for which a billing note is to be issued
issuedDate string optional Document issuance date
dueDate string optional Document due date, which must be after the document issuance date
contactId string optional Unique Identifier of the contact associated with the document
contactCode string optional Code of the contact associated with the document (If contactId has been assigned a value, contactCode is not required)
remark string optional Additional remarks or notes
tags array[String] optional Label attached to someone or something for the purpose of identification or to give other information
paymentDate string optional Payment date in the format yyyyMMdd
withHoldingTaxAmount string optional Withholding tax amount for the payment
paymentAmount number? optional Payment amount
paymentMethodId string optional The Unique Identifier of the payment method
paymentMethodCode string optional Code of the payment method (If paymentMethodId has been assigned a value, paymentMethodCode is not required)
accountCode string optional Account code to be used for recording financial transactions
accountSubId string optional Sub account Unique Identifier to be used for recording financial transactions
accountSubCode string optional Sub account code to be used for recording financial transactions
paymentNote string optional Additional remarks or notes for that specific payment received
isCheque integer? optional Whether this payment is made by Cheque (0 = No, 1 = Yes)
chequeAccountNo string optional Bank account number
chequeBranchNo string optional Bank branch number
chequeNo string optional Cheque number
chequeAmount number? optional Amount specified in the Cheque
chequeDate string optional Cheque issuance date in the format yyyyMMdd
chequeBankId integer? optional The numerical code that indicates a financial institution (If type is 2, bankId is required)
chequePaymentMethodId string optional The Unique Identifier of the payment method used to record the Cheque payment
chequePaymentMethodCode string optional The Code of the payment method used to record the Cheque payment
getResult integer? optional Numeric code used to reduce the amount of response data received
Response
{
  "PeakBillingNotesExpenses": {
    "resCode": "200",
    "resDesc": "PeakBillingNotesExpenses have Completed",
    "billingNotesExpenses": [{
      "id": "faa7a1d3-71af-48d0-bdd2-8c262bb15331",
      "code": "BNX01A00039",
      "issuedDate": "20211209",
      "dueDate": "20211216",
      "contactId": "129c968f-23e9-4ee9-9dc7-3f799b47c029",
      "contactCode": "C00003",
      "transactions": [{ "id": "guid", "code": "IVTZ202112028", "amount": 260 }],
      "preTaxAmount": 242.99,
      "netAmount": 260,
      "vatAmount": 17.01,
      "whtAmount": 0,
      "paymentAmount": 0,
      "remainAmount": 260,
      "remainWhtAmount": 0,
      "documentLink": "https://...",
      "onlineViewLink": "https://...",
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
GetBillingNoteExpense
Gets billing note expenses from Peak Account. Filter by date range, status, or search text. Returns a list of billing note expenses with pagination.
0 required · 6 optional
ParameterTypeDescription
dateStart string optional Start date for filtering billing note expenses (format yyyyMMdd).
dateEnd string optional End date for filtering billing note expenses (format yyyyMMdd).
status integer? optional Status of the billing note expense for filtering. (0 = None, 1 = Voided, 2 = Draft, 3 = AwaitApproval, 4 = Outstanding, 5 = Overdue, 6 = PaidOrAwaitReceipt)
searchText string optional Text to search for in billing note expenses.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
Response
{
  "PeakBillingNotesExpenses": {
    "resCode": "200",
    "resDesc": "PeakBillingNotesExpenses have Completed",
    "totalBillingNoteExpense": 3,
    "billingNotesExpenses": [{
      "code": "BNX0600027",
      "issuedDate": "20230612",
      "contactId": "079fa9e4-de10-4020-b290-eae29cdbc1ca",
      "contactCode": "C00002",
      "netAmount": 10,
      "documentLink": "https://...",
      "onlineViewLink": "https://...",
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
GetBillingNote
Gets billing notes from Peak Account. Filter by date range, status, or search text. Returns a list of billing notes with pagination.
0 required · 6 optional
ParameterTypeDescription
dateStart string optional Start date for filtering billing notes (format yyyyMMdd).
dateEnd string optional End date for filtering billing notes (format yyyyMMdd).
status integer? optional Status of the billing note for filtering. (0 = None, 1 = Voided, 2 = Draft, 3 = AwaitApproval, 4 = Outstanding, 5 = Overdue, 6 = PaidOrAwaitReceipt)
searchText string optional Text to search for in billing notes.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
Response
{
  "PeakBillingNotes": {
    "resCode": "200",
    "resDesc": "PeakBillingNotes have Completed",
    "totalBillingNote": 3,
    "billingNotes": [{
      "code": "BN0600027",
      "issuedDate": "20230612",
      "contactId": "079fa9e4-de10-4020-b290-eae29cdbc1ca",
      "contactCode": "C00002",
      "netAmount": 10,
      "documentLink": "https://...",
      "onlineViewLink": "https://...",
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}

Classification

3 tools
GetClassificationGroup
Retrieve all Classification Groups configured in this PEAK account. Classifications are user-defined labels that let businesses tag documents by department, project, branch, cost center, or any other dimension — each business defines its own groups. Call this tool first before using CreateTransactionClassification — you need the classificationGroup number and the classificationItem number to tag a transaction correctly.
no params
No parameters required.
Response
{
  "peakClassification": {
    "classificationGroup": [
      {
        "resCode": "string",
        "resDesc": "string",
        "number": "string",
        "name": "string",
        "description": "string",
        "classificationDocumentFinanceType": 0,
        "classificationItemList": [
          {
            "number": "string",
            "name": "string",
            "description": "string"
          }
        ]
      }
    ],
    "resDesc": "string",
    "resCode": "string"
  }
}
GetTransactionClassification
Get Transaction Classification from Peak Account.
0 required · 3 optional
ParameterTypeDescription
transactionId string optional The Unique Identifier of the transaction
transactionCode string optional The code of the transaction
transactionType integer? optional The numerical code indicating the type of transaction (0 = None, 1 = Quotation, 2 = Invoice, 3 = Receipt, 4 = TaxInvoice, 5 = CreditNote, 6 = BillingNote, 7 = DebitNote, 11 = Dailyjournal)
Response
{
  "peakClassification": {
    "transactionCode": "string",
    "transactionType": 0,
    "classifications": [
      {
        "classificationGroupCode": "string",
        "classificationItemList": [
          {
            "number": "string",
            "percent": 0.0
          }
        ]
      }
    ],
    "resDesc": "string",
    "resCode": "string"
  }
}
CreateTransactionClassification
Tag an existing transaction (Invoice, Expense, Receipt, etc.) with a Classification label — such as a department, project, or branch — as defined in the business's Classification Groups. Prerequisites: 1. The transaction must already exist (e.g., call CreateInvoice first to get the transactionId) 2. classificationGroup number and classificationItem number — call GetClassificationGroup to retrieve valid values for this account
0 required · 5 optional
ParameterTypeDescription
transactionId string optional The Unique Identifier of the transaction
transactionCode string optional The code of the transaction
transactionType integer? optional The numerical code indicating the type of transaction (0 = None, 1 = Quotation, 2 = Invoice, 3 = Receipt, 4 = TaxInvoice, 5 = CreditNote, 6 = BillingNote, 7 = DebitNote, 11 = Dailyjournal)
classificationGroupCode string optional The code of the classification group
classificationItemList array[TransactionClassificationItemEntry] optional A list of classification items
array[TransactionClassificationItemEntry] fields
FieldType
numberstring
percentnumber?
Response
{
  "resCode": "200",
  "resDesc": "Success"
}

Contact

2 tools
SearchContacts
Searches for existing customers and vendors (contacts) in PEAK Account. Always call this tool first before creating any document (Invoice, Expense, etc.) to check if the contact already exists and get their contactId. Returns contactId and contactCode needed for document creation tools. If no contact is found, use CreateContact to add them first.
0 required · 5 optional
ParameterTypeDescription
status integer? optional Filter by contact status (0 = All, 1 = Active, 2 = Inactive)
groupId string optional Filter by group ID.
searchText string optional Search keyword for contact name or related data. Use searchText to search by company name, contact name, or tax number.
limit integer? optional Maximum number of contacts to retrieve.
page integer? optional Page number (each page shows 10 entries).
Response
{
  "PeakContacts": {
    "resCode": "200",
    "resDesc": "PeakContacts have Completed",
    "totalContact": 25,
    "contacts": [{
      "id": "guid",
      "code": "C001",
      "name": "Company Name",
      "type": 1,
      "taxNumber": "0123456789012",
      "branchCode": "00000",
      "email": "[email protected]",
      "address": "123 Main St",
      "subDistrict": "...",
      "district": "...",
      "province": "Bangkok",
      "postCode": "10110",
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
CreateContact
Creates a new customer or vendor (contact) in PEAK Account. Call this tool when SearchContacts returns no results for a person or company. To link bank account for payment: include bankId, bankAccountNo, bankAccountName. For account tracking: set purchaseAccount (if vendor) or sellAccount (if customer). Returns contactId and contactCode to use in document creation tools.
1 required · 29 optional
ParameterTypeDescription
name string required Contact name
type integer optional Type of contact (0 = None, 1 = LimitedLiabilityPartnership, 2 = CompanyLimited, 3 = PublicCompanyLimited, 4 = Shop, 5 = OrdinaryPerson, 6 = BodyOfPersons, 7 = Others, 8 = OrdinaryPartnership, 9 = Foundation, 10 = Association, 11 = JointVenture)
prefixNameType integer? optional If the value of "type" is 5 (Individual/Person), the "prefixNameType" field is a required variable that indicates the prefix of the contact's name (0 = None, 1 = Sir, 2 = Mr, 3 = Mrs, 4 = Ms, 5 = Other)
prefixNameOther string optional If the value of "prefixNameType" is 6 (Other), the "prefixNameOther" field is a required variable that indicates the custom prefix for the contact's name
taxNumber string optional Tax Identification Number (TIN)
branchCode string optional The 5-digit number that identifies the branch of your contact's business
address string optional The address registered for the branch.
subDistrict string optional Sub-district of the contact's address
district string optional District of the contact's address
province string optional Province of the contact's address
country string optional Country of the contact's address
postCode string optional Post code of the contact's address
callCenterNumber string optional Call center number.
faxNumber string optional Fax number.
email string optional Email address of the contact
website string optional Website URL.
contactFirstName string optional First name of the contactable person
contactLastName string optional Last name of the contactable person
contactNickName string optional Nickname of the contactable person
contactPosition string optional Position of the contactable person
contactPhoneNumber string optional Phone number of the contactable person
contactEmail string optional Email of the contactable person
purchaseAccount string optional If the contact is a seller, PEAK will record the transaction in this account
sellAccount string optional If the contact is a buyer, PEAK will record the transaction in this account
bankId integer? optional Bank ID for bank account.
bankBranch string optional Bank branch name.
bankAccountNo string optional Bank account number.
bankAccountName string optional Bank account name.
id string optional The Unique Identifier will generated by PEAK for referencing the contacts
code string optional Code of the contact that will be displayed in PEAK
Response
{
  "PeakContacts": {
    "resCode": "200",
    "resDesc": "PeakContacts have Completed",
    "contacts": [{
      "id": "917c3e8f-b315-4968-b8cc-08e2220d8682",
      "code": "C01401",
      "name": "Company Name",
      "type": 2,
      "taxNumber": "0105557083391",
      "branchCode": "00000",
      "address": "...",
      "subDistrict": "...",
      "district": "...",
      "province": "กรุงเทพมหานคร",
      "country": "Thailand",
      "postCode": "10220",
      "email": "",
      "purchaseAccount": "212101",
      "sellAccount": "113101",
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}

CreditNote

4 tools
CreateCreditNote
Creates a credit note (ใบลดหนี้) in PEAK Account to reduce the amount owed on a previously issued invoice or tax invoice. Use this when: goods are returned, price was incorrect, or discount is granted after invoicing. Returns the credit note which will reduce the customer's outstanding balance.
1 required · 45 optional
ParameterTypeDescription
products array[InvoiceProduct] required An array of objects that will contain various data for the list of products or services
array[InvoiceProduct] fields
FieldType
idstring
productIdstring
productCodestring
descriptionstring
accountCodestring
accountSubIdstring
accountSubCodestring
quantitynumber
pricenumber
discountstring
vatTypeinteger
isDescriptioninteger?
withHoldingTaxAmountstring
transactionType integer? optional The numerical code indicating the type of document for issuing a credit note (0 = None, 1 = Quotation, 2 = Invoice, 3 = Receipt, 4 = TaxInvoice, 5 = CreditNote, 6 = BillingNote, 7 = DebitNote, 11 = Dailyjournal)
transactionId string optional The Unique Identifier of the document for which a credit note is to be issued
transactionCode string optional The code of the document for which a credit note is to be issued
reasonType integer? optional The numerical code indicating the reason for issuing a credit note (0 = None, 1 = PromotionAndMarketing, 2 = OfficeUse, 3 = ProductionUse, 4 = ServiceUse, 5 = Donation, 6 = DamageOrLoss, 7 = Others)
creditNoteStyleType integer? optional The numerical code indicating the type of credit note display (0 = General, 1 = ThaiPopular)
reasonDescription string optional The description of reason for issuing a credit note
goodsReturn integer? optional Whether this credit note involves a product return (0 = No, 1 = Yes)
code string optional The code displayed in the PEAK. If no value is provided, PEAK will generate it automatically
issuedDate string optional Document issuance date
dueDate string optional Document due date, which must be after the document issuance date
contactId string optional Unique Identifier of the contact associated with the document
contactCode string optional Code of the contact associated with the document (If contactId has been assigned a value, contactCode is not required)
reference string optional Reference information of the document
remark string optional Additional remarks or notes
taxStatus integer? optional Specify the tax status of the document to indicate whether the price includes tax or the tax is separate (0 = ExcludeTax, 1 = IncludeTax, 2 = NonTax)
discountTotal string optional The total discount should not exceed the net total of the document or be greater than 100%. Additionally, it can only be applied when the tax type of each item is the same
isTaxInvoice integer? optional Whether the document can be used as a tax invoice (0 = No, 1 = Yes)
tags array[String] optional Label attached to someone or something for the purpose of identification or to give other information
status string optional Status of the document, which can have multiple states such as Draft, Approve, Voided, etc
preTaxAmount number? optional Amount before tax is applied (If value is null, PEAK will calculate it automatically)
vatAmount number? optional Tax collected from the increased value of products or services (If value is null, PEAK will calculate it automatically)
netAmount number? optional Total value of the document after tax and discounts have been applied (If value is null, PEAK will calculate it automatically)
paymentMethodCode string optional Payment method code. Required to record a paid credit note.
paymentMethodId string optional The Unique Identifier of the payment method
paymentAmount number? optional Payment amount
paymentDate string optional Payment date in the format yyyyMMdd
paymentAccountCode string optional Account code to be used for recording financial transactions
paymentAccountSubId string optional Sub account Unique Identifier to be used for recording financial transactions
paymentAccountSubCode string optional Sub account code to be used for recording financial transactions
paymentNote string optional Additional remarks or notes for that specific payment received
isCheque integer? optional Whether this payment is made by Cheque (0 = No, 1 = Yes)
paidPaymentsWithHoldingTaxAmount string optional Withholding tax amount for the payment
currencyId integer? optional Currency ID for foreign currency transactions
exchangeRate number? optional Exchange rate for foreign currency transactions
returnPaymentMethodCode string optional Payment method code for return payment
returnPaymentMethodId string optional The Unique Identifier of the return payment method
returnPaymentAmount number? optional Return payment amount
returnPaymentDate string optional Return payment date in the format yyyyMMdd
returnPaymentAccountCode string optional Account code to be used for recording return payment transactions
returnPaymentAccountSubId string optional Sub account Unique Identifier to be used for recording return payment transactions
returnPaymentAccountSubCode string optional Sub account code to be used for recording return payment transactions
returnPaymentNote string optional Additional remarks or notes for the return payment
returnPaymentIsCheque integer? optional Whether the return payment is made by Cheque (0 = No, 1 = Yes)
returnPaymentWithHoldingTaxAmount string optional Withholding tax amount for the return payment
getResult integer? optional Numeric code used to reduce the amount of response data received
Response
{
  "PeakCreditNotes": {
    "resCode": "200",
    "resDesc": "PeakCreditNotes have Completed",
    "creditNotes": [{
      "transactionId": "6efe1b39-c944-4412-ba81-209a6933bac7",
      "transactionType": 102,
      "creditNoteStyleType": 1,
      "reasonType": 1,
      "reasonDescription": "...",
      "goodsReturn": 1,
      "transactions": {
        "id": "5c707ff3-bea4-4475-8595-8d91a592403a",
        "code": "CNT0800124",
        "issuedDate": "20230815",
        "products": [{ "id": "guid", "productCode": "PP20180917", "accountCode": "410101", "description": "...", "quantity": 21, "price": 220, "vatType": 2 }],
        "resCode": "200",
        "resDesc": "Success"
      },
      "preTaxAmount": 5140,
      "netAmount": 5140,
      "vatAmount": 0,
      "whtAmount": 154.2,
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
CreateCreditNoteExpense
Creates a credit note expense in Peak Account. Returns the created credit note expense details.
1 required · 45 optional
ParameterTypeDescription
products array[InvoiceProduct] required An array of objects that will contain various data for the list of products or services
array[InvoiceProduct] fields
FieldType
idstring
productIdstring
productCodestring
descriptionstring
accountCodestring
accountSubIdstring
accountSubCodestring
quantitynumber
pricenumber
discountstring
vatTypeinteger
isDescriptioninteger?
withHoldingTaxAmountstring
transactionType integer? optional The numerical code indicating the type of document for issuing a credit note (0 = None, 1 = Quotation, 2 = Invoice, 3 = Receipt, 4 = TaxInvoice, 5 = CreditNote, 6 = BillingNote, 7 = DebitNote, 11 = Dailyjournal)
transactionId string optional The Unique Identifier of the document for which a credit note is to be issued
transactionCode string optional The code of the document for which a credit note is to be issued
reasonType integer? optional The numerical code indicating the reason for issuing a credit note (0 = None, 1 = PromotionAndMarketing, 2 = OfficeUse, 3 = ProductionUse, 4 = ServiceUse, 5 = Donation, 6 = DamageOrLoss, 7 = Others)
creditNoteStyleType integer? optional The numerical code indicating the type of credit note display (0 = General, 1 = ThaiPopular)
reasonDescription string optional The description of reason for issuing a credit note
goodsReturn integer? optional Whether this credit note involves a product return (0 = No, 1 = Yes)
code string optional The code displayed in the PEAK. If no value is provided, PEAK will generate it automatically
issuedDate string optional Document issuance date
dueDate string optional Document due date, which must be after the document issuance date
contactId string optional Unique Identifier of the contact associated with the document
contactCode string optional Code of the contact associated with the document (If contactId has been assigned a value, contactCode is not required)
reference string optional Reference information of the document
remark string optional Additional remarks or notes
taxStatus integer? optional Specify the tax status of the document to indicate whether the price includes tax or the tax is separate (0 = ExcludeTax, 1 = IncludeTax, 2 = NonTax)
discountTotal string optional The total discount should not exceed the net total of the document or be greater than 100%. Additionally, it can only be applied when the tax type of each item is the same
isTaxInvoice integer? optional Whether the document can be used as a tax invoice (0 = No, 1 = Yes)
tags array[String] optional Label attached to someone or something for the purpose of identification or to give other information
status string optional Status of the document, which can have multiple states such as Draft, Approve, Voided, etc
preTaxAmount number? optional Amount before tax is applied (If value is null, PEAK will calculate it automatically)
vatAmount number? optional Tax collected from the increased value of products or services (If value is null, PEAK will calculate it automatically)
netAmount number? optional Total value of the document after tax and discounts have been applied (If value is null, PEAK will calculate it automatically)
paymentMethodCode string optional Payment method code. Required to record a paid credit note expense.
paymentMethodId string optional The Unique Identifier of the payment method
paymentAmount number? optional Payment amount
paymentDate string optional Payment date in the format yyyyMMdd
paymentAccountCode string optional Account code to be used for recording financial transactions
paymentAccountSubId string optional Sub account Unique Identifier to be used for recording financial transactions
paymentAccountSubCode string optional Sub account code to be used for recording financial transactions
paymentNote string optional Additional remarks or notes for that specific payment received
isCheque integer? optional Whether this payment is made by Cheque (0 = No, 1 = Yes)
paidPaymentsWithHoldingTaxAmount string optional Withholding tax amount for the payment
currencyId integer? optional Currency ID for foreign currency transactions
exchangeRate number? optional Exchange rate for foreign currency transactions
returnPaymentMethodCode string optional Payment method code for return payment
returnPaymentMethodId string optional The Unique Identifier of the return payment method
returnPaymentAmount number? optional Return payment amount
returnPaymentDate string optional Return payment date in the format yyyyMMdd
returnPaymentAccountCode string optional Account code to be used for recording return payment transactions
returnPaymentAccountSubId string optional Sub account Unique Identifier to be used for recording return payment transactions
returnPaymentAccountSubCode string optional Sub account code to be used for recording return payment transactions
returnPaymentNote string optional Additional remarks or notes for the return payment
returnPaymentIsCheque integer? optional Whether the return payment is made by Cheque (0 = No, 1 = Yes)
returnPaymentWithHoldingTaxAmount string optional Withholding tax amount for the return payment
getResult integer? optional Numeric code used to reduce the amount of response data received
Response
{
  "PeakCreditNotesExpenses": {
    "resCode": "200",
    "resDesc": "PeakCreditNotesExpenses have Completed",
    "creditNotesExpenses": [{
      "transactionId": "6efe1b39-c944-4412-ba81-209a6933bac7",
      "transactionType": 102,
      "creditNoteStyleType": 1,
      "reasonType": 1,
      "reasonDescription": "...",
      "goodsReturn": 1,
      "transactions": {
        "id": "5c707ff3-bea4-4475-8595-8d91a592403a",
        "code": "CNX0800124",
        "issuedDate": "20230815",
        "products": [{ "id": "guid", "productCode": "PP20180917", "accountCode": "410101", "description": "...", "quantity": 21, "price": 220, "vatType": 2 }],
        "resCode": "200",
        "resDesc": "Success"
      },
      "preTaxAmount": 5140,
      "netAmount": 5140,
      "vatAmount": 0,
      "whtAmount": 154.2,
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
GetCreditNoteExpense
Gets credit note expenses from Peak Account. Filter by date range, status, or search text. Returns a list of credit note expenses with pagination.
0 required · 6 optional
ParameterTypeDescription
dateStart string optional Start date for filtering credit note expenses (format yyyyMMdd).
dateEnd string optional End date for filtering credit note expenses (format yyyyMMdd).
status integer? optional Filter by document status (0 = None, 1 = Voided, 2 = Draft, 3 = AwaitApproval, 4 = Outstanding, 5 = Overdue, 6 = PaidOrAwaitReceipt)
searchText string optional Text to search for in credit note expenses.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
Response
{
  "PeakCreditNotesExpenses": {
    "creditNotesExpenses": [
      {
        "code": "CNX0600027",
        "issuedDate": "20230612",
        "contactId": "079fa9e4-de10-4020-b290-eae29cdbc1ca",
        "contactCode": "C00002",
        "netAmount": 10,
        "documentLink": "https://...",
        "onlineViewLink": "https://...",
        "resCode": "200",
        "resDesc": "Success"
      }
    ],
    "totalCreditNoteExpense": 1,
    "resDesc": "PeakCreditNotesExpenses have Completed",
    "resCode": "200"
  }
}
GetCreditNote
Gets credit notes from Peak Account. Filter by date range, status, or search text. Returns a list of credit notes with pagination.
0 required · 6 optional
ParameterTypeDescription
dateStart string optional Start date for filtering credit notes (format yyyyMMdd).
dateEnd string optional End date for filtering credit notes (format yyyyMMdd).
status integer? optional Filter by document status (0 = None, 1 = Voided, 2 = Draft, 3 = AwaitApproval, 4 = Outstanding, 5 = Overdue, 6 = PaidOrAwaitReceipt)
searchText string optional Text to search for in credit notes.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
Response
{
  "PeakCreditNotes": {
    "creditNotes": [
      {
        "code": "CNT0600027",
        "issuedDate": "20230612",
        "contactId": "079fa9e4-de10-4020-b290-eae29cdbc1ca",
        "contactCode": "C00002",
        "netAmount": 10,
        "documentLink": "https://...",
        "onlineViewLink": "https://...",
        "resCode": "200",
        "resDesc": "Success"
      }
    ],
    "totalCreditNote": 1,
    "resDesc": "PeakCreditNotes have Completed",
    "resCode": "200"
  }
}

DailyJournal

1 tool
GetAccountCodes
Retrieves all chart of accounts (ผังบัญชี) configured in PEAK Account. Call this tool to find the correct accountCode before creating documents, especially when the product/service doesn't have a default account set. Common account codes: - 410101 = รายได้จากการขาย (Sales from product) - 114102 = สินค้าสำเร็จรูป (Finished goods) - 212101 = เจ้าหนี้การค้า (Accounts Payable) - 113101 = ลูกหนี้การค้า (Accounts Receivable)Returns id, code, name, and type for each account.
no params
No parameters required.
Response
{
  "PeakAccountCode": {
    "resCode": "200",
    "resDesc": "Success",
    "data": [{
      "id": "guid",
      "code": "11000",
      "name": "Cash / เงินสด",
      "type": "..."
    }]
  }
}

Expense

2 tools
CreateExpense
Creates an expense record in PEAK Account for tracking money paid out (รายจ่าย). Use this for: vendor bills, operating costs, purchases from suppliers. IMPORTANT: Before calling this tool: 1. contactId or contactCode — the vendor/supplier (use SearchContacts or CreateContact) 2. At least one product/service in the products array (use SearchProducts or accountCode to find) To record payment in the same call, include paymentMethodCode and paymentAmount. For withholding tax: include withHoldingTaxAmount at the document level.
1 required · 29 optional
ParameterTypeDescription
products array[InvoiceProduct] required List of products/services. Each item: productCode, accountCode, description, price, quantity, vatType.
array[InvoiceProduct] fields
FieldType
idstring
productIdstring
productCodestring
descriptionstring
accountCodestring
accountSubIdstring
accountSubCodestring
quantitynumber
pricenumber
discountstring
vatTypeinteger
isDescriptioninteger?
withHoldingTaxAmountstring
contactCode string optional Contact code of the vendor/supplier (e.g. 'C001'). Use SearchContacts if unknown.
contactId string optional Contact ID of the vendor/supplier.
status string optional Document status: 'Draft' or 'Approve'. Default is 'Draft'.
code string optional Expense document code. Peak will auto-generate if omitted.
issuedDate string optional Document issuance date (yyyyMMdd). Defaults to today.
dueDate string optional Document due date (yyyyMMdd). Must be after issuedDate. Defaults to 7 days from today.
reference string optional Reference information for the document.
remark string optional Additional remarks or notes.
taxStatus integer? optional Tax status indicating whether price includes tax or tax is separate. (0 = ExcludeTax, 1 = IncludeTax, 2 = NonTax)
discountTotal string optional Total discount. Cannot exceed net total and only applies when all items have the same tax type.
isTaxInvoice integer? optional Whether the document can be used as a tax invoice (0 = No, 1 = Yes)
tags array[String] optional Labels/tags attached to the document.
withHoldingTaxAmount string optional Withholding tax amount for the document.
preTaxAmount number? optional Amount before tax. PEAK calculates automatically if omitted.
vatAmount number? optional VAT amount. PEAK calculates automatically if omitted.
netAmount number? optional Net amount after tax and discounts. PEAK calculates automatically if omitted.
paymentMethodCode string optional Payment method code (e.g. 'CSH260'). Required to record a paid expense.
paymentMethodId string optional Payment method ID. Use instead of paymentMethodCode if available.
paymentAmount number? optional Payment amount.
paymentDate string optional Payment date (yyyyMMdd). Defaults to today if paying.
paymentAccountCode string optional Payment account code.
paymentAccountSubId string optional Payment sub-account ID.
paymentAccountSubCode string optional Payment sub-account code.
paymentNote string optional Payment note.
isCheque integer? optional Whether payment is by cheque (0 = No, 1 = Yes)
paidPaymentsWithHoldingTaxAmount string optional Withholding tax amount for the payment.
currencyId integer? optional Currency ID for foreign currency transactions.
exchangeRate number? optional Exchange rate for foreign currency transactions.
getResult integer? optional Numeric code to reduce response data.
Response
{
  "PeakExpenses": {
    "resCode": "200",
    "resDesc": "Success",
    "data": [{
      "id": "guid",
      "code": "EXP20240001",
      "status": "Draft",
      "issuedDate": "20240101",
      "dueDate": "20240108",
      "preTaxAmount": 1000.00,
      "vatAmount": 70.00,
      "netAmount": 1070.00
    }]
  }
}
GetExpense
Retrieve one or more Expenses by ID, document code, or reference number. Lookup options (use at least one): id, code (e.g. "EXP-2024-00321"), or reference. Use limit + page to paginate multiple results. Common use cases: - Check remainAmount - Verify Approved status before making payment
0 required · 6 optional
ParameterTypeDescription
code string optional Document code to search for (e.g. 'EXP2023080003').
id string optional Unique identifier of the expense.
reference string optional Reference value to search for linked documents.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number (each page shows 10 entries).
getResult integer? optional Numeric code to reduce the amount of response data received.
Response
{
  "PeakExpenses": {
    "resCode": "200",
    "resDesc": "Success",
    "data": [{
      "id": "guid",
      "code": "EXP20240001",
      "status": "Draft",
      "issuedDate": "20240101",
      "dueDate": "20240108",
      "preTaxAmount": 1000.00,
      "vatAmount": 70.00,
      "netAmount": 1070.00
    }]
  }
}

Invoice

2 tools
CreateInvoice
Creates a sales invoice in PEAK Account for billing a customer. IMPORTANT: Before calling this tool, make sure you have: 1. contactId or contactCode — use SearchContacts first if unknown 2. At least one product/service in the products array (use SearchProducts or accountCode to find) To record payment in the same call, include paymentMethodCode and paymentAmount.
1 required · 29 optional
ParameterTypeDescription
products array[InvoiceProduct] required List of products/services. Each item: productCode, accountCode, description, price, quantity, vatType.
array[InvoiceProduct] fields
FieldType
idstring
productIdstring
productCodestring
descriptionstring
accountCodestring
accountSubIdstring
accountSubCodestring
quantitynumber
pricenumber
discountstring
vatTypeinteger
isDescriptioninteger?
withHoldingTaxAmountstring
contactCode string optional Contact code of the customer (e.g. 'C001'). Use SearchContacts if unknown.
contactId string optional Contact ID of the customer.
status string optional Document status: 'Draft' or 'Approve'. Default is 'Draft'.
code string optional Invoice document code. Peak will auto-generate if omitted.
issuedDate string optional Document issuance date (yyyyMMdd). Defaults to today.
dueDate string optional Document due date (yyyyMMdd). Must be after issuedDate. Defaults to 7 days from today.
reference string optional Reference information for the document.
remark string optional Additional remarks or notes.
taxStatus integer? optional Tax status indicating whether price includes tax or tax is separate. (0 = ExcludeTax, 1 = IncludeTax, 2 = NonTax)
discountTotal string optional Total discount. Cannot exceed net total and only applies when all items have the same tax type.
isTaxInvoice integer? optional Whether the document can be used as a tax invoice (0 = No, 1 = Yes)
tags array[String] optional Labels/tags attached to the document.
withHoldingTaxAmount string optional Withholding tax amount for the document.
preTaxAmount number? optional Amount before tax. PEAK calculates automatically if omitted.
vatAmount number? optional VAT amount. PEAK calculates automatically if omitted.
netAmount number? optional Net amount after tax and discounts. PEAK calculates automatically if omitted.
paymentMethodCode string optional Payment method code (e.g. 'CSH260'). Required to record a paid invoice.
paymentMethodId string optional Payment method ID. Use instead of paymentMethodCode if available.
paymentAmount number? optional Payment amount.
paymentDate string optional Payment date (yyyyMMdd). Defaults to today if paying.
paymentAccountCode string optional Payment account code.
paymentAccountSubId string optional Payment sub-account ID.
paymentAccountSubCode string optional Payment sub-account code.
paymentNote string optional Payment note.
isCheque integer? optional Whether payment is by cheque (0 = No, 1 = Yes)
paidPaymentsWithHoldingTaxAmount string optional Withholding tax amount for the payment.
currencyId integer? optional Currency ID for foreign currency transactions.
exchangeRate number? optional Exchange rate for foreign currency transactions.
getResult integer? optional Numeric code to reduce the amount of response data received.
Response
{
  "PeakInvoices": {
    "resCode": "200",
    "resDesc": "Success",
    "data": [{
      "id": "guid",
      "code": "INV20240001",
      "status": "Draft",
      "issuedDate": "20240101",
      "dueDate": "20240108",
      "preTaxAmount": 1000.00,
      "vatAmount": 70.00,
      "netAmount": 1070.00
    }]
  }
}
GetInvoice
Retrieve one or more Invoices by ID, document code, or reference number. Lookup options (use at least one): id, code (e.g. "INV202412005"), or reference. Use limit + page to paginate multiple results. Common use cases: - Check remainAmount - Verify Approved status before issuing a Receipt
0 required · 6 optional
ParameterTypeDescription
reference string optional If a document has references or is created based on other documents, you can use the value "Reference" to indicate the field that allows searching for that document. This field can be used to link or retrieve the document by its reference value.
code string optional Document code to search for (e.g. 'IVS202308020').
id string optional The Unique Identifier generated by PEAK to identify data.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
getResult integer? optional Numeric code used to reduce the amount of response data received.
Response
{
  "PeakInvoices": {
    "resCode": "200",
    "resDesc": "PeakInvoices have Completed",
    "invoices": [{
      "id": "77dd1ceb-a0f6-44bb-ae9c-525cc8026b34",
      "code": "IVS202308020",
      "issuedDate": "20230815",
      "dueDate": "20230822",
      "contactId": "guid",
      "contactCode": "C01401",
      "status": "Approve",
      "isTaxInvoice": 0,
      "preTaxAmount": 300,
      "vatAmount": 21,
      "netAmount": 321,
      "whtAmount": 0,
      "paymentAmount": 321,
      "remainAmount": 0,
      "documentLink": "https://...",
      "onlineViewLink": "https://...",
      "remark": "...",
      "taxStatus": 0,
      "products": [{ "id": "guid", "productCode": "P001", "accountCode": "410101", "description": "...", "quantity": 1, "price": 300, "vatType": 3 }],
      "paidPayments": [{ "paymentDate": "20230815", "paymentTotal": 321, "payments": [{ "paymentMethodCode": "CSH260", "amount": 321 }], "journals": [{ "id": "guid", "code": "RV-..." }] }],
      "journals": [{ "id": "guid", "code": "SV-..." }]
    }]
  }
}

PaymentMethod

2 tools
GetPaymentMethod
Gets payment methods from Peak Account. Returns payment methods matching the given filters.
0 required · 5 optional
ParameterTypeDescription
code string optional Filter by payment method code
id string optional Filter by payment method unique identifier
limit integer? optional Maximum number of records to retrieve
page integer? optional Page number for pagination
getResult integer? optional Numeric code used to reduce the amount of response data received
Response
{
  "PeakPaymentMethods": {
    "paymentMethods": [
      {
        "id": "c7fb1bae-ff40-4856-9214-b4e30719f233",
        "code": "BSV015",
        "name": "TEST GS BANK",
        "type": 2,
        "memo": "test quick add",
        "carringBalanceValue": 5000,
        "bankId": 18,
        "bankName": "ธนาคารออมสิน",
        "accountType": 2,
        "accountNumber": "888-999-450",
        "isHaveCheque": 1,
        "resCode": "200",
        "resDesc": "Success"
      }
    ],
    "totalPaymentMethod": 973,
    "resDesc": "PeakPaymentMethods have Completed",
    "resCode": "200"
  }
}
CreatePaymentMethod
Creates payment methods in Peak Account. Returns the result of each payment method creation.
0 required · 13 optional
ParameterTypeDescription
id string optional The Unique Identifier generated by PEAK to identify data
code string optional The code displayed in the PEAK
name string optional Payment method name
type integer? optional Type of payment method (0 = Others, 1 = Cash, 2 = BankAccount, 3 = CreditCard, 4 = EWallet)
memo string optional Additional notes or remarks about the product or service
carringBalanceValue integer? optional Carrying balance value
bankId integer? optional The numerical code that indicates a financial institution (If type is 2, bankId is required)
eWalletId integer? optional E-Wallet account number or identifier (If type is 4, accountCode is required)
bankName string optional Name of the bank not available in the system (If type is 0, bankName is required)
accountType integer? optional Type of bank account (1 = Current, 2 = Savings, 3 = FixedDeposit)
accountNumber string optional Bank account number
isHaveCheque integer? optional Whether this bank account can issue cheques (0 = No, 1 = Yes)
accountCode string optional Account to record transactions from the E-Wallet (If type is 4, accountCode is required)
Response
{
  "PeakPaymentMethods": {
    "paymentMethods": [
      {
        "id": "9c6a2aab-0d03-4e65-92fe-fdad517daa69",
        "code": "BSV290",
        "name": "Payment method's name",
        "type": 2,
        "carringBalanceValue": 125632,
        "bankId": 10,
        "bankName": "ธนาคารทิสโก้ จำกัด (มหาชน)",
        "accountType": 2,
        "accountNumber": "3011199912123",
        "isHaveCheque": 1,
        "resCode": "200",
        "resDesc": "Success"
      }
    ],
    "resDesc": "PeakPaymentMethods have Completed",
    "resCode": "200"
  }
}

Product

2 tools
SearchProducts
Searches for products in Peak Account. Returns products matching the given filters. Returns: productId, productCode, name, price, vatType, unit — use productId when referencing items in other tools.
0 required · 4 optional
ParameterTypeDescription
year string optional Filter by year (e.g. '2024').
searchText string optional Search keyword for product name or related data.
limit integer? optional Maximum number of products to retrieve.
page integer? optional Page number (each page shows 10 entries).
Response
{
  "PeakProducts": {
    "resCode": "200",
    "resDesc": "Success",
    "data": [{
      "id": "guid",
      "code": "P001",
      "name": "Product Name",
      "type": 1,
      "sellValue": 100.00,
      "sellVatType": 3,
      "purchaseValue": 80.00,
      "purchaseVatType": 3
    }]
  }
}
CreateProduct
Creates a new product or service in Peak Account. Returns the created product details. Use this tool when the desired item does not yet exist in the system — call SearchProduct first to avoid creating duplicates. Returns: productId — save this to use as a line item reference in CreateInvoice, CreateExpense, CreatePurchaseOrder, etc.
1 required · 16 optional
ParameterTypeDescription
name string required Product/service name.
type integer optional Product/service type (1 = Product, 2 = Service). Default is 1.
code string optional Product code displayed in PEAK. Peak will auto-generate if omitted.
description string optional Additional description of the product/service.
sellValue number optional Selling price per unit.
sellVatType integer optional Selling tax rate (VAT Type). Default is 3. (1 = None, 2 = ZeroPercent, 3 = SevenPercent)
sellAccount string optional Account code for selling transactions (e.g. '410101').
purchaseValue number? optional Purchase price per unit.
purchaseVatType integer? optional Purchase tax rate (VAT Type). (1 = None, 2 = ZeroPercent, 3 = SevenPercent)
purchaseAccount string optional Account code for purchase transactions (e.g. '114102').
carryingBalanceValue number? optional Carrying balance value.
carryingBalanceAmount number? optional Carrying balance amount.
unitId string optional Unit ID.
unitCode string optional Unit code.
unitNameTh string optional Unit name in Thai.
unitNameEn string optional Unit name in English.
id string optional Existing product ID (for referencing an existing product).
Response
{
  "PeakProducts": {
    "resCode": "200",
    "resDesc": "Success",
    "data": [{
      "id": "guid",
      "code": "P001",
      "name": "Product Name",
      "type": 1
    }]
  }
}

PurchaseOrder

2 tools
CreatePurchaseOrder
Create a Purchase Order (PO) to formally request goods or services from a vendor. A PO captures the vendor, expected items, quantities, and prices before the actual expense is incurred. Workflow: PO → (convert to) Expense → Expense Payment Returns: purchaseOrderId and code — save these to pass into CreateExpense when converting the PO into an actual expense.
1 required · 28 optional
ParameterTypeDescription
products array[InvoiceProduct] required An array of objects that will contain various data for the list of products or services
array[InvoiceProduct] fields
FieldType
idstring
productIdstring
productCodestring
descriptionstring
accountCodestring
accountSubIdstring
accountSubCodestring
quantitynumber
pricenumber
discountstring
vatTypeinteger
isDescriptioninteger?
withHoldingTaxAmountstring
code string optional The code displayed in the PEAK. If no value is provided, PEAK will generate it automatically
issuedDate string optional Document issuance date
dueDate string optional Document due date, which must be after the document issuance date
contactId string optional Unique Identifier of the contact associated with the document
contactCode string optional Code of the contact associated with the document (If contactId has been assigned a value, contactCode is not required)
reference string optional Reference information of the document
remark string optional Additional remarks or notes
taxStatus integer? optional Specify the tax status of the document to indicate whether the price includes tax or the tax is separate (0 = ExcludeTax, 1 = IncludeTax, 2 = NonTax)
discountTotal string optional The total discount should not exceed the net total of the document or be greater than 100%. Additionally, it can only be applied when the tax type of each item is the same
isTaxInvoice integer? optional Whether the document can be used as a tax invoice (0 = No, 1 = Yes)
tags array[String] optional Label attached to someone or something for the purpose of identification or to give other information
status string optional Status of the document, which can have multiple states such as Draft, Approve, Voided, etc
preTaxAmount number? optional Amount before tax is applied (If value is null, PEAK will calculate it automatically)
vatAmount number? optional Tax collected from the increased value of products or services (If value is null, PEAK will calculate it automatically)
netAmount number? optional Total value of the document after tax and discounts have been applied (If value is null, PEAK will calculate it automatically)
paymentMethodCode string optional Payment method code. Required to record a paid purchase order.
paymentMethodId string optional The Unique Identifier of the payment method
paymentAmount number? optional Payment amount
paymentDate string optional Payment date in the format yyyyMMdd
paymentAccountCode string optional Account code to be used for recording financial transactions
paymentAccountSubId string optional Sub account Unique Identifier to be used for recording financial transactions
paymentAccountSubCode string optional Sub account code to be used for recording financial transactions
paymentNote string optional Additional remarks or notes for that specific payment received
isCheque integer? optional Whether this payment is made by Cheque (0 = No, 1 = Yes)
paidPaymentsWithHoldingTaxAmount string optional Withholding tax amount for the payment
currencyId integer? optional Currency ID for foreign currency transactions
exchangeRate number? optional Exchange rate for foreign currency transactions
getResult integer? optional Numeric code used to reduce the amount of response data received
Response
{
  "PeakPurchaseOrders": {
    "resCode": "200",
    "resDesc": "PeakPurchaseOrders have Completed",
    "purchaseOrders": [{
      "id": "b6dbb6d7-b38e-4e2b-ac44-f321f38b4a3a",
      "code": "PO-2023010004",
      "issuedDate": "20230817",
      "dueDate": "20230818",
      "contactId": "917c3e8f-b315-4968-b8cc-08e2220d8682",
      "contactCode": "C01401",
      "status": "Approve",
      "isTaxInvoice": 0,
      "preTaxAmount": 200,
      "vatAmount": 0,
      "netAmount": 200,
      "whtAmount": 0,
      "taxStatus": 0,
      "products": [{ "id": "guid", "accountCode": "114102", "description": "Design by Peak", "quantity": 1, "price": 200, "vatType": 1 }],
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
GetPurchaseOrder
Retrieve the full details of a single Purchase Order by its ID, including status, line items, linked expenses, payment history, and remaining balance. Common use cases: - Check PO status (Draft / Approved / Partially Received / Closed) before taking next action - Confirm remaining balance before createExpense - Retrieve associated expenseId or journalId for downstream workflows
0 required · 6 optional
ParameterTypeDescription
dateStart string optional Start date for filtering purchase orders (format yyyyMMdd).
dateEnd string optional End date for filtering purchase orders (format yyyyMMdd).
status integer? optional Filter by document status (0 = None, 1 = Voided, 2 = Draft, 3 = AwaitApproval, 4 = Outstanding, 5 = Overdue, 6 = PaidOrAwaitReceipt)
searchText string optional Text to search for in purchase orders.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
Response
{
  "PeakPurchaseOrders": {
    "purchaseOrders": [
      {
        "code": "PO2023080002",
        "issuedDate": "20230809",
        "contactId": "bced4f76-8dbf-4518-ab75-c92437471f08",
        "contactCode": "572608351",
        "netAmount": 107,
        "documentLink": "https://...",
        "onlineViewLink": "https://...",
        "resCode": "200",
        "resDesc": "Success"
      }
    ],
    "totalPurchaseOrder": 1,
    "resDesc": "Success",
    "resCode": "200"
  }
}

Quotation

2 tools
CreateQuotation
Creates a sales quotation (ใบเสนอราคา) in PEAK Account to send to a potential customer. Use this as the first step in the sales workflow: Quotation -> Invoice -> Receipt. IMPORTANT: Before calling this tool: 1. contactId or contactCode — the vendor/supplier (use SearchContacts or CreateContact) 2. At least one product/service in the products array (use SearchProducts or accountCode to find)
1 required · 28 optional
ParameterTypeDescription
products array[InvoiceProduct] required An array of objects that will contain various data for the list of products or services
array[InvoiceProduct] fields
FieldType
idstring
productIdstring
productCodestring
descriptionstring
accountCodestring
accountSubIdstring
accountSubCodestring
quantitynumber
pricenumber
discountstring
vatTypeinteger
isDescriptioninteger?
withHoldingTaxAmountstring
code string optional The code displayed in the PEAK. If no value is provided, PEAK will generate it automatically
issuedDate string optional Document issuance date
dueDate string optional Document due date, which must be after the document issuance date
contactId string optional Unique Identifier of the contact associated with the document
contactCode string optional Code of the contact associated with the document (If contactId has been assigned a value, contactCode is not required)
reference string optional Reference information of the document
remark string optional Additional remarks or notes
taxStatus integer? optional Specify the tax status of the document to indicate whether the price includes tax or the tax is separate (0 = ExcludeTax, 1 = IncludeTax, 2 = NonTax)
discountTotal string optional The total discount should not exceed the net total of the document or be greater than 100%. Additionally, it can only be applied when the tax type of each item is the same
isTaxInvoice integer? optional Whether the document can be used as a tax invoice (0 = No, 1 = Yes)
tags array[String] optional Label attached to someone or something for the purpose of identification or to give other information
status string optional Status of the document, which can have multiple states such as Draft, Approve, Voided, etc (Default: Draft)
preTaxAmount number? optional Amount before tax is applied (If value is null, PEAK will calculate it automatically)
vatAmount number? optional Tax collected from the increased value of products or services (If value is null, PEAK will calculate it automatically)
netAmount number? optional Total value of the document after tax and discounts have been applied (If value is null, PEAK will calculate it automatically)
paymentMethodCode string optional Payment method code. Required to record a paid quotation.
paymentMethodId string optional The Unique Identifier of the payment method
paymentAmount number? optional Payment amount
paymentDate string optional Payment date in the format yyyyMMdd
paymentAccountCode string optional Account code to be used for recording financial transactions
paymentAccountSubId string optional Sub account Unique Identifier to be used for recording financial transactions
paymentAccountSubCode string optional Sub account code to be used for recording financial transactions
paymentNote string optional Additional remarks or notes for that specific payment received
isCheque integer? optional Whether this payment is made by Cheque (0 = No, 1 = Yes)
paidPaymentsWithHoldingTaxAmount string optional Withholding tax amount for the payment
currencyId integer? optional Currency ID for foreign currency transactions
exchangeRate number? optional Exchange rate for foreign currency transactions
getResult integer? optional Numeric code used to reduce the amount of response data received
Response
{
  "PeakQuotations": {
    "resCode": "200",
    "resDesc": "PeakQuotations have Completed",
    "quotations": [{
      "id": "b6dbb6d7-b38e-4e2b-ac44-f321f38b4a3a",
      "code": "QOU-230817000000012",
      "issuedDate": "20230817",
      "dueDate": "20230818",
      "contactId": "917c3e8f-b315-4968-b8cc-08e2220d8682",
      "contactCode": "C01401",
      "status": "Approve",
      "isTaxInvoice": 0,
      "preTaxAmount": 200,
      "vatAmount": 0,
      "netAmount": 200,
      "whtAmount": 0,
      "taxStatus": 0,
      "products": [{ "id": "guid", "accountCode": "114102", "description": "Design by Peak", "quantity": 1, "price": 200, "vatType": 1 }],
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
GetQuotation
Retrieve one or more Quotations by ID, document code, or reference number. Lookup options (use at least one): id, code (e.g. "QT202412005"), or reference. Use limit + page to paginate multiple results. Common use cases: - Check status (Draft/Approved/Void) before converting to Invoice
0 required · 6 optional
ParameterTypeDescription
reference string optional If a document has references or is created based on other documents, you can use the value "Reference" to indicate the field that allows searching for that document.
code string optional Document code to search for (e.g. 'QOU-230118000000000').
id string optional The Unique Identifier generated by PEAK to identify data.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
getResult integer? optional Numeric code used to reduce the amount of response data received.
Response
{
  "PeakQuotations": {
    "resCode": "200",
    "resDesc": "PeakQuotations have Completed",
    "quotations": [{
      "id": "c4311f2f-e2eb-474c-b32a-4db1ce49d974",
      "code": "QOU-230118000000000",
      "issuedDate": "20230118",
      "dueDate": "20230125",
      "contactId": "5106bf55-8939-409f-a2d5-ef84f9c4bc9d",
      "contactCode": "C00006",
      "status": "Draft",
      "isTaxInvoice": 0,
      "preTaxAmount": 220,
      "vatAmount": 7.7,
      "netAmount": 227.7,
      "whtAmount": 0,
      "documentLink": "https://...",
      "onlineViewLink": "https://...",
      "remark": "...",
      "taxStatus": 0,
      "products": [{ "id": "guid", "productCode": "P00002", "accountCode": "410101", "description": "...", "quantity": 1, "price": 110, "vatType": 1 }],
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}

Receipt

2 tools
GetReceipt
Retrieve one or more Receipts by ID, document code, or reference number. Lookup options (use at least one): id, code (e.g. "RT202605001"), or reference. Use limit + page to paginate multiple results. Common use cases: - Confirm receipt was issued successfully
0 required · 6 optional
ParameterTypeDescription
dateStart string optional Filter by document start date
dateEnd string optional Filter by document end date
status integer? optional Filter by document status (0 = None, 1 = Voided, 2 = Draft, 3 = AwaitApproval, 4 = Outstanding, 5 = Overdue, 6 = PaidOrAwaitReceipt)
searchText string optional Search keyword for receipt data
limit integer? optional Maximum number of records to retrieve
page integer? optional Page number for pagination
Response
{
  "PeakReceipts": {
    "receipts": [
      {
        "code": "RTZ202308008",
        "issuedDate": "20230807",
        "contactId": "5b37fe57-aa7d-49ed-ba8b-a01bf2aeee37",
        "contactCode": "C02974",
        "isTaxInvoice": 0,
        "netAmount": 278.2,
        "remainAmount": 0,
        "documentLink": "https://...",
        "onlineViewLink": "https://...",
        "resCode": "200",
        "resDesc": "Success"
      }
    ],
    "totalReceipt": 3,
    "resDesc": "PeakReceipts have Completed",
    "resCode": "200"
  }
}
CreateReceipt
Creates a receipt in Peak Account. Returns the created receipt details.
1 required · 28 optional
ParameterTypeDescription
products array[InvoiceProduct] required An array of objects that will contain various data for the list of products or services. Each item: productCode, accountCode, description, price, quantity, vatType.
array[InvoiceProduct] fields
FieldType
idstring
productIdstring
productCodestring
descriptionstring
accountCodestring
accountSubIdstring
accountSubCodestring
quantitynumber
pricenumber
discountstring
vatTypeinteger
isDescriptioninteger?
withHoldingTaxAmountstring
contactCode string optional Code of the contact associated with the document. Use SearchContacts if unknown.
contactId string optional Unique Identifier of the contact associated with the document. If contactId has been assigned a value, contactCode is not required.
status string optional Status of the document, which can have multiple states such as Draft, Approve, Voided, etc. Default is 'Draft'.
code string optional The code displayed in PEAK. If no value is provided, PEAK will generate it automatically.
issuedDate string optional Document issuance date (yyyyMMdd). Defaults to today.
dueDate string optional Document due date (yyyyMMdd), which must be after the document issuance date. Defaults to 7 days from today.
reference string optional Reference information of the document.
remark string optional Additional remarks or notes.
taxStatus integer? optional Specify the tax status of the document to indicate whether the price includes tax or the tax is separate. (0 = ExcludeTax, 1 = IncludeTax, 2 = NonTax)
discountTotal string optional The total discount should not exceed the net total of the document or be greater than 100%. Additionally, it can only be applied when the tax type of each item is the same.
isTaxInvoice integer? optional Whether the document can be used as a tax invoice (0 = No, 1 = Yes)
tags array[String] optional Label attached to someone or something for the purpose of identification or to give other information.
preTaxAmount number? optional Amount before tax is applied. If value is null, PEAK will calculate it automatically.
vatAmount number? optional Tax collected from the increased value of products or services. If value is null, PEAK will calculate it automatically.
netAmount number? optional Total value of the document after tax and discounts have been applied. If value is null, PEAK will calculate it automatically.
paymentMethodCode string optional Code of the payment method. If paymentMethodId has been assigned a value, paymentMethodCode is not required.
paymentMethodId string optional The Unique Identifier of the payment method.
paymentAmount number? optional Payment amount.
paymentDate string optional Payment date in the format yyyyMMdd. Defaults to today if paying.
paymentAccountCode string optional Account code to be used for recording financial transactions.
paymentAccountSubId string optional Sub account Unique Identifier to be used for recording financial transactions.
paymentAccountSubCode string optional Sub account code to be used for recording financial transactions.
paymentNote string optional Additional remarks or notes for that specific payment received.
isCheque integer? optional Whether this payment is made by Cheque (0 = No, 1 = Yes)
paidPaymentsWithHoldingTaxAmount string optional Withholding tax amount for the payment.
currencyId integer? optional Currency ID for foreign currency transactions.
exchangeRate number? optional Exchange rate for foreign currency transactions.
getResult integer? optional Numeric code used to reduce the amount of response data received.
Response
{
  "PeakReceipts": {
    "resCode": "200",
    "resDesc": "PeakReceipts have Completed",
    "receipts": [{
      "id": "77dd1ceb-a0f6-44bb-ae9c-525cc8026b34",
      "code": "RTZ202308020",
      "issuedDate": "20230815",
      "dueDate": "20230822",
      "contactId": "guid",
      "contactCode": "C01401",
      "status": "Approve",
      "isTaxInvoice": 0,
      "preTaxAmount": 300,
      "vatAmount": 21,
      "netAmount": 321,
      "whtAmount": 0,
      "paymentAmount": 321,
      "remainAmount": 0,
      "documentLink": "https://...",
      "onlineViewLink": "https://...",
      "taxStatus": 0,
      "products": [{ "id": "guid", "productCode": "P001", "accountCode": "410101", "description": "...", "quantity": 1, "price": 300, "vatType": 3 }],
      "paidPayments": [{ "paymentDate": "20230815", "paymentTotal": 321, "payments": [{ "paymentMethodCode": "CSH260", "amount": 321 }], "journals": [{ "id": "guid", "code": "RV-..." }] }],
      "journals": [{ "id": "guid", "code": "SV-..." }],
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}

Service

2 tools
CreateService
Create a new service item in the PEAK catalog. Services represent billable work or fees (e.g., consulting, maintenance, subscription) — they are not tracked as inventory and have no stock quantity. Both purchase price (cost) and sell price (revenue) can be set with separate VAT types and GL account codes. Returns: serviceId — use this as a line item reference in Invoice, Expense, or PO documents.
0 required · 17 optional
ParameterTypeDescription
id string optional The Unique Identifier generated by PEAK to identify data
name string optional Product/Service name
type integer? optional Numeric code indicate whether it is a product or a service (0 = None, 1 = Product, 2 = Service)
code string optional The code displayed in the PEAK
purchaseValue number? optional Purchase price per unit
purchaseVatType integer? optional Purchase tax rate (1 = None, 2 = ZeroPercent, 3 = SevenPercent)
purchaseAccount string optional Account used to record purchase transactions
sellValue number? optional Selling price per unit
sellVatType integer? optional Selling tax rate (1 = None, 2 = ZeroPercent, 3 = SevenPercent)
sellAccount string optional Account used to record selling transactions
description string optional Additional description of the product/service
carryingBalanceValue number? optional Carrying balance value
carryingBalanceAmount number? optional Carrying balance amount
unitId string optional Unit ID
unitCode string optional Unit code
unitNameTh string optional Unit name in Thai
unitNameEn string optional Unit name in English
Response
{
  "PeakServices": {
    "resCode": "200",
    "resDesc": "PeakServices have Completed",
    "services": [{
      "id": "09b31e2e-33e0-488c-89a4-a48b8b131475",
      "name": "Create Service Example 1",
      "code": "P00001",
      "type": 1,
      "purchaseValue": 10,
      "purchaseVatType": 3,
      "purchaseAccount": "114102",
      "sellValue": 100,
      "sellVatType": 3,
      "sellAccount": "410101",
      "description": "Design by PEAK",
      "carryingBalanceValue": 20,
      "carryingBalanceAmount": 15,
      "remainingBalanceAmount": 20,
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}
GetService
Search the service catalog by keyword (name or code) and return a paginated list of services with their IDs, prices, VAT types, and account codes. Use this before creating any document that includes service line items to look up the correct serviceId and serviceCode. Returns: serviceId, name, code, sellValue, sellVatType, purchaseValue, purchaseVatType, unit.
0 required · 4 optional
ParameterTypeDescription
year string optional Filter by year (e.g. '2024').
searchText string optional Search keyword for service name or related data.
limit integer? optional Maximum number of entries to retrieve.
page integer? optional Page number for displaying data, where each page will show 10 entries.
Response
{
  "PeakServices": {
    "resCode": "200",
    "resDesc": "PeakServices have Completed",
    "totalService": 2650,
    "services": [{
      "id": "b0d31e48-a519-49b5-9750-29e9671299d3",
      "name": "Service Example 1",
      "code": "P00001",
      "type": 1,
      "resCode": "200",
      "resDesc": "Success"
    }]
  }
}

Tag

2 tools
InsertTag
Adds tags (labels) to one or more PEAK documents for categorization and filtering. Use this to organize documents by period, project, department, or any custom label. Example: tag all Q1 expenses with 'Q1-2025', or mark documents for 'Project-ABC'.
1 param
ParameterTypeDescription
peakTags array[PeakTagItem] required An array of PeakTagItem objects. Each object identifies one document and the tags to insert. Example: [{"transactionId":"123","transactionTypeId":106,"tags":["expense","Q1"]}]
array[PeakTagItem] fields
FieldType
transactionIdstring
transactionCodestring
transactionTypeIdinteger?
tagsarray[String]
Response
{
  "PeakTags": [
    {
      "transactionTypeId": 106,
      "resCode": "200",
      "resDesc": "Success"
    }
  ]
}
RemoveTag
Remove tags from documents in Peak Account. Returns the result of each tag removal.
1 param
ParameterTypeDescription
peakTags array[PeakTagItem] required An array of PeakTagItem objects. Each object identifies one document and the tags to remove. Example: [{"transactionId":"123","transactionTypeId":106,"tags":["expense","Q1"]}]
array[PeakTagItem] fields
FieldType
transactionIdstring
transactionCodestring
transactionTypeIdinteger?
tagsarray[String]
Response
{
  "PeakTags": [
    {
      "transactionTypeId": 106,
      "resCode": "200",
      "resDesc": "Success"
    }
  ]
}

Enum Reference

All integer enum values used across tools
Contact
Enum values for contact parameters
ParameterValueName
type0None
1LimitedLiabilityPartnership
2CompanyLimited
3PublicCompanyLimited
4Shop
5OrdinaryPerson
6BodyOfPersons
7Others
8OrdinaryPartnership
9Foundation
10Association
11JointVenture
status0All
1Active
2Inactive
prefixNameType
required when type=5
0None
1Sir
2Mr
3Mrs
4Ms
5Other
Product / Service
Enum values for product and service parameters
ParameterValueName
type0None
1Product
2Service
sellVatType
purchaseVatType
1None
2ZeroPercent
3SevenPercent
Document (shared)
Enum values shared across Invoice, Expense, Receipt, Quotation, PurchaseOrder, BillingNote, CreditNote
ParameterValueName
taxStatus0ExcludeTax
1IncludeTax
2NonTax
isTaxInvoice0No
1Yes
isCheque
returnPaymentIsCheque
0No
1Yes
status
filter in Get methods
0None
1Voided
2Draft
3AwaitApproval
4Outstanding
5Overdue
6PaidOrAwaitReceipt
Transaction Type
transactionType — used in CreditNote and Classification tools
ParameterValueName
transactionType0None
1Quotation
2Invoice
3Receipt
4TaxInvoice
5CreditNote
6BillingNote
7DebitNote
11Dailyjournal
Credit Note
Enum values specific to credit note parameters
ParameterValueName
reasonType0None
1PromotionAndMarketing
2OfficeUse
3ProductionUse
4ServiceUse
5Donation
6DamageOrLoss
7Others
creditNoteStyleType0General
1ThaiPopular
goodsReturn0No
1Yes
Payment Method
Enum values for payment method parameters
ParameterValueName
type0Others (bankName required)
1Cash
2BankAccount (bankId required)
3CreditCard
4EWallet (accountCode & eWalletId required)
accountType1Current
2Savings
3FixedDeposit
isHaveCheque0No
1Yes