PostInvoice - accountsIQ/API-Wiki GitHub Wiki
The PostInvoice
function posts an existing invoice to the transaction table.
public WSResultStatus PostInvoice(string token, int invoiceID)
Public Function PostInvoice(ByVal token As String, ByVal invoiceID As Integer) As WSResultStatus
Parameter | Type | Description |
---|---|---|
token | String | The session token retrieved during authentication. |
invoiceID | Int32 | Unique identifier of the invoice to post to the transaction journal. |
Integration ws = new Integration();
String auth = ws.Login(entityID, partnerKey, userKey);
if (auth != null)
{
WSResult2OfInvoice result = ws.GetNewSalesInvoice(auth, "TESTINTEGR");
Assert.IsNotNull(result.Result);
InvoiceLine line = new InvoiceLine();
line.StockItemID = "STOCKITEM1";
line.StockItemPrice = 100M;
line.TaxCode = "NT";
line.TaxRate = 0.21M;
line.StockItemDescription = "From default";
line.StockItemCost = 50M;
line.InvoicedQuantity = 10;
line.NetAmount = 1000M;
line.TaxAmount = line.NetAmount * line.TaxRate;
line.GrossAmount = (1 + line.TaxRate) * line.NetAmount;
line.GLAccountCode = "1000";
line.ActualPrice = 100M;
line.LocationID = "1";
line.SublocationID = "BIN1";
line.GLAccountCode = "1000";
line.OpeningStockGLAccountCode = "2000";
result.Result.AccountName = "Test integration";
result.Result.ExternalReference = "External reference 2";
result.Result.Lines = new InvoiceLine[1];
result.Result.Lines[0] = line;
result.Result.ExchangeRate = 1;
WSResultStatus r = ws.SaveInvoice(auth, result.Result, true);
Assert.IsTrue(r.Status == OperationStatus.Created);
WSResult2OfArrayOfInvoice invoices = ws.GetInvoicesByExternalReference(auth,"External reference 2" );
Assert.IsTrue(invoices.Result != null);
Invoice invoice = invoices.Result[invoices.Result.Length-1];
WSResultStatus postedResult = ws.PostInvoice(auth, invoice.InvoiceID);
Assert.IsTrue(postedResult.Status == OperationStatus.Created);
}
Dim ws As New Integration
Dim auth As String = ws.Login(entityID, partnerKey, userKey)
If (Not Me.auth Is Nothing) Then
Dim result As WSResult2OfInvoice = Me.ws.GetNewSalesInvoice(Me.auth, "TESTINTEGR")
Assert.IsNotNull(result.Result)
Dim line As New InvoiceLine
line.StockItemID = "STOCKITEM1"
line.StockItemPrice = 100
line.TaxCode = "NT"
line.TaxRate = 0.21
line.StockItemDescription = "From default"
line.StockItemCost = 50
line.InvoicedQuantity = 10
line.NetAmount = 1000
line.TaxAmount = (line.NetAmount * line.TaxRate)
line.GrossAmount = (Decimal.op_Increment(line.TaxRate) * line.NetAmount)
line.GLAccountCode = "1000"
line.ActualPrice = 100
line.LocationID = "1"
line.SublocationID = "BIN1"
line.GLAccountCode = "1000"
line.OpeningStockGLAccountCode = "2000"
result.Result.AccountName = "Test integration"
result.Result.ExternalReference = "External reference 2"
result.Result.Lines = New InvoiceLine() { line }
result.Result.ExchangeRate = 1
Assert.IsTrue((Me.ws.SaveInvoice(Me.auth, result.Result, True).Status = OperationStatus.Created))
Dim invoices As WSResult2OfArrayOfInvoice = Me.ws.GetInvoicesByExternalReference(Me.auth, "External reference 2")
Assert.IsTrue((Not invoices.Result Is Nothing))
Dim invoice As Invoice = invoices.Result((invoices.Result.Length - 1))
Assert.IsTrue((Me.ws.PostInvoice(Me.auth, invoice.InvoiceID).Status = OperationStatus.Created))
End If