Create a Sales Invoice in a Non-Base Currency
If you are using the contract-based REST API to integrate MYOB Acumatica with an external system, this external system can create a sales invoice in a non-base currency in MYOB Acumatica.
Testing of the Request
Before you test the code below, you need to do the following to configure your client application and the MYOB Acumatica instance to be used:
- Deploy a new MYOB Acumatica instance with the U100 dataset. For details on deploying an instance, see To Deploy an MYOB Acumatica Instance in the Installation Guide.
- On the Enable/Disable Features (CS100000) form, make sure that the Inventory and Order Management, Lot and Serial Tracking, and Advanced SO Invoices features are enabled.
- Enable currency overriding and rate overriding for the FRUITICO customer
as described in Enable Currency Overriding and Rate Overriding for a Customer.
Instead of executing the request that is provided in Enable Currency Overriding and Rate Overriding for a Customer,
you can configure the FRUITICO customer as follows:
- On the Customers (AR303000) form, open the FRUITICO customer.
- In the Financial Settings section of the Financial tab, select the Enable Currency Override check box, select the Enable Rate Override check box, and specify SPOT in the Curr. Rate Type box.
- Save your changes.
- If you use Postman as the client application for testing, in the IntegrationDevelopmentGuide.postman_collection.json collection (which is located in the IntegrationDevelopment\Help folder of the Help-and-Training-Examples repository on GitHub), make sure the collection variables have the proper values.
- To sign in to the instance in the client application, use the tenant name (which you specified when you created the instance) and the HEADOFFICE branch.
Request
You can use the following request example to create an invoice in euros for the FRUITICO customer through the contract-based REST API. This invoice contains the following details:
- Two APJAM96 items that are being sold to the customer
- An APJAM08 item that the customer is returning
- A refund of one hour of the CLEANING service, which had been paid for and is no longer needed
Tip: In the request example below,
<MYOB Acumatica instance URL>
is the URL of the MYOB Acumatica
instance (such as https://my.acumatica.com/MyInstance). You can omit the instance
name in the URL (that is, you can use https://my.acumatica.com) if the instance
is installed in the root of the website.PUT ?$expand=Details HTTP/1.1
Host: [<Acumatica ERP instance URL>]/entity/Default/23.200.001/SalesInvoice
Accept: application/json
Content-Type: application/json
{
"CustomerID": {"value": "FRUITICO"},
"Type": {"value": "Invoice"},
"Currency": {"value": "EUR"},
"Hold": {"value": false},
"Details":
[
{
"Branch": {"value": "HEADOFFICE"},
"InventoryID": {"value": "APJAM96"},
"WarehouseID": {"value": "WHOLESALE"},
"Qty": {"value": 2},
"UOM": {"value": "JBOX"},
"Location": {"value": "L3R1S2"}
},
{
"Branch": {"value": "HEADOFFICE"},
"InventoryID": {"value": "APJAM08"},
"WarehouseID": {"value": "WHOLESALE"},
"Location": {"value": "L1R1S2"},
"Qty": {"value": -1},
"UOM": {"value": "PIECE"}
},
{
"Branch": {"value": "HEADOFFICE"},
"InventoryID": {"value": "CLEANING"},
"Qty": {"value": -1},
"UOM": {"value": "HOUR"}
}
]
}