I'm using the latest Xero java client api's downloaded via gradle:
compile group: 'com.xero', name: 'xero-java-sdk', version: '1.0.9'
compile group: 'com.xero', name: 'xero-accounting-api-schema', version: '0.1.2'
And I'm trying to create an invoice using this code:
Contact xeroContact = xeroClient.getContact(xeroContactId);
xeroInvoice.setContact(xeroContact);
xeroInvoice.setType(InvoiceType.ACCREC);
xeroInvoice.setStatus(InvoiceStatus.AUTHORISED);
xeroInvoice.setCurrencyCode(CurrencyCode.AUD);
xeroInvoice.setBrandingThemeID(invoicingConfig.xeroBrandingThemeId);
xeroInvoice.setSentToContact(true);
xeroInvoice.setLineAmountTypes(LineAmountType.INCLUSIVE);
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(Date.from(Instant.ofEpochSecond(timestamp)));
xeroInvoice.setDate(calendar);
xeroInvoice.setDueDate(calendar);
ArrayOfLineItem lineItems = new ArrayOfLineItem();
LineItem lineItem = new LineItem();
lineItem.setAccountCode(invoicingConfig.xeroAccountCode);
lineItem.setQuantity(BigDecimal.ONE);
lineItem.setDescription(chargeDescription);
lineItem.setUnitAmount(chargeAmount);
lineItems.getLineItem().add(lineItem);
xeroInvoice.setLineItems(lineItems);
xeroInvoice.setAmountPaid(chargeAmount);
return xeroClient.createInvoices(Arrays.asList(xeroInvoice)).get(0);
and parameters:
xeroContactId: "f283d2c5-24a8-4e78-9b66-44c5d391a089"
timestamp: 1534133124
chargeDescription: "Dedicated Bronze Num"
chargeAmount: 55.00
(xeroContactId is being read from our database)
And on our production server, for those parameters I'm continuously getting back:
com.xero.api.XeroClient - com.xero.api.XeroApiException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid URL</h2>
<hr><p>HTTP Error 400. The request URL is invalid.</p>
</BODY></HTML>
This doesn't seem to be a valid Xero api error response.