Skip to content
Proud to collaborate with Microsoft for Startups

xero.invoices.create-invoices ​

Creates one or more sales invoices or purchase bills

Overview ​

PropertyValue
Workflow typeAtomic
LibraryApp-xero
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
base_urlstringYes—Xero API root, e.g. https://<host>/api
api_tokenstringNo—Bearer token; omit to use the workflow's token env var
xero_tenant_idstringYes—Xero identifier for Tenant
summarizeerrorsbooleanNo—If false return 200 OK and mix of successfully created objects and any with validation errors
unitdpintegerNo—e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
idempotency_keystringNo—This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
allowbackordersbooleanNo—Allows an invoice to be created even when one or more line items contain tracked inventory where the invoice quantity would cause the available quantity to go negative
paginationjsonNo——
warningslistNo—Displays array of warning messages from the API
invoiceslistNo——

Output Schema ​

FieldTypeRequiredDefaultDescription
base_urlstringYes—Xero API root, e.g. https://<host>/api
api_tokenstringNo—Bearer token; omit to use the workflow's token env var
xero_tenant_idstringYes—Xero identifier for Tenant
summarizeerrorsbooleanNo—If false return 200 OK and mix of successfully created objects and any with validation errors
unitdpintegerNo—e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
idempotency_keystringNo—This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
allowbackordersbooleanNo—Allows an invoice to be created even when one or more line items contain tracked inventory where the invoice quantity would cause the available quantity to go negative
paginationjsonNo——
warningslistNo—Displays array of warning messages from the API
invoiceslistNo——
status_codeintegerNo—HTTP status code of the completed call
responsejsonNo—Parsed JSON response body
failure_reasonstringNo——
failure_typestringNo——
failed_atstringNo——
failed_stepstringNo——
failed_layerstringNo——
failed_at_statestringNo——
errorstringNo——
error_typestringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—executeWaiting to call PUT /Invoices
completedNoYesYes—HTTP call succeeded
failedNoYesNo—HTTP call failed

State Diagram ​

Transitions ​

FromActionToDescription
pendingexecutecompletedPerform PUT /Invoices
* (any state)failfailedRecord the failure reason

Outcomes ​

OutcomeTypeDescriptionState Data Keys
completedSUCCESSThe provider accepted the requeststatus_code, response
failedFAILUREThe provider rejected the request or was unreachablefailure_reason, failure_type, status_code

Business Errors ​

CodeMessage Template
HTTP_AUTHENTICATION_FAILEDThe provider rejected the credential (HTTP {status_code})
HTTP_AUTHORIZATION_FAILEDThe credential is not permitted to perform this operation (HTTP {status_code})
HTTP_NOT_FOUNDThe provider has no resource at {path} (HTTP 404)
HTTP_RATE_LIMITEDThe provider rate-limited this request (HTTP 429)
HTTP_REQUEST_FAILEDThe provider returned HTTP {status_code} for {method}
HTTP_RESPONSE_SHAPE_UNEXPECTEDThe provider response for {method} {path} could not be parsed as JSON

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "xero.invoices.create-invoices",
  "initial_data": {
    "base_url": "value",
    "xero_tenant_id": "value"
  }
}