ตัวอย่างการใช้งาน JavaScript SDK
Authentication API
All URIs are relative to https://openapi.flowaccount.com/v1
Name | Method | path | Description |
---|---|---|---|
tokenPost | POST | /token | generate access token |
สำหรับลูกค้าที่เชื่อมต่อแบบ client credentials
Parameter
Name | type | Description | Value |
---|---|---|---|
contentType | string | The media type of the resource | application/x-www-form-urlencoded |
grantType | string | The OAuth 2.0 grant type being used | client_credentials |
scope | string | The specific API access level | flowaccount-api |
clientId | string | The application's client ID | request clientId from FlowAccount |
clientSecret | string | The application's client secret | request clientSecret from FlowAccount |
Generate Access Token
import
openapi-sdk
const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
- Setup header parameter
const clientId = 'your-client-id'
const clientSecret = 'your-client-secret'
const contentType = 'application/x-www-form-urlencoded'
const grantType = 'client_credentials'
const scope = 'flowaccount-api'
- Use method
tokenPost
for generate access token
const api = new flowAccountOpenApi.Authentication()
api.tokenPost(contentType, grantType, scope, clientId, clientSecret)
.then(response => console.log( 'response: ', response.body))
.catch(error => console.log('error: ' , error))
สำหรับลูกค้าที่เชื่อมต่อแบบ OpenID
Parameter
Name | type | Description | Value |
---|---|---|---|
contentType | string | The media type of the resource | application/x-www-form-urlencoded |
grantType | string | The OAuth 2.0 grant type being used | client_credentials |
scope | string | The specific API access level | flowaccount-api |
clientId | string | The application's client ID | request clientId from FlowAccount |
clientSecret | string | The application's client secret | request clientSecret from FlowAccount |
guid | string | A unique identifier for a customer |
Generate Access Token (OpenID)
import
openapi-sdk
const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
- Setup header parameter
const clientId = 'your-client-id'
const clientSecret = 'your-client-secret'
const contentType = 'application/x-www-form-urlencoded'
const grantType = 'client_credentials'
const scope = 'flowaccount-api'
- Use method
tokenPost
for generate access token
const api = new flowAccountOpenApi.Authentication()
api.tokenPost(contentType, grantType, scope, clientId, clientSecret, guid)
.then(response => console.log('response: ', response.body))
.catch(error => console.log('error: ' , error))
Cash invoice API
Name | Method | path | Description |
---|---|---|---|
cashInvoicesPost | POST | /cash-invoices | Create cash invoices document |
Parameters
Name | type | Description | Notes |
---|---|---|---|
authorization | string | verify user | Bearer accessToken from tokenPost |
simpleDocument | SimpleDocument | Type Document | Ref.SimpleDocument Data Type |
Create cash invoice document
import
openapi-sdk and document type
const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
const { SimpleDocument, SimpleProductItem } = require('@flowaccount/openapi-sdk')
- Set authorized by accessToken
const authorization = `Bearer ${accessToken}`
- Set
productItem
anddocument
const simpleItem = new SimpleProductItem()
simpleItem.sku = 'customer-product-sku'
simpleItem.name = 'customer-product-name'
simpleItem.type = 5
simpleItem.total = 1000
simpleItem.pricePerUnit = 200
simpleItem.quantity = 5
simpleItem.unitName = 'unit'
simpleItem.buyChartOfAccountCode = ''
simpleItem.sellChartOfAccountCode ='41110'
simpleItem.description = 'product-description'
const items = []
items.push(simpleItem)
const document = new SimpleDocument()
document.recordId = 0
document.contactCode = 'contact-code'
document.contactName = 'name-customer'
document.contactAddress = 'customer-contact-address'
document.contactTaxId = '1234567890123'
document.contactBranch = 'main-branch'
document.contactPerson = 'contact-person'
document.contactEmail = 'contact-email'
document.contactNumber = '099-999-9999'
document.contactZipCode = '11000'
document.contactGroup = 1
document.publishedOn = '2025-07-21'
document.creditType = 3
document.creditDays = 0
document.dueDate = '2025-07-21'
document.salesName = 'Sale man 001'
document.projectName = 'project SDK'
document.reference = 'INV2025'
document.isVatInclusive = false
document.isVat = false
document.useReceiptDeduction = false
document.subTotal = 1000
document.discountPercentage = 5
document.discountAmount = 50
document.totalAfterDiscount = 50
document.items = items
document.documentShowWithholdingTax = false
document.documentStructureType = 'Simple document'
document.grandTotal = 950
- Use method
cashInvoicesPost
for create document
const api = new flowAccountOpenApi.CashInvoiceApi()
api.cashInvoicesPost(authorization, document)
.then(response => {console.log('response create cash invoice: ', response.body)})
.catch(error => {console.log('error: ', error)})
Tax invoices API
Name | Method | path | Description |
---|---|---|---|
taxInvoicesPost | POST | /tax-invoices | Create tax-invoices document |
Parameters
Name | type | Description | Notes |
---|---|---|---|
authorization | string | verify user | Bearer accessToken from tokenPost |
simpleDocument | SimpleDocument | Type Document | Ref.SimpleDocument Data Type |
Create tax invoice
import
openapi-sdk and document type
const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
const { SimpleDocument, SimpleProductItem } = require('@flowaccount/openapi-sdk')
- Set authorized by accessToken
const authorization = `Bearer ${accessToken}`
- Set
productItem
anddocument
const simpleItem = new SimpleProductItem()
simpleItem.sku = 'customer-product-sku'
simpleItem.name = 'customer-product-name'
simpleItem.type = 5
simpleItem.total = 1000
simpleItem.pricePerUnit = 200
simpleItem.quantity = 5
simpleItem.unitName = 'unit'
simpleItem.buyChartOfAccountCode = ''
simpleItem.sellChartOfAccountCode ='41110'
simpleItem.description = 'product-description'
const items = []
items.push(simpleItem)
const document = new SimpleDocument()
document.recordId = 0
document.contactCode = 'contact-code'
document.contactName = 'name-customer'
document.contactAddress = 'customer-contact-address'
document.contactTaxId = '1234567890123'
document.contactBranch = 'main-branch'
document.contactPerson = 'contact-person'
document.contactEmail = 'contact-email'
document.contactNumber = '099-999-9999'
document.contactZipCode = '11000'
document.contactGroup = 1
document.publishedOn = '2025-07-21'
document.creditType = 3
document.creditDays = 0
document.dueDate = '2025-07-21'
document.salesName = 'Sale man 001'
document.projectName = 'project SDK'
document.reference = 'INV2025'
document.isVatInclusive = false
document.isVat = false
document.useReceiptDeduction = false
document.subTotal = 1000
document.discountPercentage = 5
document.discountAmount = 50
document.totalAfterDiscount = 50
document.items = items
document.documentShowWithholdingTax = false
document.documentStructureType = 'Simple document'
document.grandTotal = 950
- Use method
taxInvoicesPost
for create tax invoice document
const api = new flowAccountOpenApi.CashInvoiceApi()
api.cashInvoicesPost(authorization, document)
.then(response => {console.log( 'response create tax invoice: ', response.body)})
.catch(error => {console.log('error: ', error)})