Skip to main content

ตัวอย่างการใช้งาน JavaScript SDK

Authentication API

All URIs are relative to https://openapi.flowaccount.com/v1

NameMethodpathDescription
tokenPostPOST/tokengenerate access token

สำหรับลูกค้าที่เชื่อมต่อแบบ client credentials

Parameter

NametypeDescriptionValue
contentTypestringThe media type of the resourceapplication/x-www-form-urlencoded
grantTypestringThe OAuth 2.0 grant type being usedclient_credentials
scopestringThe specific API access levelflowaccount-api
clientIdstringThe application's client IDrequest clientId from FlowAccount
clientSecretstringThe application's client secretrequest clientSecret from FlowAccount

Generate Access Token

  1. import openapi-sdk
    const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
  1. 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'
  1. 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

NametypeDescriptionValue
contentTypestringThe media type of the resourceapplication/x-www-form-urlencoded
grantTypestringThe OAuth 2.0 grant type being usedclient_credentials
scopestringThe specific API access levelflowaccount-api
clientIdstringThe application's client IDrequest clientId from FlowAccount
clientSecretstringThe application's client secretrequest clientSecret from FlowAccount
guidstringA unique identifier for a customer

Generate Access Token (OpenID)

  1. import openapi-sdk
    const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
  1. 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'
  1. 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

NameMethodpathDescription
cashInvoicesPostPOST/cash-invoicesCreate cash invoices document

Parameters

NametypeDescriptionNotes
authorizationstringverify userBearer accessToken from tokenPost
simpleDocumentSimpleDocumentType DocumentRef.SimpleDocument Data Type

Create cash invoice document

  1. import openapi-sdk and document type
    const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
const { SimpleDocument, SimpleProductItem } = require('@flowaccount/openapi-sdk')
  1. Set authorized by accessToken
    const authorization = `Bearer ${accessToken}`
  1. Set productItem and document
    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
  1. 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

NameMethodpathDescription
taxInvoicesPostPOST/tax-invoicesCreate tax-invoices document

Parameters

NametypeDescriptionNotes
authorizationstringverify userBearer accessToken from tokenPost
simpleDocumentSimpleDocumentType DocumentRef.SimpleDocument Data Type

Create tax invoice

  1. import openapi-sdk and document type
    const flowAccountOpenApi = require('@flowaccount/openapi-sdk')
const { SimpleDocument, SimpleProductItem } = require('@flowaccount/openapi-sdk')
  1. Set authorized by accessToken
    const authorization = `Bearer ${accessToken}`
  1. Set productItem and document
    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
  1. 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)})