Actions
The ballerinax/microsoft.dynamics365.finance.tax package exposes the following clients:
| Client | Purpose |
|---|---|
Client | Provides create, read, update, and delete access to Microsoft Dynamics 365 Finance and Operations tax master data and configuration entities via OData. |
Client
Provides create, read, update, and delete access to Microsoft Dynamics 365 Finance and Operations tax master data and configuration entities via OData.
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
auth | OAuth2ClientCredentialsGrantConfig | Required | OAuth2 client credentials grant configuration used to authenticate with Microsoft Entra ID (tokenUrl, clientId, clientSecret, scopes). |
httpVersion | http:HttpVersion | http:HTTP_2_0 | HTTP protocol version to use for outbound requests. |
http1Settings | http:ClientHttp1Settings | {} | Configurations related to the HTTP/1.x protocol. |
secureSocket | http:ClientSecureSocket? | () | SSL/TLS configuration for secure connections. |
proxy | http:ProxyConfig? | () | HTTP proxy server configuration. |
Initializing the client
import ballerinax/microsoft.dynamics365.finance.tax;
configurable string tokenUrl = ?;
configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string serviceUrl = ?;
tax:Client fo = check new (
{
auth: {
tokenUrl,
clientId,
clientSecret
}
},
serviceUrl
);
Operations
CFOP Codes
listCFOPCodes
Lists CFOP (Código Fiscal de Operações e Prestações) codes used for Brazilian fiscal document classification.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListCFOPCodesQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: CFOPCodesCollection|error
Sample code:
tax:CFOPCodesCollection result = check fo->listCFOPCodes();
createCFOPCodes
Creates a CFOP code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CFOPCodes | Yes | The CFOP code record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: CFOPCodes|error
Sample code:
tax:CFOPCodes result = check fo->createCFOPCodes({
dataAreaId: "BRMF",
cFOP: "5102",
name: "Sale of production - within state",
direction: "Outgoing",
purpose: "Shipment"
});
getCFOPCodes
Retrieves a CFOP code by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier, e.g. "BRMF". |
cFOP | string | Yes | The CFOP key field, e.g. "5102". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetCFOPCodesQueries | No | OData query options: $expand, $select. |
Returns: CFOPCodes|error
Sample code:
tax:CFOPCodes result = check fo->getCFOPCodes("BRMF", "5102");
deleteCFOPCodes
Deletes a CFOP code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
cFOP | string | Yes | The CFOP key field. |
headers | DeleteCFOPCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteCFOPCodes("BRMF", "5102");
updateCFOPCodes
Updates a CFOP code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
cFOP | string | Yes | The CFOP key field. |
payload | CFOPCodes | Yes | The fields to update. |
headers | UpdateCFOPCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: CFOPCodes|error
Sample code:
tax:CFOPCodes result = check fo->updateCFOPCodes("BRMF", "5102", {
name: "Sale of production - within state (revised)"
});
CFOP Groups
listCFOPGroups
Lists CFOP groups used to bucket CFOP codes for Brazilian tax determination.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListCFOPGroupsQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: CFOPGroupsCollection|error
Sample code:
tax:CFOPGroupsCollection result = check fo->listCFOPGroups();
createCFOPGroups
Creates a CFOP group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | CFOPGroup | Yes | The CFOP group record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: CFOPGroup|error
Sample code:
tax:CFOPGroup result = check fo->createCFOPGroups({
dataAreaId: "BRMF",
groupId: "SALES",
description: "Domestic sales CFOP group"
});
getCFOPGroups
Retrieves a CFOP group by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
groupId | string | Yes | The group ID key field, e.g. "SALES". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetCFOPGroupsQueries | No | OData query options: $expand, $select. |
Returns: CFOPGroup|error
Sample code:
tax:CFOPGroup result = check fo->getCFOPGroups("BRMF", "SALES");
deleteCFOPGroups
Deletes a CFOP group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
groupId | string | Yes | The group ID key field. |
headers | DeleteCFOPGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteCFOPGroups("BRMF", "SALES");
updateCFOPGroups
Updates a CFOP group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
groupId | string | Yes | The group ID key field. |
payload | CFOPGroup | Yes | The fields to update. |
headers | UpdateCFOPGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: CFOPGroup|error
Sample code:
tax:CFOPGroup result = check fo->updateCFOPGroups("BRMF", "SALES", {
description: "Domestic sales CFOP group - updated"
});
EL Parameters
listELParameters
Lists electronic ledger (EL) parameters used for multi-branch accounting configuration.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListELParametersQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: ELParametersCollection|error
Sample code:
tax:ELParametersCollection result = check fo->listELParameters();
createELParameters
Creates an EL parameters record.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | ELParameter | Yes | The EL parameters record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: ELParameter|error
Sample code:
tax:ELParameter result = check fo->createELParameters({
dataAreaId: "RUMF",
key: 1,
branchId: "0001",
branchDescription: "Main branch",
isActiveMultiBranch: "Yes"
});
getELParameters
Retrieves an EL parameters record by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
key | int | Yes | The entity key value, e.g. 1. |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetELParametersQueries | No | OData query options: $expand, $select. |
Returns: ELParameter|error
Sample code:
tax:ELParameter result = check fo->getELParameters("RUMF", 1);
deleteELParameters
Deletes an EL parameters record.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
key | int | Yes | The entity key value. |
headers | DeleteELParametersHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteELParameters("RUMF", 1);
updateELParameters
Updates an EL parameters record.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
key | int | Yes | The entity key value. |
payload | ELParameter | Yes | The fields to update. |
headers | UpdateELParametersHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: ELParameter|error
Sample code:
tax:ELParameter result = check fo->updateELParameters("RUMF", 1, {
branchDescription: "Main branch - updated"
});
GST Minor Codes
listGSTMinorCodes
Lists GST minor codes used for Indian GST component classification.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListGSTMinorCodesQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: GSTMinorCodesCollection|error
Sample code:
tax:GSTMinorCodesCollection result = check fo->listGSTMinorCodes();
createGSTMinorCodes
Creates a GST minor code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | GSTMinorCode | Yes | The GST minor code record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: GSTMinorCode|error
Sample code:
tax:GSTMinorCode result = check fo->createGSTMinorCodes({
dataAreaId: "INMF",
minorCode: "M001",
taxComponent: "CGST",
description: "Central GST minor code"
});
getGSTMinorCodes
Retrieves a GST minor code by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
minorCode | string | Yes | The minor code key field, e.g. "M001". |
taxComponent | string | Yes | The tax component key field, e.g. "CGST". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetGSTMinorCodesQueries | No | OData query options: $expand, $select. |
Returns: GSTMinorCode|error
Sample code:
tax:GSTMinorCode result = check fo->getGSTMinorCodes("INMF", "M001", "CGST");
deleteGSTMinorCodes
Deletes a GST minor code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
minorCode | string | Yes | The minor code key field. |
taxComponent | string | Yes | The tax component key field. |
headers | DeleteGSTMinorCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteGSTMinorCodes("INMF", "M001", "CGST");
updateGSTMinorCodes
Updates a GST minor code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
minorCode | string | Yes | The minor code key field. |
taxComponent | string | Yes | The tax component key field. |
payload | GSTMinorCode | Yes | The fields to update. |
headers | UpdateGSTMinorCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: GSTMinorCode|error
Sample code:
tax:GSTMinorCode result = check fo->updateGSTMinorCodes("INMF", "M001", "CGST", {
description: "Central GST minor code - updated"
});
HSN Codes
listHSNCodes
Lists Harmonized System of Nomenclature (HSN) codes used for Indian goods classification.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListHSNCodesQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: HSNCodesCollection|error
Sample code:
tax:HSNCodesCollection result = check fo->listHSNCodes();
createHSNCodes
Creates an HSN code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | HSNCode | Yes | The HSN code record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: HSNCode|error
Sample code:
tax:HSNCode result = check fo->createHSNCodes({
dataAreaId: "INMF",
chapter: "84",
heading: "8471",
subheading: "8471.30",
countryExtension: "00",
statisticalSuffix: "00",
code: "84718030",
description: "Portable digital automatic data processing machines"
});
getHSNCodes
Retrieves an HSN code by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
chapter | string | Yes | The chapter key field, e.g. "84". |
heading | string | Yes | The heading key field, e.g. "8471". |
subheading | string | Yes | The subheading key field, e.g. "8471.30". |
countryExtension | string | Yes | The country extension key field. |
statisticalSuffix | string | Yes | The statistical suffix key field. |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetHSNCodesQueries | No | OData query options: $expand, $select. |
Returns: HSNCode|error
Sample code:
tax:HSNCode result = check fo->getHSNCodes("INMF", "84", "8471", "8471.30", "00", "00");
deleteHSNCodes
Deletes an HSN code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
chapter | string | Yes | The chapter key field. |
heading | string | Yes | The heading key field. |
subheading | string | Yes | The subheading key field. |
countryExtension | string | Yes | The country extension key field. |
statisticalSuffix | string | Yes | The statistical suffix key field. |
headers | DeleteHSNCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteHSNCodes("INMF", "84", "8471", "8471.30", "00", "00");
updateHSNCodes
Updates an HSN code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
chapter | string | Yes | The chapter key field. |
heading | string | Yes | The heading key field. |
subheading | string | Yes | The subheading key field. |
countryExtension | string | Yes | The country extension key field. |
statisticalSuffix | string | Yes | The statistical suffix key field. |
payload | HSNCode | Yes | The fields to update. |
headers | UpdateHSNCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: HSNCode|error
Sample code:
tax:HSNCode result = check fo->updateHSNCodes("INMF", "84", "8471", "8471.30", "00", "00", {
description: "Portable digital automatic data processing machines - updated"
});
Tax Code Limits
listTaxCodeLimits
Lists minimum and maximum sales tax amount limits configured for tax codes.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxCodeLimitsQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxCodeLimitsCollection|error
Sample code:
tax:TaxCodeLimitsCollection result = check fo->listTaxCodeLimits();
createTaxCodeLimits
Creates a tax code limit.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxCodeLimit | Yes | The tax code limit record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxCodeLimit|error
Sample code:
tax:TaxCodeLimit result = check fo->createTaxCodeLimits({
dataAreaId: "USMF",
taxCodeId: "VAT20",
fromDate: "2026-01-01",
toDate: "2026-12-31",
minimumSalesTax: 0d,
maximumSalesTax: 5000.00d
});
getTaxCodeLimits
Retrieves a tax code limit by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxCodeId | string | Yes | The tax code ID key field, e.g. "VAT20". |
fromDate | string | Yes | The from date key field, e.g. "2026-01-01". |
toDate | string | Yes | The to date key field, e.g. "2026-12-31". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxCodeLimitsQueries | No | OData query options: $expand, $select. |
Returns: TaxCodeLimit|error
Sample code:
tax:TaxCodeLimit result = check fo->getTaxCodeLimits("USMF", "VAT20", "2026-01-01", "2026-12-31");
deleteTaxCodeLimits
Deletes a tax code limit.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxCodeId | string | Yes | The tax code ID key field. |
fromDate | string | Yes | The from date key field. |
toDate | string | Yes | The to date key field. |
headers | DeleteTaxCodeLimitsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxCodeLimits("USMF", "VAT20", "2026-01-01", "2026-12-31");
updateTaxCodeLimits
Updates a tax code limit.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxCodeId | string | Yes | The tax code ID key field. |
fromDate | string | Yes | The from date key field. |
toDate | string | Yes | The to date key field. |
payload | TaxCodeLimit | Yes | The fields to update. |
headers | UpdateTaxCodeLimitsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxCodeLimit|error
Sample code:
tax:TaxCodeLimit result = check fo->updateTaxCodeLimits("USMF", "VAT20", "2026-01-01", "2026-12-31", {
maximumSalesTax: 6000.00d
});
Tax Codes
listTaxCodes
Lists tax codes used to calculate sales tax, VAT, and GST amounts.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxCodesQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxCodesCollection|error
Sample code:
tax:TaxCodesCollection result = check fo->listTaxCodes();
createTaxCodes
Creates a tax code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxCode | Yes | The tax code record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxCode|error
Sample code:
tax:TaxCode result = check fo->createTaxCodes({
dataAreaId: "USMF",
taxCode: "VAT20",
taxName: "VAT 20%",
taxRoundOff: 0.01d,
taxRoundOffType: "Ordinary",
taxCalculationMethod: "FullAmounts"
});
getTaxCodes
Retrieves a tax code by its key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxCode | string | Yes | The tax code key field, e.g. "VAT20". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxCodesQueries | No | OData query options: $expand, $select. |
Returns: TaxCode|error
Sample code:
tax:TaxCode result = check fo->getTaxCodes("USMF", "VAT20");
deleteTaxCodes
Deletes a tax code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxCode | string | Yes | The tax code key field. |
headers | DeleteTaxCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxCodes("USMF", "VAT20");
updateTaxCodes
Updates a tax code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxCode | string | Yes | The tax code key field. |
payload | TaxCode | Yes | The fields to update. |
headers | UpdateTaxCodesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxCode|error
Sample code:
tax:TaxCode result = check fo->updateTaxCodes("USMF", "VAT20", {
taxName: "VAT 20% (standard rate)"
});
Tax Group Data
listTaxGroupDatas
Lists the tax code assignments that make up each tax group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxGroupDatasQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxGroupDatasCollection|error
Sample code:
tax:TaxGroupDatasCollection result = check fo->listTaxGroupDatas();
createTaxGroupDatas
Assigns a tax code to a tax group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxGroupData | Yes | The tax group data record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxGroupData|error
Sample code:
tax:TaxGroupData result = check fo->createTaxGroupDatas({
dataAreaId: "USMF",
taxGroupId: "TAXABLE",
taxCodeId: "VAT20",
exemptTax: "No",
useTax: "No"
});
getTaxGroupDatas
Retrieves a tax group data record by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxGroupId | string | Yes | The tax group ID key field, e.g. "TAXABLE". |
taxCodeId | string | Yes | The tax code ID key field, e.g. "VAT20". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxGroupDatasQueries | No | OData query options: $expand, $select. |
Returns: TaxGroupData|error
Sample code:
tax:TaxGroupData result = check fo->getTaxGroupDatas("USMF", "TAXABLE", "VAT20");
deleteTaxGroupDatas
Removes a tax code assignment from a tax group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxGroupId | string | Yes | The tax group ID key field. |
taxCodeId | string | Yes | The tax code ID key field. |
headers | DeleteTaxGroupDatasHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxGroupDatas("USMF", "TAXABLE", "VAT20");
updateTaxGroupDatas
Updates a tax group data record.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxGroupId | string | Yes | The tax group ID key field. |
taxCodeId | string | Yes | The tax code ID key field. |
payload | TaxGroupData | Yes | The fields to update. |
headers | UpdateTaxGroupDatasHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxGroupData|error
Sample code:
tax:TaxGroupData result = check fo->updateTaxGroupDatas("USMF", "TAXABLE", "VAT20", {
exemptTax: "Yes"
});
Tax Groups
listTaxGroups
Lists sales tax groups used to determine which tax codes apply to a customer, vendor, or transaction.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxGroupsQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxGroupsCollection|error
Sample code:
tax:TaxGroupsCollection result = check fo->listTaxGroups();
createTaxGroups
Creates a sales tax group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxGroup | Yes | The tax group record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxGroup|error
Sample code:
tax:TaxGroup result = check fo->createTaxGroups({
dataAreaId: "USMF",
taxGroupCode: "TAXABLE",
description: "Fully taxable sales",
roundingBy: "TaxCode"
});
getTaxGroups
Retrieves a sales tax group by its key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxGroupCode | string | Yes | The tax group code key field, e.g. "TAXABLE". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxGroupsQueries | No | OData query options: $expand, $select. |
Returns: TaxGroup|error
Sample code:
tax:TaxGroup result = check fo->getTaxGroups("USMF", "TAXABLE");
deleteTaxGroups
Deletes a sales tax group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxGroupCode | string | Yes | The tax group code key field. |
headers | DeleteTaxGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxGroups("USMF", "TAXABLE");
updateTaxGroups
Updates a sales tax group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxGroupCode | string | Yes | The tax group code key field. |
payload | TaxGroup | Yes | The fields to update. |
headers | UpdateTaxGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxGroup|error
Sample code:
tax:TaxGroup result = check fo->updateTaxGroups("USMF", "TAXABLE", {
description: "Fully taxable sales - updated"
});
Tax Item Groups
listTaxItemGroups
Lists item-level tax groups used to determine which tax codes apply to a product or service.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxItemGroupsQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxItemGroupsCollection|error
Sample code:
tax:TaxItemGroupsCollection result = check fo->listTaxItemGroups();
createTaxItemGroups
Creates a tax item group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxItemGroup | Yes | The tax item group record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxItemGroup|error
Sample code:
tax:TaxItemGroup result = check fo->createTaxItemGroups({
dataAreaId: "USMF",
taxItemGroupCode: "GOODS",
taxCodeId: "VAT20",
description: "Standard-rated goods",
exemptTax: "No"
});
getTaxItemGroups
Retrieves a tax item group by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxItemGroupCode | string | Yes | The tax item group code key field, e.g. "GOODS". |
taxCodeId | string | Yes | The tax code ID key field, e.g. "VAT20". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxItemGroupsQueries | No | OData query options: $expand, $select. |
Returns: TaxItemGroup|error
Sample code:
tax:TaxItemGroup result = check fo->getTaxItemGroups("USMF", "GOODS", "VAT20");
deleteTaxItemGroups
Deletes a tax item group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxItemGroupCode | string | Yes | The tax item group code key field. |
taxCodeId | string | Yes | The tax code ID key field. |
headers | DeleteTaxItemGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxItemGroups("USMF", "GOODS", "VAT20");
updateTaxItemGroups
Updates a tax item group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxItemGroupCode | string | Yes | The tax item group code key field. |
taxCodeId | string | Yes | The tax code ID key field. |
payload | TaxItemGroup | Yes | The fields to update. |
headers | UpdateTaxItemGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxItemGroup|error
Sample code:
tax:TaxItemGroup result = check fo->updateTaxItemGroups("USMF", "GOODS", "VAT20", {
description: "Standard-rated goods - updated"
});
Tax Parameters
listTaxParameters
Lists the company-level tax parameters that control tax calculation and posting behavior.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxParametersQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxParametersCollection|error
Sample code:
tax:TaxParametersCollection result = check fo->listTaxParameters();
createTaxParameters
Creates the tax parameters record for a company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxParameters | Yes | The tax parameters record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxParameters|error
Sample code:
tax:TaxParameters result = check fo->createTaxParameters({
dataAreaId: "USMF",
calculationPrinciple: "Total",
taxCalculationDate: "InvoiceDate"
});
getTaxParameters
Retrieves the tax parameters record for a company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier, e.g. "USMF". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxParametersQueries | No | OData query options: $expand, $select. |
Returns: TaxParameters|error
Sample code:
tax:TaxParameters result = check fo->getTaxParameters("USMF");
deleteTaxParameters
Deletes the tax parameters record for a company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
headers | DeleteTaxParametersHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxParameters("USMF");
updateTaxParameters
Updates the tax parameters record for a company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
payload | TaxParameters | Yes | The fields to update. |
headers | UpdateTaxParametersHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxParameters|error
Sample code:
tax:TaxParameters result = check fo->updateTaxParameters("USMF", {
taxCalculationDate: "DeliveryDate"
});
Tax Periods
listTaxPeriods
Lists tax periods used for tax reporting and settlement cycles.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxPeriodsQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxPeriodsCollection|error
Sample code:
tax:TaxPeriodsCollection result = check fo->listTaxPeriods();
createTaxPeriods
Creates a tax period.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxPeriod | Yes | The tax period record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxPeriod|error
Sample code:
tax:TaxPeriod result = check fo->createTaxPeriods({
dataAreaId: "USMF",
taxPeriodId: "Q1-2026",
fromDate: "2026-01-01",
toDate: "2026-03-31",
description: "Q1 2026 VAT period",
periodInterval: "Month",
numberOfUnit: 3
});
getTaxPeriods
Retrieves a tax period by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxPeriodId | string | Yes | The tax period ID key field, e.g. "Q1-2026". |
fromDate | string | Yes | The from date key field, e.g. "2026-01-01". |
toDate | string | Yes | The to date key field, e.g. "2026-03-31". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxPeriodsQueries | No | OData query options: $expand, $select. |
Returns: TaxPeriod|error
Sample code:
tax:TaxPeriod result = check fo->getTaxPeriods("USMF", "Q1-2026", "2026-01-01", "2026-03-31");
deleteTaxPeriods
Deletes a tax period.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxPeriodId | string | Yes | The tax period ID key field. |
fromDate | string | Yes | The from date key field. |
toDate | string | Yes | The to date key field. |
headers | DeleteTaxPeriodsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxPeriods("USMF", "Q1-2026", "2026-01-01", "2026-03-31");
updateTaxPeriods
Updates a tax period.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxPeriodId | string | Yes | The tax period ID key field. |
fromDate | string | Yes | The from date key field. |
toDate | string | Yes | The to date key field. |
payload | TaxPeriod | Yes | The fields to update. |
headers | UpdateTaxPeriodsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxPeriod|error
Sample code:
tax:TaxPeriod result = check fo->updateTaxPeriods("USMF", "Q1-2026", "2026-01-01", "2026-03-31", {
description: "Q1 2026 VAT period - updated"
});
Tax Posting Groups
listTaxPostingGroups
Lists tax posting groups used to determine the ledger accounts to which tax amounts are posted.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxPostingGroupsQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxPostingGroupsCollection|error
Sample code:
tax:TaxPostingGroupsCollection result = check fo->listTaxPostingGroups();
createTaxPostingGroups
Creates a tax posting group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxPostingGroup | Yes | The tax posting group record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxPostingGroup|error
Sample code:
tax:TaxPostingGroup result = check fo->createTaxPostingGroups({
dataAreaId: "USMF",
taxPostingGroupCode: "VATPOST",
description: "Standard VAT posting group"
});
getTaxPostingGroups
Retrieves a tax posting group by its key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxPostingGroupCode | string | Yes | The tax posting group code key field, e.g. "VATPOST". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxPostingGroupsQueries | No | OData query options: $expand, $select. |
Returns: TaxPostingGroup|error
Sample code:
tax:TaxPostingGroup result = check fo->getTaxPostingGroups("USMF", "VATPOST");
deleteTaxPostingGroups
Deletes a tax posting group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxPostingGroupCode | string | Yes | The tax posting group code key field. |
headers | DeleteTaxPostingGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxPostingGroups("USMF", "VATPOST");
updateTaxPostingGroups
Updates a tax posting group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxPostingGroupCode | string | Yes | The tax posting group code key field. |
payload | TaxPostingGroup | Yes | The fields to update. |
headers | UpdateTaxPostingGroupsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxPostingGroup|error
Sample code:
tax:TaxPostingGroup result = check fo->updateTaxPostingGroups("USMF", "VATPOST", {
description: "Standard VAT posting group - updated"
});
Tax Regions
listTaxRegions
Lists tax regions used for jurisdiction-based tax determination.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxRegionsQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxRegionsCollection|error
Sample code:
tax:TaxRegionsCollection result = check fo->listTaxRegions();
createTaxRegions
Creates a tax region.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxRegion | Yes | The tax region record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxRegion|error
Sample code:
tax:TaxRegion result = check fo->createTaxRegions({
locationId: "US-CA-94105",
validFrom: "2026-01-01",
taxRegionName: "California",
state: "CA",
countryRegionId: "USA"
});
getTaxRegions
Retrieves a tax region by its composite key. Unlike most tax entities, tax regions are not keyed by dataAreaId.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
locationId | string | Yes | The location ID key field, e.g. "US-CA-94105". |
validFrom | string | Yes | The valid-from date key field, e.g. "2026-01-01". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxRegionsQueries | No | OData query options: $expand, $select. |
Returns: TaxRegion|error
Sample code:
tax:TaxRegion result = check fo->getTaxRegions("US-CA-94105", "2026-01-01");
deleteTaxRegions
Deletes a tax region.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
locationId | string | Yes | The location ID key field. |
validFrom | string | Yes | The valid-from date key field. |
headers | DeleteTaxRegionsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxRegions("US-CA-94105", "2026-01-01");
updateTaxRegions
Updates a tax region.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
locationId | string | Yes | The location ID key field. |
validFrom | string | Yes | The valid-from date key field. |
payload | TaxRegion | Yes | The fields to update. |
headers | UpdateTaxRegionsHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxRegion|error
Sample code:
tax:TaxRegion result = check fo->updateTaxRegions("US-CA-94105", "2026-01-01", {
taxRegionName: "California (revised)"
});
Tax Tables
listTaxTables
Lists tax tables that link tax types and modules to their ledger main accounts.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxTablesQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxTablesCollection|error
Sample code:
tax:TaxTablesCollection result = check fo->listTaxTables();
createTaxTables
Creates a tax table entry.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxTable | Yes | The tax table record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxTable|error
Sample code:
tax:TaxTable result = check fo->createTaxTables({
dataAreaId: "RUMF",
'module: "Tax",
code: "VAT-STD",
typeOfTax: "VAT",
expenseCode: "TAXEXP"
});
getTaxTables
Retrieves a tax table entry by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
module | string | Yes | The module key field, e.g. "Tax". |
code | string | Yes | The code key field, e.g. "VAT-STD". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxTablesQueries | No | OData query options: $expand, $select. |
Returns: TaxTable|error
Sample code:
tax:TaxTable result = check fo->getTaxTables("RUMF", "Tax", "VAT-STD");
deleteTaxTables
Deletes a tax table entry.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
module | string | Yes | The module key field. |
code | string | Yes | The code key field. |
headers | DeleteTaxTablesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxTables("RUMF", "Tax", "VAT-STD");
updateTaxTables
Updates a tax table entry.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
module | string | Yes | The module key field. |
code | string | Yes | The code key field. |
payload | TaxTable | Yes | The fields to update. |
headers | UpdateTaxTablesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxTable|error
Sample code:
tax:TaxTable result = check fo->updateTaxTables("RUMF", "Tax", "VAT-STD", {
expenseCode: "TAXEXP2"
});
Taxation Code
listTaxationCode
Lists Brazilian taxation codes used to classify ICMS, IPI, PIS, and COFINS tax handling.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxationCodeQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxationCodeCollection|error
Sample code:
tax:TaxationCodeCollection result = check fo->listTaxationCode();
createTaxationCode
Creates a taxation code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxationCode | Yes | The taxation code record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxationCode|error
Sample code:
tax:TaxationCode result = check fo->createTaxationCode({
dataAreaId: "BRMF",
taxType: "ICMS",
taxationCode: "060",
fiscalValue: "WithCreditDebit",
outputCode: "5405",
description: "ICMS with credit"
});
getTaxationCode
Retrieves a taxation code by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxType | string | Yes | The tax type key field, e.g. "ICMS". |
taxationCode | string | Yes | The taxation code key field, e.g. "060". |
fiscalValue | string | Yes | The fiscal value key field, e.g. "WithCreditDebit". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxationCodeQueries | No | OData query options: $expand, $select. |
Returns: TaxationCode|error
Sample code:
tax:TaxationCode result = check fo->getTaxationCode("BRMF", "ICMS", "060", "WithCreditDebit");
deleteTaxationCode
Deletes a taxation code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxType | string | Yes | The tax type key field. |
taxationCode | string | Yes | The taxation code key field. |
fiscalValue | string | Yes | The fiscal value key field. |
headers | DeleteTaxationCodeHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxationCode("BRMF", "ICMS", "060", "WithCreditDebit");
updateTaxationCode
Updates a taxation code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
taxType | string | Yes | The tax type key field. |
taxationCode | string | Yes | The taxation code key field. |
fiscalValue | string | Yes | The fiscal value key field. |
payload | TaxationCode | Yes | The fields to update. |
headers | UpdateTaxationCodeHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxationCode|error
Sample code:
tax:TaxationCode result = check fo->updateTaxationCode("BRMF", "ICMS", "060", "WithCreditDebit", {
description: "ICMS with credit - updated"
});
Taxes Matrices
listTaxesMatrices
Lists Brazilian tax matrices that map fiscal establishment groups and CFOP groups to sales tax groups.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | ListTaxesMatricesQueries | No | OData query options: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: TaxesMatricesCollection|error
Sample code:
tax:TaxesMatricesCollection result = check fo->listTaxesMatrices();
createTaxesMatrices
Creates a tax matrix entry.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | TaxesMatrix | Yes | The tax matrix record to create. |
headers | map<string|string[]> | No | Optional HTTP headers. |
Returns: TaxesMatrix|error
Sample code:
tax:TaxesMatrix result = check fo->createTaxesMatrices({
dataAreaId: "BRMF",
fiscalEstablishmentGroupId: "FEG01",
cFOPGroupId: "SALES",
'type: "Customer",
accountRelation: "CUST-001",
itemRelation: "ITEM-001",
salesTaxGroup: "TAXABLE",
itemSalesTaxGroup: "GOODS"
});
getTaxesMatrices
Retrieves a tax matrix entry by its composite key.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
fiscalEstablishmentGroupId | string | Yes | The fiscal establishment group ID key field, e.g. "FEG01". |
cFOPGroupId | string | Yes | The CFOP group ID key field, e.g. "SALES". |
type | string | Yes | The entity type identifier key field, e.g. "Customer". |
accountRelation | string | Yes | The account relation key field, e.g. "CUST-001". |
itemRelation | string | Yes | The item relation key field, e.g. "ITEM-001". |
headers | map<string|string[]> | No | Optional HTTP headers. |
queries | GetTaxesMatricesQueries | No | OData query options: $expand, $select. |
Returns: TaxesMatrix|error
Sample code:
tax:TaxesMatrix result = check fo->getTaxesMatrices("BRMF", "FEG01", "SALES", "Customer", "CUST-001", "ITEM-001");
deleteTaxesMatrices
Deletes a tax matrix entry.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
fiscalEstablishmentGroupId | string | Yes | The fiscal establishment group ID key field. |
cFOPGroupId | string | Yes | The CFOP group ID key field. |
type | string | Yes | The entity type identifier key field. |
accountRelation | string | Yes | The account relation key field. |
itemRelation | string | Yes | The item relation key field. |
headers | DeleteTaxesMatricesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: error?
Sample code:
error? result = fo->deleteTaxesMatrices("BRMF", "FEG01", "SALES", "Customer", "CUST-001", "ITEM-001");
updateTaxesMatrices
Updates a tax matrix entry.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
fiscalEstablishmentGroupId | string | Yes | The fiscal establishment group ID key field. |
cFOPGroupId | string | Yes | The CFOP group ID key field. |
type | string | Yes | The entity type identifier key field. |
accountRelation | string | Yes | The account relation key field. |
itemRelation | string | Yes | The item relation key field. |
payload | TaxesMatrix | Yes | The fields to update. |
headers | UpdateTaxesMatricesHeaders | No | Optional ifMatch ETag for optimistic concurrency. |
Returns: TaxesMatrix|error
Sample code:
tax:TaxesMatrix result = check fo->updateTaxesMatrices("BRMF", "FEG01", "SALES", "Customer", "CUST-001", "ITEM-001", {
salesTaxGroup: "TAXABLE2"
});