Skip to main content

Actions

The ballerinax/microsoft.dynamics365.finance.trade package exposes the following clients:

ClientPurpose
ClientProvides full CRUD access to Microsoft Dynamics 365 Finance Trade entities via the OData REST API.

Client

Provides full CRUD access to Microsoft Dynamics 365 Finance Trade entities via the OData REST API.

Configuration

FieldTypeDefaultDescription
authOAuth2ClientCredentialsGrantConfigRequiredOAuth2 client credentials grant configuration used to obtain an access token from Microsoft Entra ID.
httpVersionstring"2.0"HTTP protocol version to use for outbound requests.
http1SettingsClientHttp1Settings{}HTTP/1.x client settings including keep-alive, chunking, and proxy configuration.
secureSockethttp:ClientSecureSocket()SSL/TLS configuration for secure connections.
proxyProxyConfig()Proxy server configuration.

Initializing the client

import ballerinax/microsoft.dynamics365.finance.trade;

configurable string tokenUrl = ?;
configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string serviceUrl = ?;

trade:Client fo = check new (
{
auth: {
tokenUrl,
clientId,
clientSecret
}
},
serviceUrl
);

Operations

BLWI

listBLWI

Reads all BLWI (foreign trade payment) records in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListBLWIQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:BLWICollection|error

Sample code:

trade:BLWICollection result = check fo->listBLWI(
queries = {
filter: "Currency eq 'EUR'",
top: 20,
'select: "Voucher,Invoice,Amount,Currency"
}
);
createBLWI

Creates a BLWI record.

Parameters:

NameTypeRequiredDescription
payloadBLWIYesThe BLWI record to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:BLWI|error

Sample code:

trade:BLWI created = check fo->createBLWI({
dataAreaId: "ESMF",
company: "ESMF",
bLWITransaction: "Vendor",
accountNumber: "ES-100234",
voucher: "VouchNo-000123",
invoice: "INV-000456",
transactionDate: "2026-01-15",
amount: 15000.00,
currency: "EUR",
countryRegionId: "FRA",
purposeCode: "GOODS"
});
getBLWI

Reads a specific BLWI record.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
companystringYesThe company key field.
bLWITransactionstringYesThe BLWI transaction key field ("Customer" or "Vendor").
accountNumberstringYesThe account number key field.
voucherstringYesThe voucher key field.
invoicestringYesThe invoice key field.
transactionDatestringYesThe transaction date key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetBLWIQueriesNoOData query parameters: $expand, $select.

Returns: trade:BLWI|error

Sample code:

trade:BLWI record = check fo->getBLWI(
"ESMF", "ESMF", "Vendor", "ES-100234", "VouchNo-000123", "INV-000456", "2026-01-15"
);
deleteBLWI

Deletes a specific BLWI record.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
companystringYesThe company key field.
bLWITransactionstringYesThe BLWI transaction key field.
accountNumberstringYesThe account number key field.
voucherstringYesThe voucher key field.
invoicestringYesThe invoice key field.
transactionDatestringYesThe transaction date key field.
headersDeleteBLWIHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteBLWI(
"ESMF", "ESMF", "Vendor", "ES-100234", "VouchNo-000123", "INV-000456", "2026-01-15",
headers = {ifMatch: eTag}
);
updateBLWI

Updates a specific BLWI record.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
companystringYesThe company key field.
bLWITransactionstringYesThe BLWI transaction key field.
accountNumberstringYesThe account number key field.
voucherstringYesThe voucher key field.
invoicestringYesThe invoice key field.
transactionDatestringYesThe transaction date key field.
payloadBLWIYesFields to update.
headersUpdateBLWIHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:BLWI|error

Sample code:

trade:BLWI updated = check fo->updateBLWI(
"ESMF", "ESMF", "Vendor", "ES-100234", "VouchNo-000123", "INV-000456", "2026-01-15",
{amount: 15500.00},
headers = {ifMatch: eTag}
);

Intrastats

listIntrastats

Reads all Intrastat declarations in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListIntrastatsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:IntrastatsCollection|error

Sample code:

trade:IntrastatsCollection result = check fo->listIntrastats(
queries = {
filter: "Direction eq Microsoft.Dynamics.DataEntities.IntrastatDirection'Export'",
top: 25
}
);
createIntrastats

Creates an Intrastat declaration.

Parameters:

NameTypeRequiredDescription
payloadIntrastatYesThe Intrastat declaration to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:Intrastat|error

Sample code:

trade:Intrastat created = check fo->createIntrastats({
dataAreaId: "FRMF",
shipmentBatch: "SB-2026-004",
sequenceNumber: 1,
direction: "Export",
itemNumber: "ITEM-2201",
commodity: "84713000",
quantity: 50,
weight: 120.5,
invoiceAmount: 8000.00,
currencyCode: "EUR",
countryRegionId: "DEU",
transactionCode: "10"
});
getIntrastats

Reads a specific Intrastat declaration.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
shipmentBatchstringYesThe shipment batch key field.
sequenceNumberintYesThe sequence number key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetIntrastatsQueriesNoOData query parameters: $expand, $select.

Returns: trade:Intrastat|error

Sample code:

trade:Intrastat declaration = check fo->getIntrastats("FRMF", "SB-2026-004", 1);
deleteIntrastats

Deletes a specific Intrastat declaration.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
shipmentBatchstringYesThe shipment batch key field.
sequenceNumberintYesThe sequence number key field.
headersDeleteIntrastatsHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteIntrastats("FRMF", "SB-2026-004", 1, headers = {ifMatch: eTag});
updateIntrastats

Updates a specific Intrastat declaration.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
shipmentBatchstringYesThe shipment batch key field.
sequenceNumberintYesThe sequence number key field.
payloadIntrastatYesFields to update.
headersUpdateIntrastatsHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:Intrastat|error

Sample code:

trade:Intrastat updated = check fo->updateIntrastats(
"FRMF", "SB-2026-004", 1,
{quantity: 55, weight: 132.0},
headers = {ifMatch: eTag}
);

Intrastats V2

listIntrastatsV2

Reads all Intrastat V2 declarations in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListIntrastatsV2QueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:IntrastatsV2Collection|error

Sample code:

trade:IntrastatsV2Collection result = check fo->listIntrastatsV2(
queries = {
filter: "Direction eq Microsoft.Dynamics.DataEntities.IntrastatDirection'Import'",
top: 25
}
);
createIntrastatsV2

Creates an Intrastat V2 declaration.

Parameters:

NameTypeRequiredDescription
payloadIntrastatV2YesThe Intrastat V2 declaration to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:IntrastatV2|error

Sample code:

trade:IntrastatV2 created = check fo->createIntrastatsV2({
dataAreaId: "FRMF",
shipmentBatch: "SB-2026-005",
sequenceNumber: 1,
direction: "Import",
itemNumber: "ITEM-3305",
commodity: "85171200",
quantity: 10,
weight: 22.0,
invoiceAmount: 4200.00,
currencyCode: "EUR",
countryRegionId: "CHN",
transactionCode: "10"
});
getIntrastatsV2

Reads a specific Intrastat V2 declaration.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
shipmentBatchstringYesThe shipment batch key field.
sequenceNumberintYesThe sequence number key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetIntrastatsV2QueriesNoOData query parameters: $expand, $select.

Returns: trade:IntrastatV2|error

Sample code:

trade:IntrastatV2 declaration = check fo->getIntrastatsV2("FRMF", "SB-2026-005", 1);
deleteIntrastatsV2

Deletes a specific Intrastat V2 declaration.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
shipmentBatchstringYesThe shipment batch key field.
sequenceNumberintYesThe sequence number key field.
headersDeleteIntrastatsV2HeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteIntrastatsV2("FRMF", "SB-2026-005", 1, headers = {ifMatch: eTag});
updateIntrastatsV2

Updates a specific Intrastat V2 declaration.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
shipmentBatchstringYesThe shipment batch key field.
sequenceNumberintYesThe sequence number key field.
payloadIntrastatV2YesFields to update.
headersUpdateIntrastatsV2HeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:IntrastatV2|error

Sample code:

trade:IntrastatV2 updated = check fo->updateIntrastatsV2(
"FRMF", "SB-2026-005", 1,
{quantity: 12, weight: 26.4},
headers = {ifMatch: eTag}
);

NAF Codes

listNAFCodes

Reads all NAF (French commodity classification) codes in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListNAFCodesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:NAFCodesCollection|error

Sample code:

trade:NAFCodesCollection result = check fo->listNAFCodes(
queries = {
filter: "startswith(NAFCode,'47')",
top: 20
}
);
createNAFCodes

Creates a NAF code.

Parameters:

NameTypeRequiredDescription
payloadNAFCodeYesThe NAF code to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:NAFCode|error

Sample code:

trade:NAFCode created = check fo->createNAFCodes({
dataAreaId: "FRMF",
nAFCode: "4711D",
description: "Other retail sale in non-specialized stores"
});
getNAFCodes

Reads a specific NAF code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
nAFCodestringYesThe NAF code key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetNAFCodesQueriesNoOData query parameters: $expand, $select.

Returns: trade:NAFCode|error

Sample code:

trade:NAFCode code = check fo->getNAFCodes("FRMF", "4711D");
deleteNAFCodes

Deletes a specific NAF code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
nAFCodestringYesThe NAF code key field.
headersDeleteNAFCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteNAFCodes("FRMF", "4711D", headers = {ifMatch: eTag});
updateNAFCodes

Updates a specific NAF code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
nAFCodestringYesThe NAF code key field.
payloadNAFCodeYesFields to update.
headersUpdateNAFCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:NAFCode|error

Sample code:

trade:NAFCode updated = check fo->updateNAFCodes(
"FRMF",
"4711D",
{description: "Other retail sale in non-specialized stores (updated)"},
headers = {ifMatch: eTag}
);

NGP Codes

listNGPCodes

Reads all NGP (Spanish commodity classification) codes in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListNGPCodesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:NGPCodesCollection|error

Sample code:

trade:NGPCodesCollection result = check fo->listNGPCodes(
queries = {
top: 20
}
);
createNGPCodes

Creates an NGP code.

Parameters:

NameTypeRequiredDescription
payloadNGPCodeYesThe NGP code to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:NGPCode|error

Sample code:

trade:NGPCode created = check fo->createNGPCodes({
dataAreaId: "ESMF",
nGP: 6203,
description: "Men's suits and trousers"
});
getNGPCodes

Reads a specific NGP code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
nGPintYesThe NGP code key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetNGPCodesQueriesNoOData query parameters: $expand, $select.

Returns: trade:NGPCode|error

Sample code:

trade:NGPCode code = check fo->getNGPCodes("ESMF", 6203);
deleteNGPCodes

Deletes a specific NGP code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
nGPintYesThe NGP code key field.
headersDeleteNGPCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteNGPCodes("ESMF", 6203, headers = {ifMatch: eTag});
updateNGPCodes

Updates a specific NGP code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
nGPintYesThe NGP code key field.
payloadNGPCodeYesFields to update.
headersUpdateNGPCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:NGPCode|error

Sample code:

trade:NGPCode updated = check fo->updateNGPCodes(
"ESMF",
6203,
{description: "Men's suits and trousers (updated)"},
headers = {ifMatch: eTag}
);

Report 347

listReport347

Reads all Model 347 report entries in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListReport347QueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:Report347Collection|error

Sample code:

trade:Report347Collection result = check fo->listReport347(
queries = {
filter: "FiscalYear eq 2026",
top: 20
}
);
createReport347

Creates a Model 347 report entry.

Parameters:

NameTypeRequiredDescription
payloadReport347YesThe Model 347 report entry to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:Report347|error

Sample code:

trade:Report347 created = check fo->createReport347({
dataAreaId: "ESMF",
fiscalYear: 2026,
referenceOfEstate: "EST-001",
invoiceYearForCash: 2026,
taxExemptNumberTrans: "EX-0098",
taskCode: "Sales",
countryRegionTrans: "ESP",
amount: 125000.00,
amountOfSales: 125000.00,
reported: "No"
});
getReport347

Reads a specific Model 347 report entry.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
fiscalYearintYesThe fiscal year key field.
referenceOfEstatestringYesThe reference of estate key field.
invoiceYearForCashintYesThe invoice year for cash key field.
taxExemptNumberTransstringYesThe tax exempt number key field.
taskCodestringYesThe task code key field (e.g., "Sales", "Purchase").
countryRegionTransstringYesThe country/region key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetReport347QueriesNoOData query parameters: $expand, $select.

Returns: trade:Report347|error

Sample code:

trade:Report347 report = check fo->getReport347(
"ESMF", 2026, "EST-001", 2026, "EX-0098", "Sales", "ESP"
);
deleteReport347

Deletes a specific Model 347 report entry.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
fiscalYearintYesThe fiscal year key field.
referenceOfEstatestringYesThe reference of estate key field.
invoiceYearForCashintYesThe invoice year for cash key field.
taxExemptNumberTransstringYesThe tax exempt number key field.
taskCodestringYesThe task code key field.
countryRegionTransstringYesThe country/region key field.
headersDeleteReport347HeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteReport347(
"ESMF", 2026, "EST-001", 2026, "EX-0098", "Sales", "ESP",
headers = {ifMatch: eTag}
);
updateReport347

Updates a specific Model 347 report entry.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
fiscalYearintYesThe fiscal year key field.
referenceOfEstatestringYesThe reference of estate key field.
invoiceYearForCashintYesThe invoice year for cash key field.
taxExemptNumberTransstringYesThe tax exempt number key field.
taskCodestringYesThe task code key field.
countryRegionTransstringYesThe country/region key field.
payloadReport347YesFields to update.
headersUpdateReport347HeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:Report347|error

Sample code:

trade:Report347 updated = check fo->updateReport347(
"ESMF", 2026, "EST-001", 2026, "EX-0098", "Sales", "ESP",
{reported: "Yes"},
headers = {ifMatch: eTag}
);

Report Periods

listReportPeriods

Reads all report periods in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListReportPeriodsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:ReportPeriodsCollection|error

Sample code:

trade:ReportPeriodsCollection result = check fo->listReportPeriods(
queries = {
filter: "Approved eq Microsoft.Dynamics.DataEntities.NoYes'No'"
}
);
createReportPeriods

Creates a report period.

Parameters:

NameTypeRequiredDescription
payloadReportPeriodYesThe report period to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:ReportPeriod|error

Sample code:

trade:ReportPeriod created = check fo->createReportPeriods({
dataAreaId: "ESMF",
settlementPeriod: "2026-Q1",
fromDate: "2026-01-01",
toDate: "2026-03-31",
periodStart: "2026-01-01",
periodEnd: "2026-03-31",
approved: "No"
});
getReportPeriods

Reads a specific report period.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
settlementPeriodstringYesThe settlement period key field.
toDatestringYesThe period end date key field.
fromDatestringYesThe period start date key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetReportPeriodsQueriesNoOData query parameters: $expand, $select.

Returns: trade:ReportPeriod|error

Sample code:

trade:ReportPeriod period = check fo->getReportPeriods("ESMF", "2026-Q1", "2026-03-31", "2026-01-01");
deleteReportPeriods

Deletes a specific report period.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
settlementPeriodstringYesThe settlement period key field.
toDatestringYesThe period end date key field.
fromDatestringYesThe period start date key field.
headersDeleteReportPeriodsHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteReportPeriods("ESMF", "2026-Q1", "2026-03-31", "2026-01-01", headers = {ifMatch: eTag});
updateReportPeriods

Updates a specific report period.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
settlementPeriodstringYesThe settlement period key field.
toDatestringYesThe period end date key field.
fromDatestringYesThe period start date key field.
payloadReportPeriodYesFields to update.
headersUpdateReportPeriodsHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:ReportPeriod|error

Sample code:

trade:ReportPeriod updated = check fo->updateReportPeriods(
"ESMF", "2026-Q1", "2026-03-31", "2026-01-01",
{approved: "Yes"},
headers = {ifMatch: eTag}
);

SAD Groups

listSADGroups

Reads all SAD (Single Administrative Document) groups in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSADGroupsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:SADGroupsCollection|error

Sample code:

trade:SADGroupsCollection result = check fo->listSADGroups(
queries = {
top: 20
}
);
createSADGroups

Creates a SAD group.

Parameters:

NameTypeRequiredDescription
payloadSADGroupYesThe SAD group to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:SADGroup|error

Sample code:

trade:SADGroup created = check fo->createSADGroups({
dataAreaId: "RUMF",
sADGroup: "SAD-STD",
description: "Standard customs declaration group",
vATCode: "VAT20",
duty: 5.5,
excise: 0,
taxGroup: "TAX-STD",
taxItemGroup: "ITEM-STD"
});
getSADGroups

Reads a specific SAD group.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
sADGroupstringYesThe SAD group key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSADGroupsQueriesNoOData query parameters: $expand, $select.

Returns: trade:SADGroup|error

Sample code:

trade:SADGroup group = check fo->getSADGroups("RUMF", "SAD-STD");
deleteSADGroups

Deletes a specific SAD group.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
sADGroupstringYesThe SAD group key field.
headersDeleteSADGroupsHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteSADGroups("RUMF", "SAD-STD", headers = {ifMatch: eTag});
updateSADGroups

Updates a specific SAD group.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
sADGroupstringYesThe SAD group key field.
payloadSADGroupYesFields to update.
headersUpdateSADGroupsHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:SADGroup|error

Sample code:

trade:SADGroup updated = check fo->updateSADGroups(
"RUMF",
"SAD-STD",
{duty: 6.0},
headers = {ifMatch: eTag}
);

SAD Item Codes

listSADItemCodes

Reads all SAD item codes in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSADItemCodesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:SADItemCodesCollection|error

Sample code:

trade:SADItemCodesCollection result = check fo->listSADItemCodes(
queries = {
filter: "startswith(ItemCommodityCode,'8471')"
}
);
createSADItemCodes

Creates a SAD item code.

Parameters:

NameTypeRequiredDescription
payloadSADItemCodeYesThe SAD item code to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:SADItemCode|error

Sample code:

trade:SADItemCode created = check fo->createSADItemCodes({
dataAreaId: "RUMF",
itemCommodityCode: "8471300000",
productName: "Portable computers",
mainAccountDisplayValue: "140100"
});
getSADItemCodes

Reads a specific SAD item code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
itemCommodityCodestringYesThe item commodity code key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSADItemCodesQueriesNoOData query parameters: $expand, $select.

Returns: trade:SADItemCode|error

Sample code:

trade:SADItemCode code = check fo->getSADItemCodes("RUMF", "8471300000");
deleteSADItemCodes

Deletes a specific SAD item code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
itemCommodityCodestringYesThe item commodity code key field.
headersDeleteSADItemCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteSADItemCodes("RUMF", "8471300000", headers = {ifMatch: eTag});
updateSADItemCodes

Updates a specific SAD item code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
itemCommodityCodestringYesThe item commodity code key field.
payloadSADItemCodeYesFields to update.
headersUpdateSADItemCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:SADItemCode|error

Sample code:

trade:SADItemCode updated = check fo->updateSADItemCodes(
"RUMF",
"8471300000",
{productName: "Portable computers (updated)"},
headers = {ifMatch: eTag}
);

SAD Parameters

listSADParameters

Reads the SAD parameters for every company in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSADParametersQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:SADParametersCollection|error

Sample code:

trade:SADParametersCollection result = check fo->listSADParameters(
queries = {
crossCompany: true
}
);
createSADParameters

Creates the SAD parameters record for a company.

Parameters:

NameTypeRequiredDescription
payloadSADParametersYesThe SAD parameter fields to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:SADParameters|error

Sample code:

trade:SADParameters created = check fo->createSADParameters({
dataAreaId: "RUMF",
additionalCostsFormInvoice: "Item",
miscPayments: "Costs",
transportAccountDisplayValue: "601500",
insuranceAccountDisplayValue: "601600",
dutyRounding: 0.01,
vATRounding: 0.01,
exciseTaxRounding: 0.01
});
getSADParameters

Reads the SAD parameters for a specific company.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSADParametersQueriesNoOData query parameters: $expand, $select.

Returns: trade:SADParameters|error

Sample code:

trade:SADParameters parameters = check fo->getSADParameters("RUMF");
deleteSADParameters

Deletes the SAD parameters record for a specific company.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
headersDeleteSADParametersHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteSADParameters("RUMF", headers = {ifMatch: eTag});
updateSADParameters

Updates the SAD parameters record for a specific company.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
payloadSADParametersYesFields to update.
headersUpdateSADParametersHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:SADParameters|error

Sample code:

trade:SADParameters updated = check fo->updateSADParameters(
"RUMF",
{dutyRounding: 0.05},
headers = {ifMatch: eTag}
);

TNVED Codes

listTNVEDCodes

Reads all TNVED (Eurasian Customs Union commodity classification) codes in the system.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListTNVEDCodesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: trade:TNVEDCodesCollection|error

Sample code:

trade:TNVEDCodesCollection result = check fo->listTNVEDCodes(
queries = {
filter: "Blocked eq Microsoft.Dynamics.DataEntities.NoYes'No'",
top: 20
}
);
createTNVEDCodes

Creates a TNVED code.

Parameters:

NameTypeRequiredDescription
payloadTNVEDCodeYesThe TNVED code to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: trade:TNVEDCode|error

Sample code:

trade:TNVEDCode created = check fo->createTNVEDCodes({
dataAreaId: "RUMF",
tnVedCode: "8471300000",
name: "Portable automatic data processing machines",
description: "Laptops and portable computers under 10 kg",
blocked: "No"
});
getTNVEDCodes

Reads a specific TNVED code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
tnVedCodestringYesThe TNVED code key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetTNVEDCodesQueriesNoOData query parameters: $expand, $select.

Returns: trade:TNVEDCode|error

Sample code:

trade:TNVEDCode code = check fo->getTNVEDCodes("RUMF", "8471300000");
deleteTNVEDCodes

Deletes a specific TNVED code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
tnVedCodestringYesThe TNVED code key field.
headersDeleteTNVEDCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: error?

Sample code:

check fo->deleteTNVEDCodes("RUMF", "8471300000", headers = {ifMatch: eTag});
updateTNVEDCodes

Updates a specific TNVED code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
tnVedCodestringYesThe TNVED code key field.
payloadTNVEDCodeYesFields to update.
headersUpdateTNVEDCodesHeadersNoAdditional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency.

Returns: trade:TNVEDCode|error

Sample code:

trade:TNVEDCode updated = check fo->updateTNVEDCodes(
"RUMF",
"8471300000",
{blocked: "Yes"},
headers = {ifMatch: eTag}
);