Actions
The ballerinax/microsoft.dynamics365.finance.vendor package exposes the following clients:
| Client | Purpose |
|---|---|
Client | Provides full CRUD access to Microsoft Dynamics 365 Finance Vendor entities via the OData REST API. |
Client
Provides full CRUD access to Microsoft Dynamics 365 Finance Vendor entities via the OData REST API.
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
auth | OAuth2ClientCredentialsGrantConfig | Required | OAuth2 client credentials grant configuration used to obtain an access token from Microsoft Entra ID. |
httpVersion | string | "2.0" | HTTP protocol version to use for outbound requests. |
http1Settings | ClientHttp1Settings | {} | HTTP/1.x client settings including keep-alive, chunking, and proxy configuration. |
secureSocket | http:ClientSecureSocket | () | SSL/TLS configuration for secure connections. |
proxy | ProxyConfig | () | Proxy server configuration. |
Initializing the client
import ballerinax/microsoft.dynamics365.finance.vendor;
configurable string tokenUrl = ?;
configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string serviceUrl = ?;
configurable string[] scopes = ["https://<your-org>.operations.dynamics.com/.default"];
vendor:Client fo = check new (
{
auth: {
tokenUrl,
clientId,
clientSecret,
scopes
}
},
serviceUrl
);
Operations
Vendor groups
listVendorGroups
Reads all vendor groups in the system.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | ListVendorGroupsQueries | No | OData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: vendor:VendorGroupsCollection|error
Sample code:
vendor:VendorGroupsCollection result = check fo->listVendorGroups(
queries = {
filter: "DefaultTaxGroupCode eq 'TAX-STD'",
top: 20,
'select: "VendorGroupId,Description,DefaultPaymentTermName"
}
);
createVendorGroups
Creates a vendor group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | VendorGroup | Yes | The vendor group to create. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
Returns: vendor:VendorGroup|error
Sample code:
vendor:VendorGroup created = check fo->createVendorGroups({
dataAreaId: "USMF",
vendorGroupId: "DOMESTIC",
description: "Domestic vendors",
defaultTaxGroupCode: "TAX-STD",
defaultPaymentTermName: "NET30"
});
getVendorGroups
Reads a specific vendor group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier (e.g., "USMF"). |
vendorGroupId | string | Yes | The vendor group id key field. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | GetVendorGroupsQueries | No | OData query parameters: $expand, $select. |
Returns: vendor:VendorGroup|error
Sample code:
vendor:VendorGroup vendorGroup = check fo->getVendorGroups("USMF", "DOMESTIC");
deleteVendorGroups
Deletes a specific vendor group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
vendorGroupId | string | Yes | The vendor group id key field. |
headers | DeleteVendorGroupsHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: error?
Sample code:
check fo->deleteVendorGroups("USMF", "DOMESTIC", headers = {ifMatch: eTag});
updateVendorGroups
Updates a specific vendor group.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
vendorGroupId | string | Yes | The vendor group id key field. |
payload | VendorGroup | Yes | Fields to update. |
headers | UpdateVendorGroupsHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: vendor:VendorGroup|error
Sample code:
vendor:VendorGroup updated = check fo->updateVendorGroups(
"USMF",
"DOMESTIC",
{defaultPaymentTermName: "NET45"},
headers = {ifMatch: eTag}
);
Vendor parameters
listVendorParameters
Reads the vendor (accounts payable) parameters for every company in the system.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | ListVendorParametersQueries | No | OData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: vendor:VendorParametersCollection|error
Sample code:
vendor:VendorParametersCollection result = check fo->listVendorParameters(
queries = {
crossCompany: true
}
);
createVendorParameters
Creates the vendor parameters record for a company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | VendorParameter | Yes | The vendor parameter fields to create. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
Returns: vendor:VendorParameter|error
Sample code:
vendor:VendorParameter created = check fo->createVendorParameters({
dataAreaId: "USMF",
taxGroup: "TAX-STD",
postingProfile: "VEND",
mandatoryTaxGroup: "Yes"
});
getVendorParameters
Reads the vendor parameters for a specific company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | GetVendorParametersQueries | No | OData query parameters: $expand, $select. |
Returns: vendor:VendorParameter|error
Sample code:
vendor:VendorParameter parameters = check fo->getVendorParameters("USMF");
deleteVendorParameters
Deletes the vendor parameters record for a specific company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
headers | DeleteVendorParametersHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: error?
Sample code:
check fo->deleteVendorParameters("USMF", headers = {ifMatch: eTag});
updateVendorParameters
Updates the vendor parameters record for a specific company.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
payload | VendorParameter | Yes | Fields to update. |
headers | UpdateVendorParametersHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: vendor:VendorParameter|error
Sample code:
vendor:VendorParameter updated = check fo->updateVendorParameters(
"USMF",
{mandatoryTaxGroup: "No"},
headers = {ifMatch: eTag}
);
Vendor reasons
listVendorReasons
Reads all vendor reason codes in the system.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | ListVendorReasonsQueries | No | OData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: vendor:VendorReasonsCollection|error
Sample code:
vendor:VendorReasonsCollection result = check fo->listVendorReasons(
queries = {
filter: "ForVendorTransactionType eq Microsoft.Dynamics.DataEntities.NoYes'Yes'"
}
);
createVendorReasons
Creates a vendor reason code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | VendorReasons | Yes | The vendor reason code to create. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
Returns: vendor:VendorReasons|error
Sample code:
vendor:VendorReasons created = check fo->createVendorReasons({
dataAreaId: "USMF",
reasonCode: "DUPLICATE",
defaultComment: "Duplicate invoice received",
cancellationReason: "Yes",
forVendorTransactionType: "Yes"
});
getVendorReasons
Reads a specific vendor reason code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
reasonCode | string | Yes | The reason code key field. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | GetVendorReasonsQueries | No | OData query parameters: $expand, $select. |
Returns: vendor:VendorReasons|error
Sample code:
vendor:VendorReasons reason = check fo->getVendorReasons("USMF", "DUPLICATE");
deleteVendorReasons
Deletes a specific vendor reason code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
reasonCode | string | Yes | The reason code key field. |
headers | DeleteVendorReasonsHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: error?
Sample code:
check fo->deleteVendorReasons("USMF", "DUPLICATE", headers = {ifMatch: eTag});
updateVendorReasons
Updates a specific vendor reason code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
reasonCode | string | Yes | The reason code key field. |
payload | VendorReasons | Yes | Fields to update. |
headers | UpdateVendorReasonsHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: vendor:VendorReasons|error
Sample code:
vendor:VendorReasons updated = check fo->updateVendorReasons(
"USMF",
"DUPLICATE",
{defaultComment: "Duplicate vendor invoice - written off"},
headers = {ifMatch: eTag}
);
Vendors
listVendors
Reads all vendors in the system.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | ListVendorsQueries | No | OData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select. |
Returns: vendor:VendorsCollection|error
Sample code:
vendor:VendorsCollection result = check fo->listVendors(
queries = {
filter: "VendorGroupId eq 'DOMESTIC'",
top: 25,
'select: "VendorAccountNumber,VendorName,CurrencyCode,OnHoldStatus"
}
);
createVendors
Creates a vendor.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
payload | Vendor | Yes | The vendor to create. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
Returns: vendor:Vendor|error
Sample code:
vendor:Vendor created = check fo->createVendors({
dataAreaId: "USMF",
vendorAccountNumber: "US-100234",
vendorName: "Contoso Office Supplies",
vendorGroupId: "DOMESTIC",
currencyCode: "USD",
languageId: "en-us",
defaultPaymentTermsName: "NET30",
onHoldStatus: "No"
});
getVendors
Reads a specific vendor.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
vendorAccountNumber | string | Yes | The vendor account number key field. |
headers | map<string|string[]> | No | Additional HTTP request headers. |
queries | GetVendorsQueries | No | OData query parameters: $expand, $select. |
Returns: vendor:Vendor|error
Sample code:
vendor:Vendor vendorRecord = check fo->getVendors(
"USMF",
"US-100234",
queries = {
'select: "VendorAccountNumber,VendorName,OnHoldStatus,CreditLimit"
}
);
deleteVendors
Deletes a specific vendor.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
vendorAccountNumber | string | Yes | The vendor account number key field. |
headers | DeleteVendorsHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: error?
Sample code:
check fo->deleteVendors("USMF", "US-100234", headers = {ifMatch: eTag});
updateVendors
Updates a specific vendor.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
dataAreaId | string | Yes | The company data area identifier. |
vendorAccountNumber | string | Yes | The vendor account number key field. |
payload | Vendor | Yes | Fields to update. |
headers | UpdateVendorsHeaders | No | Additional HTTP request headers; set ifMatch to the entity's current ETag for optimistic concurrency. |
Returns: vendor:Vendor|error
Sample code:
vendor:Vendor updated = check fo->updateVendors(
"USMF",
"US-100234",
{onHoldStatus: "Invoice", creditLimit: 50000.00},
headers = {ifMatch: eTag}
);