openapi: 3.0.0 info: title: Xero Accounting API version: "3.0.1" termsOfService: "https://developer.xero.com/xero-developer-platform-terms-conditions/" contact: name: "Xero Platform Team" email: "api@xero.com" url: "https://developer.xero.com" servers: - description: The Xero Accounting API exposes accounting and related functions of the main Xero application and can be used for a variety of purposes such as creating transactions like invoices and credit notes, right through to extracting accounting data via our reports endpoint. url: https://api.xero.com/api.xro/2.0 paths: /Accounts: parameters: - $ref: '#/components/parameters/requiredHeader' type: string get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getAccounts summary: Retrieves the full chart of accounts parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="ACTIVE" AND Type=="BANK" x-example-csharp: Status==\"ACTIVE\" x-example-java: Status=="' + Account.StatusEnum.ACTIVE+ '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Account::STATUS_ACTIVE . '" x-example-ruby: Status==#{XeroRuby::Accounting::Account::ACTIVE} schema: type: string - in: query name: order description: Order by an any element example: "Name ASC" schema: type: string responses: '200': description: Success - return response of type Accounts array with 0 to n Account content: application/json: schema: $ref: '#/components/schemas/Accounts' example: '{ "Accounts": [{ "AccountID": "ebd06280-af70-4bed-97c6-7451a454ad85", "Code": "091", "Name": "Business Savings Account", "Type": "BANK", "TaxType": "NONE", "EnablePaymentsToAccount": false, "BankAccountNumber": "0209087654321050", "BankAccountType": "BANK", "CurrencyCode": "NZD" },{ "AccountID": "7d05a53d-613d-4eb2-a2fc-dcb6adb80b80", "Code": "200", "Name": "Sales", "Type": "REVENUE", "TaxType": "OUTPUT2", "Description": "Income from any normal business activity", "EnablePaymentsToAccount": false }] }' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createAccount summary: Creates a new chart of accounts parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - object: is_object: true key: account keyPascal: Account - code: key: code keyPascal: Code default: 123456 object: account - name: key: name keyPascal: Name default: FooBar object: account - type: key: type keyPascal: Type default: EXPENSE nonString: true php: XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE node: AccountType.EXPENSE ruby: XeroRuby::Accounting::AccountType::EXPENSE python: AccountType.EXPENSE java: com.xero.models.accounting.AccountType.EXPENSE csharp: AccountType.EXPENSE object: account - description: is_last: true key: description keyPascal: Description default: "Hello World" object: account responses: '200': description: Success - created new Account and return response of type Accounts array with new Account content: application/json: schema: $ref: '#/components/schemas/Accounts' example: '{ "Id": "11814c9d-3b5e-492e-93b0-fad16bf3244f", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550793549392)\/", "Accounts": [ { "AccountID": "66b262e2-561e-423e-8937-47d558f13442", "Code": "123456", "Name": "Foobar", "Status": "ACTIVE", "Type": "EXPENSE", "TaxType": "INPUT", "Description": "Hello World", "Class": "EXPENSE", "EnablePaymentsToAccount": false, "ShowInExpenseClaims": false, "ReportingCode": "EXP", "ReportingCodeName": "Expense", "UpdatedDateUTC": "\/Date(1550793549320+0000)\/" } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "AccountID": "00000000-0000-0000-0000-000000000000", "Code": "123456", "Name": "Foobar", "Type": "EXPENSE", "Description": "Hello World", "ValidationErrors": [ { "Message": "Please enter a unique Name." } ] } ] }' requestBody: required: true description: Account object in body of request content: application/json: schema: $ref: '#/components/schemas/Account' example: '{ "Code":"123456", "Name":"Foobar", "Type":"EXPENSE", "Description":"Hello World" }' '/Accounts/{AccountID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getAccount summary: Retrieves a single chart of accounts by using a unique account Id parameters: - $ref: '#/components/parameters/AccountID' responses: '200': description: Success - return response of type Accounts array with one Account content: application/json: schema: $ref: '#/components/schemas/Accounts' example: '{ "Id": "323455cc-9511-4451-a873-248d2983f38e", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550797359081)\/", "Accounts": [ { "AccountID": "99ce6032-0678-4aa0-8148-240c75fee33a", "Code": "123456", "Name": "FooBar", "Status": "ACTIVE", "Type": "EXPENSE", "TaxType": "INPUT", "Description": "Hello World", "Class": "EXPENSE", "EnablePaymentsToAccount": false, "ShowInExpenseClaims": false, "ReportingCode": "EXP", "ReportingCodeName": "Expense", "UpdatedDateUTC": "\/Date(1550797359120+0000)\/" } ] }' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: updateAccount summary: Updates a chart of accounts x-hasAccountingValidationError: true x-example: - account: is_object: true key: account keyPascal: Account - code: key: code keyPascal: Code default: 123456 object: account - name: key: name keyPascal: Name default: BarFoo object: account - type: key: type keyPascal: Type default: EXPENSE nonString: true php: XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE node: AccountType.EXPENSE ruby: XeroRuby::Accounting::AccountType::EXPENSE python: AccountType.EXPENSE java: com.xero.models.accounting.AccountType.EXPENSE csharp: AccountType.EXPENSE object: account - description: key: description keyPascal: Description default: "Hello World" object: account - taxType: is_last: true key: taxType keyPascal: TaxType keySnake: tax_type default: NONE object: account - accounts: is_object: true key: accounts keyPascal: Accounts - accounts: is_last: true is_array_add: true key: accounts keyPascal: Accounts java: Accounts csharp: Account object: account parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - update existing Account and return response of type Accounts array with updated Account content: application/json: schema: $ref: '#/components/schemas/Accounts' example: '{ "Id": "9012e75c-ec08-40a9-ae15-153fc1f35c4d", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550795389340)\/", "Accounts": [ { "AccountID": "99ce6032-0678-4aa0-8148-240c75fee33a", "Code": "654321", "Name": "BarFoo", "Status": "ACTIVE", "Type": "EXPENSE", "TaxType": "INPUT", "Description": "Good Bye World", "Class": "EXPENSE", "EnablePaymentsToAccount": false, "ShowInExpenseClaims": false, "ReportingCode": "EXP", "ReportingCodeName": "Expense", "UpdatedDateUTC": "\/Date(1550795389333+0000)\/" } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "AccountID": "00000000-0000-0000-0000-000000000000", "Code": "123456", "Name": "Foobar", "Type": "EXPENSE", "Description": "Hello World", "ValidationErrors": [ { "Message": "Please enter a unique Name." } ] } ] }' requestBody: required: true description: Request of type Accounts array with one Account content: application/json: schema: $ref: '#/components/schemas/Accounts' example: '{ "Accounts":[ { "Code":"123456", "Name":"BarFoo", "AccountID":"99ce6032-0678-4aa0-8148-240c75fee33a", "Type":"EXPENSE", "Description":"GoodBye World", "TaxType":"INPUT", "EnablePaymentsToAccount":false, "ShowInExpenseClaims":false, "Class":"EXPENSE", "ReportingCode":"EXP", "ReportingCodeName":"Expense", "UpdatedDateUTC":"2019-02-21T16:29:47.96-08:00" } ] }' delete: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: deleteAccount x-hasAccountingValidationError: true summary: Deletes a chart of accounts parameters: - $ref: '#/components/parameters/AccountID' responses: '200': description: Success - delete existing Account and return response of type Accounts array with deleted Account content: application/json: schema: $ref: '#/components/schemas/Accounts' example: '{ "Id": "76bb0543-8efe-4acc-b7f6-67dfcdec37b4", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550798217216)\/", "Accounts": [ { "AccountID": "7f3c0bec-f3e7-4073-b4d6-cc56dd027ef1", "Code": "123456", "Name": "FooBar", "Status": "DELETED", "Type": "EXPENSE", "TaxType": "INPUT", "Description": "Hello World", "Class": "EXPENSE", "EnablePaymentsToAccount": false, "ShowInExpenseClaims": false, "ReportingCode": "EXP", "ReportingCodeName": "Expense", "UpdatedDateUTC": "\/Date(1550798217210+0000)\/" } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "AccountID": "00000000-0000-0000-0000-000000000000", "Code": "123456", "Name": "Foobar", "Type": "EXPENSE", "Description": "Hello World", "ValidationErrors": [ { "Message": "Please enter a unique Name." } ] } ] }' '/Accounts/{AccountID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getAccountAttachments summary: Retrieves attachments for a specific accounts by using a unique account Id parameters: - $ref: '#/components/parameters/AccountID' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "439c1573-3cd8-4697-a9f6-81fa651ee8f3", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550852630329)\/", "Attachments": [ { "AttachmentID": "52a643be-cd5c-489f-9778-53a9fd337756", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '/Accounts/{AccountID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getAccountAttachmentById summary: Retrieves a specific attachment from a specific account using a unique attachment Id parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Account as binary data content: application/octet-stream: schema: type: string format: binary '/Accounts/{AccountID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getAccountAttachmentByFileName summary: Retrieves an attachment for a specific account by filename parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Account as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateAccountAttachmentByFileName x-hasAccountingValidationError: true summary: Updates attachment on a specific account by filename parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "c8d6413a-1da2-4faa-9848-21f60443e906", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550859714477)\/", "Attachments": [ { "AttachmentID": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createAccountAttachmentByFileName x-hasAccountingValidationError: true summary: Creates an attachment on a specific account parameters: - $ref: '#/components/parameters/AccountID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "724cdff5-bcd1-4c5c-977e-e864c24258e0", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550856817769)\/", "Attachments": [ { "AttachmentID": "ab95b276-9dce-4925-9077-439818ba270f", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte /BatchPayments: parameters: - $ref: '#/components/parameters/requiredHeader' description: Batch payments allow you to bundle multiple bills or invoices into one payment transaction. This means a single payment in Xero can be reconciled with a single transaction on the bank statement making for a much simpler bank reconciliation experience. get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBatchPayments summary: Retrieves either one or many batch payments for invoices parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="AUTHORISED" x-example-csharp: Status==\"AUTHORISED\" x-example-java: Status=="' + BatchPayment.StatusEnum.AUTHORISED + '" x-example-php: Status=="' . XeroAPI\XeroPHP\Models\Accounting\BatchPayment::STATUS_AUTHORISED . '" x-example-ruby: Status==#{XeroRuby::Accounting::BatchPayment::AUTHORISED} schema: type: string - in: query name: order description: Order by an any element example: "Date ASC" schema: type: string responses: '200': description: Success - return response of type BatchPayments array of BatchPayment objects content: application/json: schema: $ref: '#/components/schemas/BatchPayments' example: '{ "Id": "6ab84949-4fe5-4788-a135-4d8f690d24d7", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550866184006)\/", "BatchPayments": [ { "Account": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9" }, "Reference": "Hello World", "BatchPaymentID": "d0e9bbbf-5b8a-48b6-906a-035591fcb061", "DateString": "2017-11-28T00:00:00", "Date": "\/Date(1511827200000+0000)\/", "Payments": [ { "Invoice": { "InvoiceID": "0975dec2-0cf6-498d-9c9f-c6775b45c61d", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "97ec2ef8-f4d6-4de5-9f2a-385d41cdc2fc", "Amount": 200.00 }, { "Invoice": { "InvoiceID": "600982d9-6605-4e11-afa1-d8dec2be7b52", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "e232795f-b919-4865-a754-12f6ae8402c0", "Amount": 200.00 }, { "Invoice": { "InvoiceID": "99a2bd54-4ab1-413c-90bb-57f6464fe5d6", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "c2d571a5-38ff-4d37-9d43-dfadb4ad53ff", "Amount": 200.00 }, { "Invoice": { "InvoiceID": "c81942c8-bfc5-4c88-a21a-b892a4a8c1c5", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "0f3c18dc-49bd-47a4-a875-03c84a29978f", "Amount": 200.00 }, { "Invoice": { "InvoiceID": "6c9a1d89-8319-42f6-87d6-7690e748af85", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "43541eed-f3ac-44ac-88cb-9fe1cb7ed8b8", "Amount": 200.00 } ], "Type": "RECBATCH", "Status": "AUTHORISED", "TotalAmount": 1000.00, "UpdatedDateUTC": "\/Date(1511893792820+0000)\/", "IsReconciled": false } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createBatchPayment summary: Creates one or many batch payments for invoices x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - paymentAccount: is_object: true key: paymentAccount keyPascal: Account keySnake: payment_account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: paymentAccount - bankAccount: is_object: true key: bankAccount keyPascal: Account keySnake: bank_account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: bankAccount - invoice: is_object: true key: invoice keyPascal: Invoice - invoiceID: is_last: true is_uuid: true key: invoiceID keyPascal: InvoiceID keySnake: invoice_id default: "00000000-0000-0000-0000-000000000000" object: invoice - payment: is_object: true key: payment keyPascal: Payment - set_bankaccount: is_variable: true nonString: true key: account keyPascal: Account default: bankAccount python: bank_account ruby: bank_account object: payment - date: is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: payment - amount: nonString: true key: amount keyPascal: Amount default: 1.00 is_money: true object: payment - set_invoice: is_last: true is_variable: true nonString: true key: invoice keyPascal: Invoice default: invoice object: payment - payments: is_list: true key: payments keyPascal: Payment - add_payments: is_last: true is_list_add: true key: payments keyPascal: Payments object: payment - batchPayment: is_object: true key: batchPayment keyPascal: BatchPayment keySnake: batch_payment - set_paymentaccount: is_variable: true nonString: true key: account keyPascal: Account default: paymentAccount python: payment_account ruby: payment_account object: batchPayment - reference: key: reference keyPascal: Reference default: "hello foobar" object: batchPayment - date: is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: batchPayment - set_payments: is_last: true is_variable: true nonString: true key: payments keyPascal: Payments default: payments object: batchPayment - batchPayments: is_object: true key: batchPayments keyPascal: BatchPayments - add_batchPayments: is_last: true is_array_add: true key: batchPayments keyPascal: BatchPayments keySnake: batch_payments java: BatchPayments python: batch_payment ruby: batch_payment csharp: BatchPayment object: batchPayment parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type BatchPayments array of BatchPayment objects content: application/json: schema: $ref: '#/components/schemas/BatchPayments' example: '{ "Id": "424745ed-6356-46ad-87d4-3585f9062fb4", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550865988111)\/", "BatchPayments": [ { "Account": { "AccountID": "5ec2f302-cd60-4f8b-a915-9229dd45e6fa" }, "Reference": "Foobar123", "BatchPaymentID": "d318c343-208e-49fe-b04a-45642349bcf1", "DateString": "2019-02-22T00:00:00", "Date": "\/Date(1550793600000+0000)\/", "Payments": [ { "Invoice": { "InvoiceID": "3323652c-155e-433b-8a73-4dde7cfbf410", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "c05098fa-ae3c-4f00-80ec-0a9df07dedff", "Amount": 1.00 }, { "Invoice": { "InvoiceID": "e4abafb4-1f5b-4d9f-80b3-9a7b815bc302", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "96409489-2f7d-4804-9a6d-6b939b0e038a", "Amount": 1.00 }, { "Invoice": { "InvoiceID": "e6039672-b161-40cd-b07b-a0178e7186ad", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "d2796067-bf71-4f06-b386-81f1454fa866", "Amount": 1.00 } ], "Type": "RECBATCH", "Status": "AUTHORISED", "TotalAmount": 3.00, "UpdatedDateUTC": "\/Date(1550865987783+0000)\/", "IsReconciled": false } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: BatchPayments with an array of Payments in body of request content: application/json: schema: $ref: '#/components/schemas/BatchPayments' example: '{ "BatchPayments": [ { "Account": { "AccountID": "00000000-0000-0000-0000-000000000000" }, "Reference": "ref", "Date": "2018-08-01", "Payments": [ { "Account": { "Code": "001" }, "Date": "2019-12-31", "Amount": 500, "Invoice": { "InvoiceID": "00000000-0000-0000-0000-000000000000", "LineItems": [], "Contact": {}, "Type": "ACCPAY" } } ] } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: deleteBatchPayment summary: Updates a specific batch payment for invoices and credit notes parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - batchPaymentDelete: is_object: true key: batchPaymentDelete keyPascal: BatchPaymentDelete - status: is_last: true key: status keyPascal: Status default: DELETED object: batchPaymentDelete - batchPaymentID: is_last: true is_uuid: true key: batchPaymentID keyPascal: BatchPaymentID keySnake: batch_payment_id default: 00000000-0000-0000-0000-000000000000 object: batchPaymentDelete responses: '200': description: Success - return response of type BatchPayments array for updated BatchPayment content: application/json: schema: $ref: '#/components/schemas/BatchPayments' example: '{ "Id": "ee23328c-4a8b-4ee7-8fb6-9796ffab9cb0", "Status": "OK", "ProviderName": "provider-name", "DateTimeUTC": "\/Date(1583945852489)\/", "BatchPayments": [ { "Account": { "AccountID": "efb6e3a4-3156-4cee-bfe1-a282a3cc1d8f" }, "BatchPaymentID": "b649632e-2782-4c74-95a5-d994d7140ed9", "DateString": "2022-08-01T00:00:00", "Date": "/Date(1659312000000+0000)/", "Payments": [], "Type": "PAYBATCH", "Status": "DELETED", "TotalAmount": 18.00, "UpdatedDateUTC": "/Date(1659377631813+0000)/", "IsReconciled": false } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BatchPaymentDelete' example: '{ "BatchPaymentID": "9bf296e9-0748-4d29-a3dc-24dde1098030", "Status":"DELETED" }' '/BatchPayments/{BatchPaymentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBatchPayment summary: Retrieves a specific batch payment using a unique batch payment Id parameters: - $ref: '#/components/parameters/BatchPaymentID' responses: '200': description: Success - return response of type BatchPayments array with matching batch payment Id content: application/json: schema: $ref: '#/components/schemas/BatchPayments' example: '{ "Id": "6ab84949-4fe5-4788-a135-4d8f690d24d7", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550866184006)\/", "BatchPayments": [ { "Account": { "AccountID": "13918178-849a-4823-9a31-57b7eac713d7" }, "Reference": "ref", "BatchPaymentID": "44a1013e-4946-4a73-b207-dfe5424a5ea5", "DateString": "2018-10-03T00:00:00", "Date": "/Date(1538524800000+0000)/", "Payments": [ { "Invoice": { "InvoiceID": "5aa9451d-95d1-4f95-a966-bbab2573f71c", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "a22a64cb-364e-43fa-9a1f-bb2cd1f4adde", "Reference": "ref/cheque", "Amount": 913.55 }, { "Invoice": { "InvoiceID": "30a87092-31b5-4a2c-831e-327486533dd2", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "6e20be79-32d8-4ae1-978e-f76d9b245c02", "Amount": 495 }, { "Invoice": { "InvoiceID": "86d6e00f-ef56-49f7-9a54-796ccd5ca057", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] }, "PaymentID": "4ba761b8-5940-4a3f-bcdf-7775adb00332", "Amount": 3080 } ], "Type": "RECBATCH", "Status": "AUTHORISED", "TotalAmount": 4488.55, "UpdatedDateUTC": "/Date(1538525239370+0000)/", "IsReconciled": false } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: deleteBatchPaymentByUrlParam summary: Updates a specific batch payment for invoices and credit notes parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BatchPaymentID' responses: '200': description: Success - return response of type BatchPayments array for updated BatchPayment content: application/json: schema: $ref: '#/components/schemas/BatchPayments' example: '{ "Id": "ee23328c-4a8b-4ee7-8fb6-9796ffab9cb0", "Status": "OK", "ProviderName": "provider-name", "DateTimeUTC": "\/Date(1583945852489)\/", "BatchPayments": [ { "Account": { "AccountID": "efb6e3a4-3156-4cee-bfe1-a282a3cc1d8f" }, "BatchPaymentID": "b649632e-2782-4c74-95a5-d994d7140ed9", "DateString": "2022-08-01T00:00:00", "Date": "/Date(1659312000000+0000)/", "Payments": [], "Type": "PAYBATCH", "Status": "DELETED", "TotalAmount": 18.00, "UpdatedDateUTC": "/Date(1659377631813+0000)/", "IsReconciled": false } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BatchPaymentDeleteByUrlParam' example: '{ "Status":"DELETED" }' '/BatchPayments/{BatchPaymentID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBatchPaymentHistory summary: Retrieves history from a specific batch payment parameters: - $ref: '#/components/parameters/BatchPaymentID' responses: '200': description: Success - return response of HistoryRecords array of 0 to N HistoryRecord content: application/json: schema: $ref: '#/components/schemas/HistoryRecords' example: '{ "Id": "c58e2f9c-baad-42a4-8bb7-f32b6f88fa04", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550898452503)\/", "HistoryRecords": [ { "Changes": "Approved", "DateUTCString": "2017-11-28T18:29:52", "DateUTC": "\/Date(1511893792813+0000)\/", "User": "Buzz Lightyear", "Details": "" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createBatchPaymentHistoryRecord summary: Creates a history record for a specific batch payment x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BatchPaymentID' responses: '200': description: Success - return response of type HistoryRecords array of HistoryRecord objects content: application/json: schema: $ref: '#/components/schemas/HistoryRecords' example: '{ "Id": "d7525479-3392-44c0-bb37-ff4a0b5df5bd", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550899400362)\/", "HistoryRecords": [ { "DateUTCString": "2019-02-23T05:23:20", "DateUTC": "\/Date(1550899400362)\/", "Details": "Hello World", "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' /BankTransactions: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBankTransactions summary: Retrieves any spent or received money transactions parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="AUTHORISED" x-example-java: Status=="' + BankTransaction.StatusEnum.AUTHORISED + '" x-example-csharp: Status==\"AUTHORISED\" x-example-php: Status=="' . XeroAPI\XeroPHP\Models\Accounting\BankTransaction::STATUS_AUTHORISED . '" x-example-ruby: Status==#{XeroRuby::Accounting::BankTransaction::AUTHORISED} schema: type: string - in: query name: order description: Order by an any element example: "Type ASC" schema: type: string - in: query name: page description: Up to 100 bank transactions will be returned in a single API call with line items details example: 1 schema: type: integer - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type BankTransactions array with 0 to n BankTransaction content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ "Id": "18e7e80c-5dca-4a57-974e-8b572cc5efe8", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "/Date(1551212901659)/", "BankTransactions": [ { "BankTransactionID": "db54aab0-ad40-4ced-bcff-0940ba20db2c", "BankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "BatchPayment": { "Account": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9" }, "BatchPaymentID": "b54aa50c-794c-461b-89d1-846e1b84d9c0", "Date": "/Date(1476316800000+0000)/", "Type": "RECBATCH", "Status": "AUTHORISED", "TotalAmount": "12.00", "UpdatedDateUTC": "/Date(1476392487037+0000)/", "IsReconciled": "false" }, "Type": "RECEIVE", "IsReconciled": false, "PrepaymentID": "cb62750f-b49c-464b-a45b-e2e2c514c8a9", "HasAttachments": true, "Contact": { "ContactID": "9c2c64de-12c9-4167-b503-e2c0e1aa1f49", "Name": "sam", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2016-10-13T00:00:00", "Date": "/Date(1476316800000+0000)/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [], "SubTotal": 10, "TotalTax": 0, "Total": 10, "UpdatedDateUTC": "/Date(1476389616437+0000)/", "CurrencyCode": "USD" }, { "BankTransactionID": "29a69c45-64ca-4805-a1cc-34990de837b3", "BankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "Type": "SPEND-OVERPAYMENT", "IsReconciled": false, "OverpaymentID": "7d457db3-3b0a-47e9-8b79-81252a7bcdcb", "HasAttachments": false, "Contact": { "ContactID": "9c2c64de-12c9-4167-b503-e2c0e1aa1f49", "Name": "sam", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2016-10-13T00:00:00", "Date": "/Date(1476316800000+0000)/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 9, "TotalTax": 0, "Total": 9, "UpdatedDateUTC": "/Date(1476389930500+0000)/", "CurrencyCode": "USD" }, { "BankTransactionID": "0b89bf5c-d40b-4514-96be-36a739fb0188", "BankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "Type": "SPEND-OVERPAYMENT", "IsReconciled": false, "OverpaymentID": "bf9b5f33-c0d6-4182-84a2-40848023e5a1", "HasAttachments": false, "Contact": { "ContactID": "9c2c64de-12c9-4167-b503-e2c0e1aa1f49", "Name": "sam", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2016-10-13T00:00:00", "Date": "/Date(1476316800000+0000)/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 8, "TotalTax": 0, "Total": 8, "UpdatedDateUTC": "/Date(1476392487037+0000)/", "CurrencyCode": "USD" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createBankTransactions summary: Creates one or more spent or received money transaction x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contact keyPascal: Contact - contactID: is_uuid: true is_last: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - bankAccount: is_object: true key: bankAccount keyPascal: Account keySnake: bank_account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: bankAccount - bankTransaction: is_object: true key: bankTransaction keyPascal: BankTransaction keySnake: bank_transaction - type: nonString: true key: type keyPascal: Type default: RECEIVE php: XeroAPI\XeroPHP\Models\Accounting\BankTransaction::TYPE_RECEIVE node: BankTransaction.TypeEnum.RECEIVE ruby: XeroRuby::Accounting::BankTransaction::RECEIVE python_string: RECEIVE java: com.xero.models.accounting.BankTransaction.TypeEnum.RECEIVE csharp: BankTransaction.TypeEnum.RECEIVE object: bankTransaction - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: bankTransaction - set_lineitems: is_variable: true nonString: true key: lineItems keyPascal: LineItems object: bankTransaction default: lineItems - set_bankaccount: is_last: true is_variable: true nonString: true key: bankAccount keyPascal: BankAccount keySnake: bank_account python: bank_account ruby: bank_account default: bankAccount object: bankTransaction - bankTransactions: is_object: true key: bankTransactions keyPascal: BankTransactions - add_bankTransaction: is_last: true is_array_add: true key: bankTransactions keyPascal: BankTransactions keySnake: bank_transactions java: BankTransactions python: bank_transaction ruby: bank_transaction csharp: BankTransaction object: bankTransaction parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type BankTransactions array with new BankTransaction content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ "Id": "5bc1d776-3c7f-4fe8-9b2d-09e747077a88", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551213568047)\/", "BankTransactions": [ { "BankTransactionID": "1289c190-e46d-434b-9628-463ffdb52f00", "BankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "Type": "SPEND", "Reference": "", "IsReconciled": false, "CurrencyRate": 1.000000, "Contact": { "ContactID": "5cc8cf28-567e-4d43-b287-687cfcaec47c", "ContactStatus": "ACTIVE", "Name": "Katherine Warren", "FirstName": "Katherine", "LastName": "Warren", "EmailAddress": "kat.warren@clampett.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "AddressLine1": "", "AddressLine2": "", "AddressLine3": "", "AddressLine4": "", "City": "Palo Alto", "Region": "CA", "PostalCode": "94020", "Country": "United States" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "847-1294", "PhoneAreaCode": "(626)", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1503348544227+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-02-26T00:00:00", "Date": "\/Date(1551139200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Inclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "TAX001", "TaxAmount": 1.74, "LineAmount": 20.00, "AccountCode": "400", "Tracking": [], "Quantity": 1.0000, "LineItemID": "d2a06879-da49-4d6c-83b5-72a93a523ec6", "AccountID": "ebd06280-af70-4bed-97c6-7451a454ad85", "ValidationErrors": [] } ], "SubTotal": 18.26, "TotalTax": 1.74, "Total": 20.00, "UpdatedDateUTC": "\/Date(1551213567813+0000)\/", "CurrencyCode": "USD", "StatusAttributeString": "ERROR", "ValidationErrors": [ { "Message": "The Contact must contain at least 1 of the following elements to identify the contact: Name, ContactID, ContactNumber" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: BankTransactions with an array of BankTransaction objects in body of request content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ bankTransactions: [{ type: BankTransaction.TypeEnum.SPEND, contact: { contactID: "00000000-0000-0000-0000-000000000000" }, lineItems: [{ description: "Foobar", quantity: 1.0, unitAmount: 20.0, accountCode: "000" } ], bankAccount: { code: "000" }}]}' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateOrCreateBankTransactions summary: Updates or creates one or more spent or received money transaction x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contact keyPascal: Contact - contactID: is_uuid: true is_last: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - bankAccount: is_object: true key: bankAccount keyPascal: Account keySnake: bank_account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: bankAccount - bankTransaction: is_object: true key: bankTransaction keyPascal: BankTransaction keySnake: bank_transaction - type: nonString: true key: type keyPascal: Type default: RECEIVE php: XeroAPI\XeroPHP\Models\Accounting\BankTransaction::TYPE_RECEIVE node: BankTransaction.TypeEnum.RECEIVE ruby: XeroRuby::Accounting::BankTransaction::RECEIVE python_string: RECEIVE java: com.xero.models.accounting.BankTransaction.TypeEnum.RECEIVE csharp: BankTransaction.TypeEnum.RECEIVE object: bankTransaction - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: bankTransaction - set_lineitems: is_variable: true nonString: true key: lineItems keyPascal: LineItems object: bankTransaction default: lineItems - set_bankaccount: is_last: true is_variable: true nonString: true key: bankAccount keyPascal: BankAccount keySnake: bank_account python: bank_account ruby: bank_account default: bankAccount object: bankTransaction - bankTransactions: is_object: true key: bankTransactions keyPascal: BankTransactions - add_bankTransaction: is_last: true is_array_add: true key: bankTransactions keyPascal: BankTransactions keySnake: bank_transactions java: BankTransactions python: bank_transaction ruby: bank_transaction csharp: BankTransaction object: bankTransaction parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type BankTransactions array with new BankTransaction content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ "Id": "5bc1d776-3c7f-4fe8-9b2d-09e747077a88", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551213568047)\/", "BankTransactions": [ { "BankTransactionID": "1289c190-e46d-434b-9628-463ffdb52f00", "BankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "Type": "SPEND", "Reference": "", "IsReconciled": false, "CurrencyRate": 1.000000, "Contact": { "ContactID": "5cc8cf28-567e-4d43-b287-687cfcaec47c", "ContactStatus": "ACTIVE", "Name": "Katherine Warren", "FirstName": "Katherine", "LastName": "Warren", "EmailAddress": "kat.warren@clampett.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "AddressLine1": "", "AddressLine2": "", "AddressLine3": "", "AddressLine4": "", "City": "Palo Alto", "Region": "CA", "PostalCode": "94020", "Country": "United States" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "847-1294", "PhoneAreaCode": "(626)", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1503348544227+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-02-26T00:00:00", "Date": "\/Date(1551139200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Inclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "TAX001", "TaxAmount": 1.74, "LineAmount": 20.00, "AccountCode": "400", "Tracking": [], "Quantity": 1.0000, "LineItemID": "d2a06879-da49-4d6c-83b5-72a93a523ec6", "AccountID": "ebd06280-af70-4bed-97c6-7451a454ad85", "ValidationErrors": [] } ], "SubTotal": 18.26, "TotalTax": 1.74, "Total": 20.00, "UpdatedDateUTC": "\/Date(1551213567813+0000)\/", "CurrencyCode": "USD", "StatusAttributeString": "ERROR", "ValidationErrors": [ { "Message": "The Contact must contain at least 1 of the following elements to identify the contact: Name, ContactID, ContactNumber" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ "BankTransactions": [ { "Type": "SPEND", "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000" }, "Lineitems": [ { "Description": "Foobar", "Quantity": 1, "UnitAmount": 20, "AccountCode": "400" } ], "BankAccount": { "Code": "088" } } ] }' '/BankTransactions/{BankTransactionID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBankTransaction summary: Retrieves a single spent or received money transaction by using a unique bank transaction Id parameters: - $ref: '#/components/parameters/BankTransactionID' - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type BankTransactions array with a specific BankTransaction content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ "Id": "612e204d-21ab-469b-ac84-afe0697b4461", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551212902962)\/", "BankTransactions": [ { "BankTransactionID": "db54aab0-ad40-4ced-bcff-0940ba20db2c", "BankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "BatchPayment": { "Account": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9" }, "BatchPaymentID": "b54aa50c-794c-461b-89d1-846e1b84d9c0", "Date": "\/Date(1476316800000+0000)\/", "Type": "RECBATCH", "Status": "AUTHORISED", "TotalAmount": "12.00", "UpdatedDateUTC": "\/Date(1476392487037+0000)\/", "IsReconciled": "false" }, "Type": "RECEIVE", "IsReconciled": false, "CurrencyRate": 1.000000, "PrepaymentID": "cb62750f-b49c-464b-a45b-e2e2c514c8a9", "HasAttachments": true, "Attachments": [ { "AttachmentID": "45dd3143-9856-42d2-9a6c-53814f67a33e", "FileName": "sample2.jpg", "Url": "https://api.xero.com/api.xro/2.0/banktransaction/db54aab0-ad40-4ced-bcff-0940ba20db2c/Attachments/sample2.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ], "Contact": { "ContactID": "9c2c64de-12c9-4167-b503-e2c0e1aa1f49", "ContactStatus": "ACTIVE", "Name": "sam", "EmailAddress": "", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "City": "", "Region": "", "PostalCode": "", "Country": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1518821703467+0000)\/", "ContactGroups": [], "DefaultCurrency": "USD", "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2016-10-13T00:00:00", "Date": "\/Date(1476316800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "hello", "UnitAmount": 10.00, "TaxType": "OUTPUT", "TaxAmount": 0.00, "LineAmount": 10.00, "AccountCode": "400", "Tracking": [], "Quantity": 1.0000, "LineItemID": "40bec527-a744-4149-96c5-0ab643b51158", "AccountID": "ebd06280-af70-4bed-97c6-7451a454ad85", "ValidationErrors": [] } ], "SubTotal": 10.00, "TotalTax": 0.00, "Total": 10.00, "UpdatedDateUTC": "\/Date(1476389616437+0000)\/", "CurrencyCode": "USD" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateBankTransaction summary: Updates a single spent or received money transaction x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contact keyPascal: Contact - contactID: is_uuid: true is_last: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - bankAccount: is_object: true key: bankAccount keyPascal: Account keySnake: bank_account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: bankAccount - bankTransaction: is_object: true key: bankTransaction keyPascal: BankTransaction keySnake: bank_transaction - reference: key: reference keyPascal: Reference default: You just updated object: bankTransaction - type: nonString: true key: type keyPascal: Type default: RECEIVE php: XeroAPI\XeroPHP\Models\Accounting\BankTransaction::TYPE_RECEIVE node: BankTransaction.TypeEnum.RECEIVE ruby: XeroRuby::Accounting::BankTransaction::RECEIVE python_string: RECEIVE java: com.xero.models.accounting.BankTransaction.TypeEnum.RECEIVE csharp: BankTransaction.TypeEnum.RECEIVE object: bankTransaction - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: bankTransaction - set_lineitems: is_variable: true nonString: true key: lineItems keyPascal: LineItems object: bankTransaction default: lineItems - set_bankaccount: is_last: true is_variable: true nonString: true key: bankAccount keyPascal: BankAccount keySnake: bank_account python: bank_account ruby: bank_account default: bankAccount object: bankTransaction - bankTransactions: is_object: true key: bankTransactions keyPascal: BankTransactions - add_bankTransaction: is_last: true is_array_add: true key: bankTransactions keyPascal: BankTransactions keySnake: bank_transactions java: BankTransactions python: bank_transaction ruby: bank_transaction csharp: BankTransaction object: bankTransaction parameters: - $ref: '#/components/parameters/BankTransactionID' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type BankTransactions array with updated BankTransaction content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ "Id": "f2c7f037-96fc-49bd-8f59-d3c7bfdd4746", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551213568875)\/", "BankTransactions": [ { "BankTransactionID": "1289c190-e46d-434b-9628-463ffdb52f00", "BankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "Type": "SPEND", "Reference": "You just updated", "IsReconciled": false, "CurrencyRate": 1.000000, "HasAttachments": false, "Attachments": [], "Contact": { "ContactID": "5cc8cf28-567e-4d43-b287-687cfcaec47c", "ContactStatus": "ACTIVE", "Name": "Katherine Warren", "FirstName": "Katherine", "LastName": "Warren", "EmailAddress": "kat.warren@clampett.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "AddressLine1": "", "AddressLine2": "", "AddressLine3": "", "AddressLine4": "", "City": "Palo Alto", "Region": "CA", "PostalCode": "94020", "Country": "United States" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "847-1294", "PhoneAreaCode": "(626)", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1503348544227+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-02-25T00:00:00", "Date": "\/Date(1551052800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Inclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "TAX001", "TaxAmount": 1.74, "LineAmount": 20.00, "AccountCode": "400", "Tracking": [], "Quantity": 1.0000, "LineItemID": "d2a06879-da49-4d6c-83b5-72a93a523ec6", "AccountID": "ebd06280-af70-4bed-97c6-7451a454ad85", "ValidationErrors": [] } ], "SubTotal": 18.26, "TotalTax": 1.74, "Total": 20.00, "UpdatedDateUTC": "\/Date(1551213568733+0000)\/", "CurrencyCode": "USD" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BankTransactions' example: '{ "BankTransactions": [ { "Type": "SPEND", "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000", "ContactStatus": "ACTIVE", "Name": "Buzz Lightyear", "FirstName": "Buzz", "LastName": "Lightyear", "EmailAddress": "buzz.Lightyear@email.com", "ContactPersons": [], "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "AddressLine1": "", "AddressLine2": "", "AddressLine3": "", "AddressLine4": "", "City": "Palo Alto", "Region": "CA", "PostalCode": "94020", "Country": "United States" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "847-1294", "PhoneAreaCode": "(626)", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "2017-08-21T13:49:04.227-07:00", "ContactGroups": [] }, "Lineitems": [], "BankAccount": { "Code": "088", "Name": "Business Wells Fargo", "AccountID": "00000000-0000-0000-0000-000000000000" }, "IsReconciled": false, "Date": "2019-02-25", "Reference": "You just updated", "CurrencyCode": "USD", "CurrencyRate": 1, "Status": "AUTHORISED", "LineAmountTypes": "Inclusive", "TotalTax": 1.74, "BankTransactionID": "00000000-0000-0000-0000-000000000000", "UpdatedDateUTC": "2019-02-26T12:39:27.813-08:00" } ] }' '/BankTransactions/{BankTransactionID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getBankTransactionAttachments summary: Retrieves any attachments from a specific bank transactions parameters: - $ref: '#/components/parameters/BankTransactionID' responses: '200': description: Success - return response of type Attachments array with 0 to n Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "c50798e1-29e9-4a30-a452-bb6e42e400c8", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551303999577)\/", "Attachments": [ { "AttachmentID": "4508a692-e52c-4ad8-a138-2f13e22bf57b", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/BankTransactions/db54aab0-ad40-4ced-bcff-0940ba20db2c/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "45dd3143-9856-42d2-9a6c-53814f67a33e", "FileName": "sample2.jpg", "Url": "https://api.xero.com/api.xro/2.0/BankTransactions/db54aab0-ad40-4ced-bcff-0940ba20db2c/Attachments/sample2.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getBankTransactionAttachmentById summary: Retrieves specific attachments from a specific BankTransaction using a unique attachment Id parameters: - $ref: '#/components/parameters/BankTransactionID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for BankTransaction as binary data content: application/octet-stream: schema: type: string format: binary '/BankTransactions/{BankTransactionID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getBankTransactionAttachmentByFileName summary: Retrieves a specific attachment from a specific bank transaction by filename parameters: - $ref: '#/components/parameters/BankTransactionID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for BankTransaction as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateBankTransactionAttachmentByFileName x-hasAccountingValidationError: true summary: Updates a specific attachment from a specific bank transaction by filename parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BankTransactionID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "572ad2fe-8c23-45aa-82f9-864485327685", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551286166630)\/", "Attachments": [ { "AttachmentID": "4508a692-e52c-4ad8-a138-2f13e22bf57b", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/BankTransactions/db54aab0-ad40-4ced-bcff-0940ba20db2c/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createBankTransactionAttachmentByFileName x-hasAccountingValidationError: true summary: Creates an attachment for a specific bank transaction by filename parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BankTransactionID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "572ad2fe-8c23-45aa-82f9-864485327685", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551286166630)\/", "Attachments": [ { "AttachmentID": "4508a692-e52c-4ad8-a138-2f13e22bf57b", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/BankTransactions/db54aab0-ad40-4ced-bcff-0940ba20db2c/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/BankTransactions/{BankTransactionID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBankTransactionsHistory summary: Retrieves history from a specific bank transaction using a unique bank transaction Id parameters: - $ref: '#/components/parameters/BankTransactionID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createBankTransactionHistoryRecord summary: Creates a history record for a specific bank transactions x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BankTransactionID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' /BankTransfers: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBankTransfers summary: Retrieves all bank transfers parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: HasAttachments==true schema: type: string - in: query name: order description: Order by an any element example: "Amount ASC" schema: type: string responses: '200': description: Success - return response of BankTransfers array of 0 to N BankTransfer content: application/json: schema: $ref: '#/components/schemas/BankTransfers' example: '{ "Id": "dfc0d130-9007-4a98-a5ef-6f01700f18e2", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551311318988)\/", "BankTransfers": [ { "BankTransferID": "6221458a-ef7a-4d5f-9b1c-1b96ce03833c", "CreatedDateUTCString": "2016-10-17T20:46:01", "CreatedDateUTC": "\/Date(1476737161140+0000)\/", "DateString": "2016-11-12T21:10:00", "Date": "\/Date(1478985000000+0000)\/", "FromBankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Name": "Business Wells Fargo" }, "ToBankAccount": { "AccountID": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Name": "My Savings" }, "Amount": 20.00, "FromBankTransactionID": "a3eca480-bc04-4292-9bbd-5c57b8ba12b4", "ToBankTransactionID": "4ca13f40-f3a0-4530-a442-a600f5696118", "FromIsReconciled": true, "ToIsReconciled": true, "Reference": "Sub 098801", "HasAttachments": true }, { "BankTransferID": "9f0153d5-617c-4903-887b-3875807aa27a", "CreatedDateUTCString": "2016-10-21T23:28:42", "CreatedDateUTC": "\/Date(1477092522333+0000)\/", "DateString": "2016-10-19T20:10:00", "Date": "\/Date(1476907800000+0000)\/", "FromBankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Name": "Business Wells Fargo" }, "ToBankAccount": { "AccountID": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Name": "My Savings" }, "Amount": 20.00, "FromBankTransactionID": "cb74287e-5682-4973-b354-93e2c7a836d3", "ToBankTransactionID": "4c48ba6c-f318-4405-aee6-b5efa2c70f55", "FromIsReconciled": false, "ToIsReconciled": false, "Reference": "Sub 098801", "HasAttachments": false } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createBankTransfer summary: Creates a bank transfer parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - fromBankAccount: is_object: true key: fromBankAccount keyPascal: Account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: fromBankAccount - toBankAccount: is_object: true key: toBankAccount keyPascal: Account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: toBankAccount - bankTransfer: is_object: true key: bankTransfer keyPascal: BankTransfer keySnake: bank_transfer - set_fromBankAccount: is_variable: true nonString: true key: fromBankAccount keyPascal: FromBankAccount keySnake: from_bank_account default: fromBankAccount object: bankTransfer - set_toBankAccount: is_variable: true nonString: true key: toBankAccount keyPascal: ToBankAccount keySnake: to_bank_account default: toBankAccount object: bankTransfer - amount: is_last: true nonString: true key: amount keyPascal: Amount default: 1.0 is_money: true object: bankTransfer - bankTransfers: is_object: true key: bankTransfers keyPascal: BankTransfers - add_bankTransfer: is_last: true is_array_add: true key: bankTransfers keyPascal: BankTransfers keySnake: bank_transfers java: BankTransfers python: bank_transfer ruby: bank_transfer csharp: BankTransfer object: bankTransfer responses: '200': description: Success - return response of BankTransfers array of one BankTransfer content: application/json: schema: $ref: '#/components/schemas/BankTransfers' example: '{ "Id": "ae767b68-affd-4e17-bac0-83eaf1854dcd", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551311317475)\/", "BankTransfers": [ { "BankTransferID": "76eea4b6-f026-464c-b6f3-5fb39a196145", "DateString": "2019-02-27T00:00:00", "Date": "\/Date(1551225600000+0000)\/", "FromBankAccount": { "AccountID": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Code": "090", "Name": "My Savings" }, "ToBankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "Amount": 50.00, "FromBankTransactionID": "e4059952-5acb-4a56-b076-53fad85f2930", "ToBankTransactionID": "88e4ac17-293b-4e5a-8d8b-3ce3a0b1ee17", "FromIsReconciled": true, "ToIsReconciled": true, "Reference": "Sub 098801", "CurrencyRate": 1.000000, "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: BankTransfers with array of BankTransfer objects in request body content: application/json: schema: $ref: '#/components/schemas/BankTransfers' example: '{ "BankTransfers": [ { "FromBankAccount": { "Code": "090", "Name": "My Savings", "AccountID": "00000000-0000-0000-0000-000000000000", "Type": "BANK", "BankAccountNumber": "123455", "Status": "ACTIVE", "BankAccountType": "BANK", "CurrencyCode": "USD", "TaxType": "NONE", "EnablePaymentsToAccount": false, "ShowInExpenseClaims": false, "Class": "ASSET", "ReportingCode": "ASS", "ReportingCodeName": "Assets", "HasAttachments": false, "UpdatedDateUTC": "2016-10-17T13:45:33.993-07:00" }, "ToBankAccount": { "Code": "088", "Name": "Business Wells Fargo", "AccountID": "00000000-0000-0000-0000-000000000000", "Type": "BANK", "BankAccountNumber": "123455", "Status": "ACTIVE", "BankAccountType": "BANK", "CurrencyCode": "USD", "TaxType": "NONE", "EnablePaymentsToAccount": false, "ShowInExpenseClaims": false, "Class": "ASSET", "ReportingCode": "ASS", "ReportingCodeName": "Assets", "HasAttachments": false, "UpdatedDateUTC": "2016-06-03T08:31:14.517-07:00" }, "Amount": "50.00", "FromIsReconciled": true, "ToIsReconciled": true, "Reference": "Sub 098801" } ] }' '/BankTransfers/{BankTransferID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBankTransfer summary: Retrieves specific bank transfers by using a unique bank transfer Id parameters: - $ref: '#/components/parameters/BankTransferID' responses: '200': description: Success - return response of BankTransfers array with one BankTransfer content: application/json: schema: $ref: '#/components/schemas/BankTransfers' example: '{ "Id": "1a5fa46d-5ece-4ef2-89b1-77c293b5d833", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551311320368)\/", "BankTransfers": [ { "BankTransferID": "6221458a-ef7a-4d5f-9b1c-1b96ce03833c", "CreatedDateUTCString": "2016-10-17T20:46:01", "CreatedDateUTC": "\/Date(1476737161140+0000)\/", "DateString": "2016-11-12T21:10:00", "Date": "\/Date(1478985000000+0000)\/", "FromBankAccount": { "AccountID": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Code": "088", "Name": "Business Wells Fargo" }, "ToBankAccount": { "AccountID": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Code": "090", "Name": "My Savings" }, "Amount": 20.00, "FromBankTransactionID": "a3eca480-bc04-4292-9bbd-5c57b8ba12b4", "ToBankTransactionID": "4ca13f40-f3a0-4530-a442-a600f5696118", "FromIsReconciled": false, "ToIsReconciled": false, "Reference": "Sub 098801", "CurrencyRate": 1.000000, "HasAttachments": true, "Attachments": [ { "AttachmentID": "e05a6fd8-0e47-47a9-9799-b809c8267260", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/banktransfer/6221458a-ef7a-4d5f-9b1c-1b96ce03833c/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] } ] }' '/BankTransfers/{BankTransferID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getBankTransferAttachments summary: Retrieves attachments from a specific bank transfer parameters: - $ref: '#/components/parameters/BankTransferID' responses: '200': description: Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "5cb6b587-7b02-46b6-97fe-d8ad8f20321b", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551397557272)\/", "Attachments": [ { "AttachmentID": "e05a6fd8-0e47-47a9-9799-b809c8267260", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/BankTransfers/6221458a-ef7a-4d5f-9b1c-1b96ce03833c/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getBankTransferAttachmentById summary: Retrieves a specific attachment from a specific bank transfer using a unique attachment ID parameters: - $ref: '#/components/parameters/BankTransferID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of binary data from the Attachment to a Bank Transfer content: application/octet-stream: schema: type: string format: binary '/BankTransfers/{BankTransferID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getBankTransferAttachmentByFileName summary: Retrieves a specific attachment on a specific bank transfer by file name parameters: - $ref: '#/components/parameters/BankTransferID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of binary data from the Attachment to a Bank Transfer content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateBankTransferAttachmentByFileName x-hasAccountingValidationError: true parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BankTransferID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "c7810140-19c2-4ff7-b3ec-b7e95ce7becf", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551398138226)\/", "Attachments": [ { "AttachmentID": "0851935c-c4c5-4de8-9247-ce22efde6f82", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/BankTransfers/6221458a-ef7a-4d5f-9b1c-1b96ce03833c/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createBankTransferAttachmentByFileName x-hasAccountingValidationError: true parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BankTransferID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of Attachments array of 0 to N Attachment for a Bank Transfer x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "b73ba149-76a9-4e7c-a5c6-b9230022f416", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551397998372)\/", "Attachments": [ { "AttachmentID": "9478be4c-c707-48c1-b4a7-83d8eaf442b5", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/BankTransfers/6221458a-ef7a-4d5f-9b1c-1b96ce03833c/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/BankTransfers/{BankTransferID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getBankTransferHistory summary: Retrieves history from a specific bank transfer using a unique bank transfer Id parameters: - $ref: '#/components/parameters/BankTransferID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createBankTransferHistoryRecord summary: Creates a history record for a specific bank transfer x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BankTransferID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' /BrandingThemes: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getBrandingThemes summary: Retrieves all the branding themes responses: '200': description: Success - return response of type BrandingThemes content: application/json: schema: $ref: '#/components/schemas/BrandingThemes' example: '{ "Id": "d1a1beea-bdfe-4ee4-9dbc-27226a26cd68", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550881711906)\/", "BrandingThemes": [ { "BrandingThemeID": "dabc7637-62c1-4941-8a6e-ee44fa5090e7", "Name": "Standard", "SortOrder": 0, "CreatedDateUTC": "\/Date(1464967643813+0000)\/" } ] }' '/BrandingThemes/{BrandingThemeID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getBrandingTheme summary: Retrieves a specific branding theme using a unique branding theme Id parameters: - $ref: '#/components/parameters/BrandingThemeID' responses: '200': description: Success - return response of type BrandingThemes with one BrandingTheme content: application/json: schema: $ref: '#/components/schemas/BrandingThemes' example: '{ "Id": "df671650-cf14-4a7f-b609-4166933719bc", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550881713071)\/", "BrandingThemes": [ { "BrandingThemeID": "dabc7637-62c1-4941-8a6e-ee44fa5090e7", "Name": "Standard", "SortOrder": 0, "CreatedDateUTC": "\/Date(1464967643813+0000)\/" } ] }' '/BrandingThemes/{BrandingThemeID}/PaymentServices': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [paymentservices] tags: - Accounting operationId: getBrandingThemePaymentServices summary: Retrieves the payment services for a specific branding theme x-excludeFromPreview: true parameters: - $ref: '#/components/parameters/BrandingThemeID' responses: '200': description: Success - return response of type PaymentServices array with 0 to N PaymentService content: application/json: schema: $ref: '#/components/schemas/PaymentServices' example: '{ "Id": "bfd5adbe-0e92-48f0-8c5a-39072f6c4ed3", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551139339419)\/", "PaymentServices": [ { "PaymentServiceID": "8cc53aa4-ae01-45b9-b06c-69c42eeae61f", "PaymentServiceName": "Buzz Lightyear", "PaymentServiceType": "PayPal" }, { "PaymentServiceID": "dede7858-14e3-4a46-bf95-4d4cc491e645", "PaymentServiceName": "ACME Payment", "PaymentServiceUrl": "https://www.payupnow.com/", "PaymentServiceType": "Custom", "PayNowText": "Pay Now" } ] }' post: security: - OAuth2: [paymentservices] tags: - Accounting operationId: createBrandingThemePaymentServices summary: Creates a new custom payment service for a specific branding theme x-excludeFromPreview: true x-hasAccountingValidationError: true x-example: - object: is_object: true key: paymentService keyPascal: PaymentService keySnake: payment_service - paymentServiceID: is_uuid: true key: paymentServiceID keyPascal: PaymentServiceID keySnake: payment_service_id default: 00000000-0000-0000-0000-000000000000 object: paymentService - paymentServiceName: key: paymentServiceName keyPascal: PaymentServiceName keySnake: payment_service_name default: ACME Payments object: paymentService - paymentServiceUrl: key: paymentServiceUrl keyPascal: PaymentServiceUrl keySnake: payment_service_url default: "https://www.payupnow.com/" object: paymentService - payNowText: is_last: true key: payNowText keyPascal: PayNowText keySnake: pay_now_text default: Pay Now object: paymentService - paymentServices: is_object: true key: paymentServices keyPascal: PaymentServices - add_paymentService: is_last: true is_array_add: true key: paymentServices keyPascal: PaymentServices java: PaymentServices csharp: PaymentService object: paymentService parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/BrandingThemeID' responses: '200': description: Success - return response of type PaymentServices array with newly created PaymentService content: application/json: schema: $ref: '#/components/schemas/PaymentServices' example: '{ "Id": "918feecb-067a-4ed9-841b-571c04eaada3", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551139338915)\/", "PaymentServices": [ { "PaymentServiceID": "00000000-0000-0000-0000-000000000000", "PaymentServiceName": "ACME Payments", "PaymentServiceUrl": "https://www.payupnow.com/", "PaymentServiceType": "Custom", "PayNowText": "Pay Now" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: PaymentServices array with PaymentService object in body of request content: application/json: schema: $ref: '#/components/schemas/PaymentServices' example: '{ "PaymentServices": [ { "PaymentServiceID": "54b3b4f6-0443-4fba-bcd1-61ec0c35ca55", "PaymentServiceName": "PayUpNow", "PaymentServiceUrl": "https://www.payupnow.com/", "PaymentServiceType": "Custom", "PayNowText": "Time To Pay" } ] }' '/Budgets': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.budgets.read] tags: - Accounting operationId: getBudgets summary: 'Retrieve a list of budgets' parameters: - in: query name: IDs x-snake: ids description: Filter by BudgetID. Allows you to retrieve a specific individual budget. style: form explode: false example: '"00000000-0000-0000-0000-000000000000"' x-example-java: UUID.fromString("00000000-0000-0000-0000-000000000000") x-example-php: '"00000000-0000-0000-0000-000000000000"' x-example-csharp: Guid.Parse("00000000-0000-0000-0000-000000000000"); schema: type: string items: type: string format: uuid - in: query name: DateTo x-snake: date_to description: Filter by start date example: "2019-10-31" schema: type: string format: date - in: query name: DateFrom x-snake: date_from description: Filter by end date example: "2019-10-31" schema: type: string format: date responses: '200': description: Success - return response of type Budgets array with 0 to N Budgets content: application/json: schema: $ref: '#/components/schemas/Budgets' example: '{ "Id": "04e93d48-e72f-4775-b7dd-15a041fab972", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551399323399)\/", "Budgets": [ { "BudgetID": "847da917-9565-466c-a9cd-3ecf7eb9d094", "Status": "APPROVED", "Description": "FY2021 budget", "Type": "TRACKING", "UpdatedDateUTC": "\/Date(1622138002077+0000)\/", "BudgetLines": [], "Tracking": [] }, { "BudgetID": "93a4bab1-0021-4320-a2ec-c250528b4bc5", "Status": "APPROVED", "Description": "Overall Budget", "Type": "OVERALL", "UpdatedDateUTC": "\/Date(1622137786913+0000)\/", "BudgetLines": [], "Tracking": [] } ] }' '/Budgets/{BudgetID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.budgets.read] tags: - Accounting operationId: getBudget summary: Retrieves a specific budget, which includes budget lines parameters: - $ref: '#/components/parameters/BudgetID' - in: query name: DateTo x-snake: date_to description: Filter by start date example: "2019-10-31" schema: type: string format: date - in: query name: DateFrom x-snake: date_from description: Filter by end date example: "2019-10-31" schema: type: string format: date responses: '200': description: Success - return response of type Invoices array with specified Invoices content: application/json: schema: $ref: '#/components/schemas/Budgets' example: '{ "Id": "04e93d48-e72f-4775-b7dd-15a041fab972", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551399323399)\/", "Budgets": { "BudgetID": "c1d195d4-92aa-4abd-867a-7ac2f9d60500", "Type": "TRACKING", "Description": "Daniels Northern Budget", "UpdatedDateUTC": "2017-08-14T01:18:26.74", "Tracking": [ { "TrackingCategoryID": "e94ba240-3edf-4ef3-8317-10147b968f94", "Name": "Region", "TrackingOptionID": "e94ba240-3edf-4ef3-8317-10147b968f94", "Option": "North" }, { "TrackingCategoryID": "d8580491-4167-4a81-9624-ad3bdd8e46ce", "Name": "Salesperson", "TrackingOptionID": "9c24de87-a2b7-439d-a216-35d1af7bdec3", "Option": "Daniel" } ], "BudgetLines": [ { "AccountID": "9c24de87-a2b7-439d-a216-35d1af7bdec3", "AccountCode": "200", "BudgetBalances": [ { "Period": "2019-08", "Amount": "1000", "Notes": "Sample note" }, { "Period": "2019-09", "Amount": "1050", "Notes": "" }, { "Period": "2019-10", "Amount": "1102", "Notes": "" } ] }, { "AccountID": "385f90ae-e798-4990-9b1c-db8eb8b735c2", "AccountCode": "420", "BudgetBalances": [ { "Period": "2019-08", "Amount": "500", "Notes": "" }, { "Period": "2019-09", "Amount": "505", "Notes": "Special Month" }, { "Period": "2019-10", "Amount": "510", "Notes": "" } ] } ] } }' '/Contacts': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.contacts, accounting.contacts.read] tags: - Accounting operationId: getContacts summary: 'Retrieves all contacts in a Xero organisation' parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: ContactStatus=="ACTIVE" x-example-csharp: ContactStatus==\"ACTIVE\" x-example-java: ContactStatus=="' + Contact.ContactStatusEnum.ACTIVE + '" x-example-php: ContactStatus=="' . \XeroAPI\XeroPHP\Models\Accounting\Contact::CONTACT_STATUS_ACTIVE . '" x-example-ruby: ContactStatus==#{XeroRuby::Accounting::Contact::ACTIVE} schema: type: string - in: query name: order description: Order by an any element example: "Name ASC" schema: type: string - in: query name: IDs x-snake: ids description: Filter by a comma separated list of ContactIDs. Allows you to retrieve a specific set of contacts in a single call. style: form explode: false example: '"00000000-0000-0000-0000-000000000000"' x-example-java: Arrays.asList(UUID.fromString("00000000-0000-0000-0000-000000000000")) x-example-php: '"00000000-0000-0000-0000-000000000000"' x-example-csharp: new List<Guid>{Guid.Parse("00000000-0000-0000-0000-000000000000")}; schema: type: array items: type: string format: uuid - in: query name: page description: e.g. page=1 - Up to 100 contacts will be returned in a single API call. example: 1 schema: type: integer - in: query name: includeArchived x-snake: include_archived description: e.g. includeArchived=true - Contacts with a status of ARCHIVED will be included in the response example: true x-example-python: "True" schema: type: boolean - $ref: '#/components/parameters/summaryOnly' - in: query name: searchTerm x-snake: search_term description: Search parameter that performs a case-insensitive text search across the Name, FirstName, LastName, ContactNumber and EmailAddress fields. example: "Joe Bloggs" schema: type: string responses: '200': description: Success - return response of type Contacts array with 0 to N Contact content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Id": "04e93d48-e72f-4775-b7dd-15a041fab972", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551399323399)\/", "Contacts": [ { "ContactID": "5cc8cf28-567e-4d43-b287-687cfcaec47c", "ContactStatus": "ACTIVE", "Name": "Katherine Warren", "FirstName": "Katherine", "LastName": "Warren", "CompanyNumber": "NumberBusiness1234", "EmailAddress": "kat.warren@clampett.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "AddressLine1": "", "AddressLine2": "", "AddressLine3": "", "AddressLine4": "", "City": "Palo Alto", "Region": "CA", "PostalCode": "94020", "Country": "United States" } ], "Phones": [ { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DEFAULT", "PhoneNumber": "847-1294", "PhoneAreaCode": "(626)", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1503348544227+0000)\/", "ContactGroups": [], "IsSupplier": true, "IsCustomer": true, "SalesDefaultLineAmountType": "INCLUSIVE", "PurchasesDefaultLineAmountType": "INCLUSIVE", "Balances": { "AccountsReceivable": { "Outstanding": 760.00, "Overdue": 920.00 }, "AccountsPayable": { "Outstanding": 231.60, "Overdue": 360.00 } }, "ContactPersons": [], "HasAttachments": false, "HasValidationErrors": false }, { "ContactID": "3ec601ad-eddc-4ccb-a8ac-736e88293b1b", "ContactStatus": "ACTIVE", "Name": "Lisa Parker", "FirstName": "Lisa", "LastName": "Parker", "EmailAddress": "lparker@parkerandco.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "AddressLine1": "", "AddressLine2": "", "AddressLine3": "", "AddressLine4": "", "City": "Anchorage", "Region": "AK", "PostalCode": "99501", "Country": "United States" } ], "Phones": [ { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DEFAULT", "PhoneNumber": "266-3583", "PhoneAreaCode": "(510)", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1503348546760+0000)\/", "ContactGroups": [], "IsSupplier": false, "IsCustomer": false, "ContactPersons": [], "HasAttachments": false, "HasValidationErrors": false } ] }' put: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: createContacts summary: 'Creates multiple contacts (bulk) in a Xero organisation' x-hasAccountingValidationError: true x-example: - phone: is_object: true key: phone keyPascal: Phone - phoneNumber: key: phoneNumber keyPascal: PhoneNumber keySnake: phone_number default: 555-1212 object: phone - phoneType: is_last: true nonString: true key: phoneType keyPascal: PhoneType keySnake: phone_type default: MOBILE php: XeroAPI\XeroPHP\Models\Accounting\Phone::PHONE_TYPE_MOBILE node: Phone.PhoneTypeEnum.MOBILE ruby: XeroRuby::Accounting::PhoneType::MOBILE python_string: MOBILE java: com.xero.models.accounting.Phone.PhoneTypeEnum.MOBILE csharp: Phone.PhoneTypeEnum.MOBILE object: phone - phones: is_list: true key: phones keyPascal: Phone - add_phone: is_last: true is_list_add: true key: phones keyPascal: Phones object: phone - contact: is_object: true key: contact keyPascal: Contact - name: key: name keyPascal: Name default: Bruce Banner object: contact - emailAddress: key: emailAddress keyPascal: EmailAddress keySnake: email_address default: hulk@avengers.com object: contact - set_phones: is_last: true is_variable: true nonString: true key: phones keyPascal: Phones default: phones object: contact - contacts: is_object: true key: contacts keyPascal: Contacts - add_contact: is_last: true is_array_add: true key: contacts keyPascal: Contacts java: Contacts csharp: Contact object: contact parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Contacts array with newly created Contact content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Id": "e997d6d7-6dad-4458-beb8-d9c1bf7f2edf", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551399321121)\/", "Contacts": [ { "ContactID": "3ff6d40c-af9a-40a3-89ce-3c1556a25591", "ContactStatus": "ACTIVE", "CompanyNumber": "NumberBusiness1234", "Name": "Foo9987", "EmailAddress": "sid32476@blah.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "City": "", "Region": "", "PostalCode": "", "Country": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "555-1212", "PhoneAreaCode": "415", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551399321043+0000)\/", "ContactGroups": [], "IsSupplier": false, "IsCustomer": false, "SalesDefaultLineAmountType": "INCLUSIVE", "PurchasesDefaultLineAmountType": "INCLUSIVE", "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "PaymentTerms": { "Bills": { "Day": 15, "Type": "OFCURRENTMONTH" }, "Sales": { "Day": 10, "Type": "DAYSAFTERBILLMONTH" } }, "ContactPersons": [], "HasValidationErrors": false } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "ContactID": "00000000-0000-0000-0000-000000000000", "AccountNumber": "12345-ABCD", "Name": "Buzz Lightyear", "EmailAddress": "buzzlightyear@email.com", "AccountsReceivableTaxType": "NONE", "AccountsPayableTaxType": "INPUT", "Addresses": [ { "AddressType": "STREET", "AddressLine1": "101 Green St", "AddressLine2": "5th floor", "City": "San Francisco", "Region": "CA", "PostalCode": "94041", "Country": "US", "AttentionTo": "Rod Drury", "ValidationErrors": [] } ], "Phones": [ { "PhoneType": "MOBILE", "PhoneNumber": "555-1212", "PhoneAreaCode": "415", "ValidationErrors": [] } ], "ContactGroups": [], "PaymentTerms": { "Bills": { "Day": 15, "Type": "OFCURRENTMONTH", "ValidationErrors": [] }, "Sales": { "Day": 10, "Type": "DAYSAFTERBILLMONTH", "ValidationErrors": [] } }, "ContactPersons": [], "HasValidationErrors": true, "ValidationErrors": [ { "Message": "The contact name Buzz Lightyear is already assigned to another contact. The contact name must be unique across all active contacts." } ] } ] }' requestBody: required: true description: Contacts with an array of Contact objects to create in body of request content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Contacts": [ { "ContactID": "3ff6d40c-af9a-40a3-89ce-3c1556a25591", "ContactStatus": "ACTIVE", "Name": "Foo9987", "EmailAddress": "sid32476@blah.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "City": "", "Region": "", "PostalCode": "", "Country": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "555-1212", "PhoneAreaCode": "415", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "/Date(1551399321043+0000)/", "ContactGroups": [], "IsSupplier": false, "IsCustomer": false, "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "PaymentTerms": { "Bills": { "Day": 15, "Type": "OFCURRENTMONTH" }, "Sales": { "Day": 10, "Type": "DAYSAFTERBILLMONTH" } }, "ContactPersons": [] } ] }' post: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: updateOrCreateContacts summary: 'Updates or creates one or more contacts in a Xero organisation' x-hasAccountingValidationError: true x-example: - phone: is_object: true key: phone keyPascal: Phone - phoneNumber: key: phoneNumber keyPascal: PhoneNumber keySnake: phone_number default: 555-1212 object: phone - phoneType: is_last: true nonString: true key: phoneType keyPascal: PhoneType keySnake: phone_type default: MOBILE php: XeroAPI\XeroPHP\Models\Accounting\Phone::PHONE_TYPE_MOBILE node: Phone.PhoneTypeEnum.MOBILE ruby: XeroRuby::Accounting::PhoneType::MOBILE python_string: MOBILE java: com.xero.models.accounting.Phone.PhoneTypeEnum.MOBILE csharp: Phone.PhoneTypeEnum.MOBILE object: phone - phones: is_list: true key: phones keyPascal: Phone - add_phone: is_last: true is_list_add: true key: phones keyPascal: Phones object: phone - contact: is_object: true key: contact keyPascal: Contact - name: key: name keyPascal: Name default: Bruce Banner object: contact - emailAddress: key: emailAddress keyPascal: EmailAddress keySnake: email_address default: hulk@avengers.com object: contact - set_phones: is_last: true is_variable: true nonString: true key: phones keyPascal: Phones default: phones object: contact - contacts: is_object: true key: contacts keyPascal: Contacts - add_contact: is_last: true is_array_add: true key: contacts keyPascal: Contacts java: Contacts csharp: Contact object: contact parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Contacts array with newly created Contact content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Id": "e997d6d7-6dad-4458-beb8-d9c1bf7f2edf", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551399321121)\/", "Contacts": [ { "ContactID": "00000000-0000-0000-0000-000000000000", "ContactStatus": "ACTIVE", "Name": "Bruce Banner", "CompanyNumber": "NumberBusiness1234", "EmailAddress": "bruce@banner.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "City": "", "Region": "", "PostalCode": "", "Country": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "555-1212", "PhoneAreaCode": "415", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551399321043+0000)\/", "ContactGroups": [], "IsSupplier": false, "IsCustomer": false, "SalesDefaultLineAmountType": "INCLUSIVE", "PurchasesDefaultLineAmountType": "INCLUSIVE", "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "PaymentTerms": { "Bills": { "Day": 15, "Type": "OFCURRENTMONTH" }, "Sales": { "Day": 10, "Type": "DAYSAFTERBILLMONTH" } }, "ContactPersons": [], "HasValidationErrors": false } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "ContactID": "00000000-0000-0000-0000-000000000000", "AccountNumber": "12345-ABCD", "Name": "Buzz Lightyear", "EmailAddress": "buzzlightyear@email.com", "AccountsReceivableTaxType": "NONE", "AccountsPayableTaxType": "INPUT", "Addresses": [ { "AddressType": "STREET", "AddressLine1": "101 Green St", "AddressLine2": "5th floor", "City": "San Francisco", "Region": "CA", "PostalCode": "94041", "Country": "US", "AttentionTo": "Rod Drury", "ValidationErrors": [] } ], "Phones": [ { "PhoneType": "MOBILE", "PhoneNumber": "555-1212", "PhoneAreaCode": "415", "ValidationErrors": [] } ], "ContactGroups": [], "PaymentTerms": { "Bills": { "Day": 15, "Type": "OFCURRENTMONTH", "ValidationErrors": [] }, "Sales": { "Day": 10, "Type": "DAYSAFTERBILLMONTH", "ValidationErrors": [] } }, "ContactPersons": [], "HasValidationErrors": true, "ValidationErrors": [ { "Message": "The contact name Buzz Lightyear is already assigned to another contact. The contact name must be unique across all active contacts." } ] } ] }' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Contacts": [ { "Name": "Bruce Banner", "EmailAddress": "hulk@avengers.com", "Phones": [ { "PhoneType": "MOBILE", "PhoneNumber": "555-1212", "PhoneAreaCode": "415" } ], "PaymentTerms": { "Bills": { "Day": 15, "Type": "OFCURRENTMONTH" }, "Sales": { "Day": 10, "Type": "DAYSAFTERBILLMONTH" } } } ] }' '/Contacts/{ContactNumber}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.contacts, accounting.contacts.read] tags: - Accounting operationId: getContactByContactNumber summary: 'Retrieves a specific contact by contact number in a Xero organisation' parameters: - required: true in: path name: ContactNumber x-snake: contact_number description: This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). example: "SB2" schema: type: string responses: '200': description: Success - return response of type Contacts array with a unique Contact content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Id": "5c83b115-a6e8-4f2a-877f-ba63d009235b", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551462703288)\/", "Contacts": [ { "ContactID": "8138a266-fb42-49b2-a104-014b7045753d", "ContactNumber": "SB2", "AccountNumber": "1234567", "ContactStatus": "ACTIVE", "Name": "Acme Parts Co.", "FirstName": "Blake", "LastName": "Kohler", "CompanyNumber": "NumberBusiness1234", "EmailAddress": "bk@krave.co", "BankAccountDetails": "12334567", "TaxNumber": "123-22-3456", "AccountsReceivableTaxType": "TAX003", "AccountsPayableTaxType": "TAX022", "Addresses": [ { "AddressType": "STREET", "AddressLine1": "123 Fake Street", "City": "Vancouver", "Region": "British Columbia", "PostalCode": "V6B 2T4", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "AddressLine1": "1234 Fake Street", "City": "Vancouver", "Region": "British Columbia", "PostalCode": "V6B 2T4", "Country": "", "AttentionTo": "Blake" } ], "Phones": [ { "PhoneType": "DDI", "PhoneNumber": "489-44493", "PhoneAreaCode": "345", "PhoneCountryCode": "4" }, { "PhoneType": "DEFAULT", "PhoneNumber": "408-0914", "PhoneAreaCode": "604", "PhoneCountryCode": "1" }, { "PhoneType": "FAX", "PhoneNumber": "123-9933", "PhoneAreaCode": "123", "PhoneCountryCode": "2" }, { "PhoneType": "MOBILE", "PhoneNumber": "999-44", "PhoneAreaCode": "234", "PhoneCountryCode": "3" } ], "UpdatedDateUTC": "\/Date(1551459777193+0000)\/", "ContactGroups": [], "IsSupplier": true, "IsCustomer": true, "SalesDefaultLineAmountType": "INCLUSIVE", "PurchasesDefaultLineAmountType": "INCLUSIVE", "DefaultCurrency": "USD", "Discount": 13.00, "Website": "http://www.google.com", "BrandingTheme": { "BrandingThemeID": "dabc7637-62c1-4941-8a6e-ee44fa5090e7", "Name": "Standard" }, "PurchasesDefaultAccountCode": "660", "SalesDefaultAccountCode": "002", "BatchPayments": { "BankAccountNumber": "12334567", "BankAccountName": "Citi Bank", "Details": "biz checking", "Code": "", "Reference": "" }, "Balances": { "AccountsReceivable": { "Outstanding": 118.90, "Overdue": 136.90 }, "AccountsPayable": { "Outstanding": -43.60, "Overdue": 40.00 } }, "PaymentTerms": { "Bills": { "Day": 12, "Type": "OFFOLLOWINGMONTH" }, "Sales": { "Day": 14, "Type": "OFCURRENTMONTH" } }, "ContactPersons": [ { "FirstName": "Sue", "LastName": "Johnson", "EmailAddress": "sue.johnson@krave.com", "IncludeInEmails": true } ], "HasAttachments": true, "Attachments": [ { "AttachmentID": "04e0a3e3-b116-456a-9f32-9706f0d33afa", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/contact/8138a266-fb42-49b2-a104-014b7045753d/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ], "HasValidationErrors": false } ] }' '/Contacts/{ContactID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.contacts, accounting.contacts.read] tags: - Accounting operationId: getContact summary: 'Retrieves a specific contacts in a Xero organisation using a unique contact Id' parameters: - $ref: '#/components/parameters/ContactID' responses: '200': description: Success - return response of type Contacts array with a unique Contact content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Id": "5c83b115-a6e8-4f2a-877f-ba63d009235b", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551462703288)\/", "Contacts": [ { "ContactID": "8138a266-fb42-49b2-a104-014b7045753d", "ContactNumber": "SB2", "AccountNumber": "1234567", "ContactStatus": "ACTIVE", "Name": "Acme Parts Co.", "FirstName": "Blake", "LastName": "Kohler", "CompanyNumber": "NumberBusiness1234", "EmailAddress": "bk@krave.co", "BankAccountDetails": "12334567", "TaxNumber": "123-22-3456", "AccountsReceivableTaxType": "TAX003", "AccountsPayableTaxType": "TAX022", "Addresses": [ { "AddressType": "STREET", "AddressLine1": "123 Fake Street", "City": "Vancouver", "Region": "British Columbia", "PostalCode": "V6B 2T4", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "AddressLine1": "1234 Fake Street", "City": "Vancouver", "Region": "British Columbia", "PostalCode": "V6B 2T4", "Country": "", "AttentionTo": "Blake" } ], "Phones": [ { "PhoneType": "DDI", "PhoneNumber": "489-44493", "PhoneAreaCode": "345", "PhoneCountryCode": "4" }, { "PhoneType": "DEFAULT", "PhoneNumber": "408-0914", "PhoneAreaCode": "604", "PhoneCountryCode": "1" }, { "PhoneType": "FAX", "PhoneNumber": "123-9933", "PhoneAreaCode": "123", "PhoneCountryCode": "2" }, { "PhoneType": "MOBILE", "PhoneNumber": "999-44", "PhoneAreaCode": "234", "PhoneCountryCode": "3" } ], "UpdatedDateUTC": "\/Date(1551459777193+0000)\/", "ContactGroups": [], "IsSupplier": true, "IsCustomer": true, "SalesDefaultLineAmountType": "INCLUSIVE", "PurchasesDefaultLineAmountType": "INCLUSIVE", "DefaultCurrency": "USD", "Discount": 13.00, "Website": "http://www.google.com", "BrandingTheme": { "BrandingThemeID": "dabc7637-62c1-4941-8a6e-ee44fa5090e7", "Name": "Standard" }, "PurchasesDefaultAccountCode": "660", "SalesDefaultAccountCode": "002", "BatchPayments": { "BankAccountNumber": "12334567", "BankAccountName": "Citi Bank", "Details": "biz checking", "Code": "", "Reference": "" }, "Balances": { "AccountsReceivable": { "Outstanding": 118.90, "Overdue": 136.90 }, "AccountsPayable": { "Outstanding": -43.60, "Overdue": 40.00 } }, "PaymentTerms": { "Bills": { "Day": 12, "Type": "OFFOLLOWINGMONTH" }, "Sales": { "Day": 14, "Type": "OFCURRENTMONTH" } }, "ContactPersons": [ { "FirstName": "Sue", "LastName": "Johnson", "EmailAddress": "sue.johnson@krave.com", "IncludeInEmails": true } ], "HasAttachments": true, "Attachments": [ { "AttachmentID": "04e0a3e3-b116-456a-9f32-9706f0d33afa", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/contact/8138a266-fb42-49b2-a104-014b7045753d/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ], "HasValidationErrors": false } ] }' post: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: updateContact summary: 'Updates a specific contact in a Xero organisation' x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contact keyPascal: Contact - name: key: name keyPascal: Name default: Thanos object: contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID default: 00000000-0000-0000-0000-000000000000 object: contact - contacts: is_object: true key: contacts keyPascal: Contacts - add_contact: is_last: true is_array_add: true key: contacts keyPascal: Contacts java: Contacts csharp: Contact object: contact parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ContactID' responses: '200': description: Success - return response of type Contacts array with an updated Contact content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Id": "4166b727-c3f0-4881-acd0-d4f7c0e8fcda", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551400031795)\/", "Contacts": [ { "ContactID": "d5be01fb-b09f-4c3a-9c67-e10c2a03412c", "ContactStatus": "ACTIVE", "Name": "FooBar", "EmailAddress": "sid30680@blah.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "City": "", "Region": "", "PostalCode": "", "Country": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "555-1212", "PhoneAreaCode": "415", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551400031763+0000)\/", "ContactGroups": [], "IsSupplier": false, "IsCustomer": false, "SalesDefaultLineAmountType": "INCLUSIVE", "PurchasesDefaultLineAmountType": "INCLUSIVE", "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "PaymentTerms": { "Bills": { "Day": 15, "Type": "OFCURRENTMONTH" }, "Sales": { "Day": 10, "Type": "DAYSAFTERBILLMONTH" } }, "ContactPersons": [], "HasValidationErrors": false } ] }' '400': $ref: '#/components/responses/400Error' requestBody: description: an array of Contacts containing single Contact object with properties to update required: true content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Contacts": [{ "ContactID": "00000000-0000-0000-0000-000000000000", "Name": "Thanos" }]}' '/Contacts/{ContactID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getContactAttachments x-hasAccountingValidationError: true summary: 'Retrieves attachments for a specific contact in a Xero organisation' responses: '200': description: Success - return response of type Attachments array with 0 to N Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "0f63b631-a205-496d-b1d2-e6b13a9b497b", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551483890413)\/", "Attachments": [ { "AttachmentID": "04e0a3e3-b116-456a-9f32-9706f0d33afa", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Contacts/8138a266-fb42-49b2-a104-014b7045753d/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' parameters: - $ref: '#/components/parameters/ContactID' '/Contacts/{ContactID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getContactAttachmentById summary: Retrieves a specific attachment from a specific contact using a unique attachment Id parameters: - $ref: '#/components/parameters/ContactID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Contact as binary data content: application/octet-stream: schema: type: string format: binary '/Contacts/{ContactID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getContactAttachmentByFileName summary: Retrieves a specific attachment from a specific contact by file name parameters: - $ref: '#/components/parameters/ContactID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Contact as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateContactAttachmentByFileName x-hasAccountingValidationError: true parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ContactID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with an updated Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "8543ae1a-297c-49b8-bf91-47decac452d5", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551485146555)\/", "Attachments": [ { "AttachmentID": "8b537c1b-bbb5-47fd-857e-370c369dda7c", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/Contacts/8138a266-fb42-49b2-a104-014b7045753d/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createContactAttachmentByFileName x-hasAccountingValidationError: true parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ContactID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with an newly created Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "a5eddf71-86aa-42f5-99e2-0aaf9caf96b6", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551484292734)\/", "Attachments": [ { "AttachmentID": "27e37b01-6996-4ebe-836c-95fd472ad674", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Contacts/8138a266-fb42-49b2-a104-014b7045753d/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/Contacts/{ContactID}/CISSettings': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getContactCISSettings summary: 'Retrieves CIS settings for a specific contact in a Xero organisation' parameters: - $ref: '#/components/parameters/ContactID' responses: '200': description: Success - return response of type CISSettings for a specific Contact content: application/json: schema: $ref: '#/components/schemas/CISSettings' '/Contacts/{ContactID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.contacts, accounting.contacts.read] tags: - Accounting operationId: getContactHistory summary: Retrieves history records for a specific contact parameters: - $ref: '#/components/parameters/ContactID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: createContactHistory summary: Creates a new history record for a specific contact x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ContactID' requestBody: $ref: '#/components/requestBodies/historyRecords' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' /ContactGroups: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.contacts, accounting.contacts.read] tags: - Accounting operationId: getContactGroups summary: Retrieves the contact Id and name of each contact group parameters: - in: query name: where description: Filter by an any element example: Status=="ACTIVE" x-example-csharp: Status==\"ACTIVE\" x-example-java: Status=="' + ContactGroup.StatusEnum.ACTIVE + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\ContactGroup::STATUS_ACTIVE . '" x-example-ruby: Status==#{XeroRuby::Accounting::ContactGroup::ACTIVE} schema: type: string - in: query name: order description: Order by an any element example: "Name ASC" schema: type: string responses: '200': description: Success - return response of type Contact Groups array of Contact Group content: application/json: schema: $ref: '#/components/schemas/ContactGroups' example: '{ "Id": "b825df86-1a72-49c9-97dd-36afc7d04bd5", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551746015603)\/", "ContactGroups": [ { "ContactGroupID": "d7a86b80-8dac-4d89-a334-9dcf5753676c", "Name": "Suppliers", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false }, { "ContactGroupID": "ab089fd4-012f-4043-a6e4-e7be01e87e50", "Name": "Old Group84262", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ] }' put: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: createContactGroup summary: Creates a contact group parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contactGroup keyPascal: ContactGroup keySnake: contact_group - name: is_last: true key: name keyPascal: Name default: VIPs object: contactGroup - contactGroups: is_object: true key: contactGroups keyPascal: ContactGroups - add_ContactGroup: is_last: true is_array_add: true key: contactGroups keyPascal: ContactGroups keySnake: contact_groups java: ContactGroups python: contact_group ruby: contact_group csharp: ContactGroup object: contactGroup responses: '200': description: Success - return response of type Contact Groups array of newly created Contact Group content: application/json: schema: $ref: '#/components/schemas/ContactGroups' example: '{ "Id": "5afe53f9-2271-45b8-9767-88d023b71d34", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551745740920)\/", "ContactGroups": [ { "ContactGroupID": "d7a86b80-8dac-4d89-a334-9dcf5753676c", "Name": "Suppliers", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "ContactGroupID": "00000000-0000-0000-0000-000000000000", "Name": "Suppliers", "Contacts": [], "HasValidationErrors": true, "ValidationErrors": [ { "Message": "You’ve reached the limit of 100 contact groups." } ] } ] }' requestBody: description: ContactGroups with an array of names in request body required: true content: application/json: schema: $ref: '#/components/schemas/ContactGroups' example: '{ "ContactGroups": [{ "Name": "VIPs" }]}' '/ContactGroups/{ContactGroupID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.contacts, accounting.contacts.read] tags: - Accounting operationId: getContactGroup summary: Retrieves a specific contact group by using a unique contact group Id parameters: - $ref: '#/components/parameters/ContactGroupID' responses: '200': description: Success - return response of type Contact Groups array with a specific Contact Group content: application/json: schema: $ref: '#/components/schemas/ContactGroups' example: '{ "Id": "079c14f6-2c2d-464e-a2c7-0edf7e465723", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551746772976)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [ { "ContactID": "4e1753b9-018a-4775-b6aa-1bc7871cfee3", "Name": "Noel Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false } ], "HasValidationErrors": false } ] }' post: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: updateContactGroup summary: Updates a specific contact group x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contactGroup keyPascal: ContactGroup keySnake: contact_group - name: is_last: true key: name keyPascal: Name default: Vendor object: contactGroup - contactGroups: is_object: true key: contactGroups keyPascal: ContactGroups - add_ContactGroup: is_last: true is_array_add: true key: contactGroups keyPascal: ContactGroups keySnake: contact_groups java: ContactGroups python: contact_group ruby: contact_group csharp: ContactGroup object: contactGroup parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ContactGroupID' responses: '200': description: Success - return response of type Contact Groups array of updated Contact Group content: application/json: schema: $ref: '#/components/schemas/ContactGroups' example: '{ "Id": "b1ba6cdb-1637-4209-bb92-bd0c593f3243", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551746288544)\/", "ContactGroups": [ { "ContactGroupID": "13f47537-7c1d-4e62-966e-617d76558fc5", "Name": "Supplier Vendor", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ] }' '400': $ref: '#/components/responses/400Error' requestBody: description: an array of Contact groups with Name of specific group to update required: true content: application/json: schema: $ref: '#/components/schemas/ContactGroups' example: '{ "ContactGroups":[ { "Name":"Suppliers" } ] }' '/ContactGroups/{ContactGroupID}/Contacts': parameters: - $ref: '#/components/parameters/requiredHeader' put: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: createContactGroupContacts summary: Creates contacts to a specific contact group x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - contacts: is_object: true key: contacts keyPascal: Contacts - add_contact: is_last: true is_array_add: true key: contacts keyPascal: Contacts java: Contacts csharp: Contact object: contact parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ContactGroupID' responses: '200': description: Success - return response of type Contacts array of added Contacts content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Id": "99db8024-6895-45c8-a1b5-54805aa8689c", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551747495785)\/", "Contacts": [ { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false, "ValidationErrors": [] }, { "ContactID": "4e1753b9-018a-4775-b6aa-1bc7871cfee3", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false, "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: description: Contacts with array of contacts specifying the ContactID to be added to ContactGroup in body of request required: true content: application/json: schema: $ref: '#/components/schemas/Contacts' example: '{ "Contacts": [ { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7" }, { "ContactID": "4e1753b9-018a-4775-b6aa-1bc7871cfee3" } ] }' delete: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: deleteContactGroupContacts summary: Deletes all contacts from a specific contact group parameters: - $ref: '#/components/parameters/ContactGroupID' responses: '204': description: Success - return response 204 no content x-isEmpty: true '/ContactGroups/{ContactGroupID}/Contacts/{ContactID}': parameters: - $ref: '#/components/parameters/requiredHeader' delete: security: - OAuth2: [accounting.contacts] tags: - Accounting operationId: deleteContactGroupContact summary: Deletes a specific contact from a contact group using a unique contact Id parameters: - $ref: '#/components/parameters/ContactGroupID' - $ref: '#/components/parameters/ContactID' responses: '204': description: Success - return response 204 no content x-isEmpty: true '400': $ref: '#/components/responses/400Error' /CreditNotes: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getCreditNotes summary: Retrieves any credit notes parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="DRAFT" x-example-csharp: Status==\"DRAFT\" x-example-java: Status=="' + CreditNote.StatusEnum.DRAFT + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\CreditNote::STATUS_DRAFT . '" x-example-ruby: Status==#{XeroRuby::Accounting::CreditNote::DRAFT} schema: type: string - in: query name: order description: Order by an any element example: "CreditNoteNumber ASC" schema: type: string - in: query name: page description: e.g. page=1 – Up to 100 credit notes will be returned in a single API call with line items shown for each credit note example: 1 schema: type: integer - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Credit Notes array of CreditNote content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "Id": "306379b0-3d75-4c77-953a-be08fa0efae8", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551812506620)\/", "CreditNotes": [ { "CreditNoteID": "249f15fa-f2a7-4acc-8769-0984103f2225", "CreditNoteNumber": "CN-0005", "Payments": [ { "PaymentID": "6b037c9b-2e5d-4905-84d3-eabfb3438242", "Date": "\/Date(1552521600000+0000)\/", "Amount": 2.00, "Reference": "Too much", "CurrencyRate": 1.000000, "HasAccount": false, "HasValidationErrors": false } ], "ID": "249f15fa-f2a7-4acc-8769-0984103f2225", "CurrencyRate": 1.000000, "Type": "ACCRECCREDIT", "Reference": "US Tour", "RemainingCredit": 32.50, "Allocations": [], "HasAttachments": true, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-05T00:00:00", "Date": "\/Date(1551744000000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [], "SubTotal": 30.00, "TotalTax": 4.50, "Total": 34.50, "UpdatedDateUTC": "\/Date(1551812346157+0000)\/", "CurrencyCode": "NZD" }, { "CreditNoteID": "f8021bd2-9a6a-4c19-8477-163da0b9290f", "CreditNoteNumber": "", "Payments": [], "ID": "f8021bd2-9a6a-4c19-8477-163da0b9290f", "CurrencyRate": 1.000000, "Type": "ACCPAYCREDIT", "Reference": "", "RemainingCredit": 46.00, "Allocations": [], "HasAttachments": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-01-05T00:00:00", "Date": "\/Date(1546646400000+0000)\/", "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [], "SubTotal": 40.00, "TotalTax": 6.00, "Total": 46.00, "UpdatedDateUTC": "\/Date(1551812506153+0000)\/", "CurrencyCode": "NZD" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createCreditNotes summary: Creates a new credit note x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" node: "'2020-12-10'" csharp: "DateTime.Now" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - creditNote: is_object: true key: creditNote keyPascal: CreditNote keySnake: credit_note - type: nonString: true key: type keyPascal: Type default: ACCPAYCREDIT php: XeroAPI\XeroPHP\Models\Accounting\CreditNote::TYPE_ACCPAYCREDIT node: CreditNote.TypeEnum.ACCPAYCREDIT ruby: XeroRuby::Accounting::CreditNote::ACCPAYCREDIT python_string: ACCPAYCREDIT java: com.xero.models.accounting.CreditNote.TypeEnum.ACCPAYCREDIT csharp: CreditNote.TypeEnum.ACCPAYCREDIT object: creditNote - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: creditNote - date: is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: creditNote - set_lineitem: is_last: true is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: creditNote - creditNotes: is_object: true key: creditNotes keyPascal: CreditNotes - add_creditNote: is_last: true is_array_add: true key: creditNotes keyPascal: CreditNotes keySnake: credit_notes java: CreditNotes python: credit_note ruby: credit_note csharp: CreditNote object: creditNote parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Credit Notes array of newly created CreditNote content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "Id": "5e57a661-42da-4a19-96a0-00405a0e946d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551812702713)\/", "CreditNotes": [ { "CreditNoteID": "f9256f04-5a99-4680-acb9-6b4639cc439a", "CreditNoteNumber": "", "Payments": [], "ID": "f9256f04-5a99-4680-acb9-6b4639cc439a", "CurrencyRate": 1.000000, "Type": "ACCPAYCREDIT", "Reference": "", "RemainingCredit": 46.00, "Allocations": [], "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-01-05T00:00:00", "Date": "\/Date(1546646400000+0000)\/", "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "INPUT2", "TaxAmount": 6.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000, "ValidationErrors": [] } ], "SubTotal": 40.00, "TotalTax": 6.00, "Total": 46.00, "UpdatedDateUTC": "\/Date(1551812702650+0000)\/", "CurrencyCode": "NZD", "StatusAttributeString": "OK", "ValidationErrors": [ { "Message": "An existing Credit Note with the specified CreditNoteID could not be found" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: description: Credit Notes with array of CreditNote object in body of request required: true content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "CreditNotes":[ { "Type":"ACCPAYCREDIT", "Contact":{ "ContactID":"430fa14a-f945-44d3-9f97-5df5e28441b8" }, "Date":"2019-01-05", "LineItems":[ { "Description":"Foobar", "Quantity":2.0, "UnitAmount":20.0, "AccountCode":"400" } ] } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateOrCreateCreditNotes summary: Updates or creates one or more credit notes x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - creditNote: is_object: true key: creditNote keyPascal: CreditNote keySnake: credit_note - type: nonString: true key: type keyPascal: Type default: ACCPAYCREDIT php: XeroAPI\XeroPHP\Models\Accounting\CreditNote::TYPE_ACCPAYCREDIT node: CreditNote.TypeEnum.ACCPAYCREDIT ruby: XeroRuby::Accounting::CreditNote::ACCPAYCREDIT python_string: ACCPAYCREDIT java: com.xero.models.accounting.CreditNote.TypeEnum.ACCPAYCREDIT csharp: CreditNote.TypeEnum.ACCPAYCREDIT object: creditNote - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: creditNote - date: is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: creditNote - set_lineitem: is_last: true is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: creditNote - creditNotes: is_object: true key: creditNotes keyPascal: CreditNotes - add_creditNote: is_last: true is_array_add: true key: creditNotes keyPascal: CreditNotes keySnake: credit_notes java: CreditNotes python: credit_note ruby: credit_note csharp: CreditNote object: creditNote parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Credit Notes array of newly created CreditNote content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "Id": "5e57a661-42da-4a19-96a0-00405a0e946d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551812702713)\/", "CreditNotes": [ { "CreditNoteID": "f9256f04-5a99-4680-acb9-6b4639cc439a", "CreditNoteNumber": "", "Payments": [], "ID": "f9256f04-5a99-4680-acb9-6b4639cc439a", "CurrencyRate": 1.000000, "Type": "ACCPAYCREDIT", "Reference": "", "RemainingCredit": 46.00, "Allocations": [], "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-01-05T00:00:00", "Date": "\/Date(1546646400000+0000)\/", "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "INPUT2", "TaxAmount": 6.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000, "ValidationErrors": [] } ], "SubTotal": 40.00, "TotalTax": 6.00, "Total": 46.00, "UpdatedDateUTC": "\/Date(1551812702650+0000)\/", "CurrencyCode": "NZD", "StatusAttributeString": "OK", "ValidationErrors": [ { "Message": "An existing Credit Note with the specified CreditNoteID could not be found" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: description: an array of Credit Notes with a single CreditNote object. required: true content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "CreditNotes":[ { "Type":"ACCPAYCREDIT", "Contact":{ "ContactID":"430fa14a-f945-44d3-9f97-5df5e28441b8" }, "Date":"2019-01-05", "Status":"AUTHORISED", "Reference": "HelloWorld", "LineItems":[ { "Description":"Foobar", "Quantity":2.0, "UnitAmount":20.0, "AccountCode":"400" } ] } ] }' '/CreditNotes/{CreditNoteID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getCreditNote summary: Retrieves a specific credit note using a unique credit note Id parameters: - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Credit Notes array with a unique CreditNote content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "Id": "dd5c5da7-08ab-486a-ac34-aea295f1614b", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551812703811)\/", "CreditNotes": [ { "CreditNoteID": "249f15fa-f2a7-4acc-8769-0984103f2225", "CreditNoteNumber": "CN-0005", "Payments": [ { "PaymentID": "6b037c9b-2e5d-4905-84d3-eabfb3438242", "Date": "\/Date(1552521600000+0000)\/", "Amount": 2.00, "Reference": "Too much", "CurrencyRate": 1.000000, "HasAccount": false, "HasValidationErrors": false } ], "ID": "249f15fa-f2a7-4acc-8769-0984103f2225", "CurrencyRate": 1.000000, "Type": "ACCRECCREDIT", "Reference": "US Tour", "RemainingCredit": 32.50, "Allocations": [], "HasAttachments": true, "Attachments": [ { "AttachmentID": "9b9c9b62-069e-4f5a-a172-183195f084bb", "FileName": "Screen Shot 2019-03-04 at 9.00.06 AM.png", "Url": "https://api.xero.com/api.xro/2.0/creditnotes/249f15fa-f2a7-4acc-8769-0984103f2225/Attachments/Screen%20Shot%202019-03-04%20at%209.00.06%20AM.png", "MimeType": "image/png", "ContentLength": 82334 } ], "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-05T00:00:00", "Date": "\/Date(1551744000000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Mic Stand", "UnitAmount": 30.00, "TaxType": "OUTPUT2", "TaxAmount": 4.50, "LineAmount": 30.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "ValidationErrors": [] } ], "SubTotal": 30.00, "TotalTax": 4.50, "Total": 34.50, "UpdatedDateUTC": "\/Date(1551812346157+0000)\/", "CurrencyCode": "NZD" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateCreditNote summary: Updates a specific credit note x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - creditNote: is_object: true key: creditNote keyPascal: CreditNote keySnake: credit_note - type: nonString: true key: type keyPascal: Type default: ACCPAYCREDIT php: XeroAPI\XeroPHP\Models\Accounting\CreditNote::TYPE_ACCPAYCREDIT node: CreditNote.TypeEnum.ACCPAYCREDIT ruby: XeroRuby::Accounting::CreditNote::ACCPAYCREDIT python_string: ACCPAYCREDIT java: com.xero.models.accounting.CreditNote.TypeEnum.ACCPAYCREDIT csharp: CreditNote.TypeEnum.ACCPAYCREDIT object: creditNote - status: nonString: true key: status keyPascal: Status default: AUTHORISED php: XeroAPI\XeroPHP\Models\Accounting\CreditNote::STATUS_AUTHORISED node: CreditNote.StatusEnum.AUTHORISED ruby: XeroRuby::Accounting::CreditNote::AUTHORISED python_string: AUTHORISED java: com.xero.models.accounting.CreditNote.StatusEnum.AUTHORISED csharp: CreditNote.StatusEnum.AUTHORISED object: creditNote - reference: key: reference keyPascal: Reference default: My ref. object: creditNote - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: creditNote - date: is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: creditNote - set_lineitem: is_last: true is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: creditNote - creditNotes: is_object: true key: creditNotes keyPascal: CreditNotes - add_creditNote: is_last: true is_array_add: true key: creditNotes keyPascal: CreditNotes keySnake: credit_notes java: CreditNotes python: credit_note ruby: credit_note csharp: CreditNote object: creditNote parameters: - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Credit Notes array with updated CreditNote content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "Id": "db2f7659-6044-418d-a4c6-d4b93eba4e1e", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551812704253)\/", "CreditNotes": [ { "CreditNoteID": "f9256f04-5a99-4680-acb9-6b4639cc439a", "CreditNoteNumber": "", "Payments": [], "ID": "f9256f04-5a99-4680-acb9-6b4639cc439a", "CurrencyRate": 1.000000, "Type": "ACCPAYCREDIT", "Reference": "HelloWorld", "RemainingCredit": 46.00, "Allocations": [], "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-01-05T00:00:00", "Date": "\/Date(1546646400000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "INPUT2", "TaxAmount": 6.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000, "ValidationErrors": [] } ], "SubTotal": 40.00, "TotalTax": 6.00, "Total": 46.00, "UpdatedDateUTC": "\/Date(1551812704223+0000)\/", "CurrencyCode": "NZD" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: description: an array of Credit Notes containing credit note details to update required: true content: application/json: schema: $ref: '#/components/schemas/CreditNotes' example: '{ "CreditNotes": [ { "Type": "ACCPAYCREDIT", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8" }, "Date": "2019-01-05", "Status": "AUTHORISED", "Reference": "HelloWorld", "LineItems": [ { "Description": "Foobar", "Quantity": 2, "UnitAmount": 20, "AccountCode": "400" } ] } ] }' '/CreditNotes/{CreditNoteID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getCreditNoteAttachments summary: Retrieves attachments for a specific credit notes parameters: - $ref: '#/components/parameters/CreditNoteID' responses: '200': description: Success - return response of type Attachments array with all Attachment for specific Credit Note x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "2bb15054-3868-4f85-a9c6-0402ec8c1201", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551822670731)\/", "Attachments": [ { "AttachmentID": "b7eb1fc9-a0f9-4e8e-9373-6689f5350832", "FileName": "HelloWorld.png", "Url": "https://api.xero.com/api.xro/2.0/CreditNotes/249f15fa-f2a7-4acc-8769-0984103f2225/Attachments/HelloWorld.png", "MimeType": "image/png", "ContentLength": 76091 } ] }' '/CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getCreditNoteAttachmentById summary: Retrieves a specific attachment from a specific credit note using a unique attachment Id parameters: - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Credit Note as binary data content: application/octet-stream: schema: type: string format: binary '/CreditNotes/{CreditNoteID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getCreditNoteAttachmentByFileName summary: Retrieves a specific attachment on a specific credit note by file name parameters: - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Credit Note as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateCreditNoteAttachmentByFileName x-hasAccountingValidationError: true summary: Updates attachments on a specific credit note by file name parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with updated Attachment for specific Credit Note x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "27253066-8c4d-4e34-a251-7a749b72de40", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551828247939)\/", "Attachments": [ { "AttachmentID": "103e49f1-e47c-4b4d-b5e8-77d9d00fa70a", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/CreditNotes/249f15fa-f2a7-4acc-8769-0984103f2225/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createCreditNoteAttachmentByFileName x-hasAccountingValidationError: true summary: Creates an attachment for a specific credit note parameters: - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/includeOnline' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Attachments array with newly created Attachment for specific Credit Note x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "22a8d402-5dea-40ed-9d01-26896429f649", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551822953320)\/", "Attachments": [ { "AttachmentID": "91bbae3f-5de5-4e3d-875f-8662f25897bd", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/CreditNotes/249f15fa-f2a7-4acc-8769-0984103f2225/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/CreditNotes/{CreditNoteID}/pdf': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getCreditNoteAsPdf x-path: '/CreditNotes/{CreditNoteID}' summary: Retrieves credit notes as PDF files parameters: - $ref: '#/components/parameters/CreditNoteID' responses: '200': description: Success - return response of binary data from the Attachment to a Credit Note content: application/pdf: schema: type: string format: binary '/CreditNotes/{CreditNoteID}/Allocations': parameters: - $ref: '#/components/parameters/requiredHeader' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createCreditNoteAllocation summary: Creates allocation for a specific credit note x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - invoice: is_object: true key: invoice keyPascal: Invoice - invoiceID: is_last: true is_uuid: true key: invoiceID keyPascal: InvoiceID default: 00000000-0000-0000-0000-000000000000 object: invoice - allocation: is_object: true key: allocation keyPascal: Allocation - amount: nonString: true key: amount keyPascal: Amount default: 1.0 is_money: true csharp: new decimal(1.0) object: allocation - date: is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: allocation - set_invoice: is_last: true is_variable: true nonString: true key: invoice keyPascal: Invoice default: invoice object: allocation - allocations: is_object: true key: allocations keyPascal: Allocations - add_allocation: is_last: true is_array_add: true key: allocations keyPascal: Allocations java: Allocations csharp: Allocation object: allocation parameters: - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Allocations array with newly created Allocation for specific Credit Note content: application/json: schema: $ref: '#/components/schemas/Allocations' example: '{ "Id": "73452751-6eaa-4bcb-86f5-4c013316f4cf", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551828543255)\/", "Allocations": [ { "Amount": 1.00, "Date": "\/Date(1551744000000+0000)\/", "Invoice": { "InvoiceID": "c45720a1-ade3-4a38-a064-d15489be6841", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [], "ValidationErrors": [] }, "CreditNote": { "CreditNoteID": "7be578f5-63af-45c8-9b00-dcc4732baf0b", "ID": "7be578f5-63af-45c8-9b00-dcc4732baf0b", "LineItems": [] }, "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: description: Allocations with array of Allocation object in body of request. required: true content: application/json: schema: $ref: '#/components/schemas/Allocations' example: '{ "Allocations": [ { "Invoice": { "LineItems": [], "InvoiceID": "c45720a1-ade3-4a38-a064-d15489be6841" }, "Amount": 1, "Date": "2019-03-05" } ] }' '/CreditNotes/{CreditNoteID}/Allocations/{AllocationID}': parameters: - $ref: '#/components/parameters/requiredHeader' delete: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: deleteCreditNoteAllocations summary: Deletes an Allocation from a Credit Note parameters: - $ref: '#/components/parameters/CreditNoteID' - $ref: '#/components/parameters/AllocationID' responses: '200': description: Success - return response of type Allocation with the isDeleted flag as true content: application/json: schema: $ref: '#/components/schemas/Allocation' example: '{ "AllocationId": "2bb15054-3868-4f85-a9c6-0402ec8c1201", "Date": "\/Date(1551822670731)\/", "Invoice": [ { "InvoiceID": "b7eb1fc9-a0f9-4e8e-9373-6689f5350832", } ], "IsDeleted": true, }' '/CreditNotes/{CreditNoteID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getCreditNoteHistory summary: Retrieves history records of a specific credit note parameters: - $ref: '#/components/parameters/CreditNoteID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createCreditNoteHistory summary: Retrieves history records of a specific credit note x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/CreditNoteID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' /Currencies: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getCurrencies summary: Retrieves currencies for your Xero organisation parameters: - in: query name: where description: Filter by an any element example: Code=="USD" x-example-csharp: Code==\"USD\" x-example-php: Code=="' . \XeroAPI\XeroPHP\Models\Accounting\CurrencyCode::USD . '" x-example-ruby: Code==#{XeroRuby::Accounting::CurrencyCode::USD} schema: type: string - in: query name: order description: Order by an any element example: "Code ASC" schema: type: string responses: '200': description: Success - return response of type Currencies array with all Currencies content: application/json: schema: $ref: '#/components/schemas/Currencies' example: '{ "Id": "e6803fc8-8035-4251-b3e4-39d6b2de0f4a", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552322853043)\/", "Currencies": [ { "Code": "NZD", "Description": "New Zealand Dollar" } ] }' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createCurrency summary: Create a new currency for a Xero organisation parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - currency: is_object: true key: currency keyPascal: Currency - code: nonString: true key: code keyPascal: Code default: USD php: XeroAPI\XeroPHP\Models\Accounting\CurrencyCode::USD node: CurrencyCode.USD ruby: XeroRuby::Accounting::CurrencyCode::USD python: CurrencyCode.USD java: com.xero.models.accounting.CurrencyCode.USD csharp: CurrencyCode.USD object: currency - description: is_last: true key: description keyPascal: Description default: United States Dollar object: currency responses: '200': description: Unsupported - return response incorrect exception, API is not able to create new Currency content: application/json: schema: $ref: '#/components/schemas/Currencies' requestBody: required: true description: Currency object in the body of request content: application/json: schema: $ref: '#/components/schemas/Currency' example: '{ "Code": "USD", "Description": "United States Dollar" }' /Employees: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getEmployees summary: Retrieves employees used in Xero payrun parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="ACTIVE" x-example-csharp: Status==\"ACTIVE\" x-example-java: Status=="' + Employee.StatusEnum.ACTIVE + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Employee::STATUS_ACTIVE . '" x-example-ruby: Status==#{XeroRuby::Accounting::Employee::ACTIVE} schema: type: string - in: query name: order description: Order by an any element example: LastName ASC schema: type: string responses: '200': description: Success - return response of type Employees array with all Employee content: application/json: schema: $ref: '#/components/schemas/Employees' example: ' { "Id": "593cbccc-5cd2-4cd2-be5e-150f0843709e", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552325082775)\/", "Employees": [ { "EmployeeID": "972615c5-ad3d-47a0-b579-20370d374578", "Status": "ACTIVE", "FirstName": "Tony", "LastName": "Stark", "ExternalLink": { "Url": "http://twitter.com/#!/search/Stark+Industries", "Description": "Go to external link" }, "UpdatedDateUTC": "\/Date(1552324681593+0000)\/" }, { "EmployeeID": "ad3db144-6362-459c-8c36-5d31d196e629", "Status": "ACTIVE", "FirstName": "Bruce", "LastName": "Banner", "ExternalLink": { "Url": "http://twitter.com/#!/search/Nick+Fury", "Description": "Go to external link" }, "UpdatedDateUTC": "\/Date(1552325081303+0000)\/" }, { "EmployeeID": "e1ada26b-a10e-4065-a941-af34b53740e3", "Status": "ACTIVE", "FirstName": "Nick", "LastName": "Fury", "ExternalLink": { "Url": "http://twitter.com/#!/search/Nick+Fury", "Description": "Go to external link" }, "UpdatedDateUTC": "\/Date(1552324737990+0000)\/" } ] }' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createEmployees summary: Creates new employees used in Xero payrun x-hasAccountingValidationError: true x-example: - employee: is_object: true key: employee keyPascal: Employee - firstName: key: firstName keyPascal: FirstName keySnake: first_name default: Nick object: employee - lastName: is_last: true key: lastName keyPascal: LastName keySnake: last_name default: Fury object: employee - employees: is_object: true key: employees keyPascal: Employees - add_employee: is_last: true is_array_add: true key: employees keyPascal: Employees java: Employees csharp: Employee object: employee parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Employees array with new Employee content: application/json: schema: $ref: '#/components/schemas/Employees' example: '{ "Id": "0d6a08e7-6936-4828-a1bc-e4595e0ef778", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552324736508)\/", "Employees": [ { "EmployeeID": "e1ada26b-a10e-4065-a941-af34b53740e3", "Status": "ACTIVE", "FirstName": "Nick", "LastName": "Fury", "ExternalLink": { "Url": "http://twitter.com/#!/search/Nick+Fury", "Description": "Go to external link" }, "UpdatedDateUTC": "\/Date(1552324736463+0000)\/" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Employees with array of Employee object in body of request content: application/json: schema: $ref: '#/components/schemas/Employees' example: '{ "Employees": [ { "FirstName": "Nick", "LastName": "Fury", "ExternalLink": { "Url": "http://twitter.com/#!/search/Nick+Fury" } } ] }' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: updateOrCreateEmployees summary: Creates a single new employees used in Xero payrun x-hasAccountingValidationError: true x-example: - employee: is_object: true key: employee keyPascal: Employee - firstName: key: firstName keyPascal: FirstName keySnake: first_name default: Nick object: employee - lastName: is_last: true key: lastName keyPascal: LastName keySnake: last_name default: Fury object: employee - employees: is_object: true key: employees keyPascal: Employees - add_employee: is_last: true is_array_add: true key: employees keyPascal: Employees java: Employees csharp: Employee object: employee parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Employees array with new Employee content: application/json: schema: $ref: '#/components/schemas/Employees' example: '{ "Id": "0d6a08e7-6936-4828-a1bc-e4595e0ef778", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552324736508)\/", "Employees": [ { "EmployeeID": "e1ada26b-a10e-4065-a941-af34b53740e3", "Status": "ACTIVE", "FirstName": "Nick", "LastName": "Fury", "ExternalLink": { "Url": "http://twitter.com/#!/search/Nick+Fury", "Description": "Go to external link" }, "UpdatedDateUTC": "\/Date(1552324736463+0000)\/" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Employees with array of Employee object in body of request content: application/json: schema: $ref: '#/components/schemas/Employees' example: '{ "Employees": [ { "FirstName": "Nick", "LastName": "Fury", "ExternalLink": { "Url": "http://twitter.com/#!/search/Nick+Fury" } } ] }' '/Employees/{EmployeeID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getEmployee summary: Retrieves a specific employee used in Xero payrun using a unique employee Id parameters: - $ref: '#/components/parameters/EmployeeID' responses: '200': description: Success - return response of type Employees array with specified Employee content: application/json: schema: $ref: '#/components/schemas/Employees' example: '{ "Id": "417a529e-4f8d-4b1a-8816-7100245cf8b2", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552325084085)\/", "Employees": [ { "EmployeeID": "972615c5-ad3d-47a0-b579-20370d374578", "Status": "ACTIVE", "FirstName": "Tony", "LastName": "Stark", "ExternalLink": { "Url": "http://twitter.com/#!/search/Stark+Industries", "Description": "Go to external link" }, "UpdatedDateUTC": "\/Date(1552324681593+0000)\/" } ] }' /ExpenseClaims: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getExpenseClaims summary: Retrieves expense claims parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="SUBMITTED" x-example-csharp: Status==\"SUBMITTED\" x-example-java: Status=="' + ExpenseClaim.StatusEnum.SUBMITTED + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim::STATUS_SUBMITTED . '" x-example-ruby: Status==#{XeroRuby::Accounting::ExpenseClaim::SUBMITTED} schema: type: string - in: query name: order description: Order by an any element example: "Status ASC" schema: type: string responses: '200': description: Success - return response of type ExpenseClaims array with all ExpenseClaims content: application/json: schema: $ref: '#/components/schemas/ExpenseClaims' example: '{ "Id": "f6a8867e-af29-41ee-8f77-855f5ff214fe", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552325853538)\/", "ExpenseClaims": [ { "ExpenseClaimID": "646b15ab-b874-4e13-82ae-f4385b2ac4b6", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1552325851767+0000)\/", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Receipts": [], "Payments": [], "Total": 40.00, "AmountDue": 40.00, "AmountPaid": 0.00, "ReportingDate": "\/Date(1552262400000+0000)\/" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createExpenseClaims summary: Creates expense claims parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - user: is_object: true key: user keyPascal: User - userID: is_last: true is_uuid: true key: userID keyPascal: UserID keySnake: user_id default: 00000000-0000-0000-0000-000000000000 object: user - receipt: is_object: true key: receipt keyPascal: Receipt - receiptID: is_uuid: true key: receiptID keyPascal: ReceiptID keySnake: receipt_id default: 00000000-0000-0000-0000-000000000000 object: receipt - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: receipt - receipts: is_list: true key: receipts keyPascal: Receipt - add_receipts: is_last: true is_list_add: true key: receipts keyPascal: Receipts object: receipt - expenseClaim: is_object: true key: expenseClaim keyPascal: ExpenseClaim keySnake: expense_claim - status: nonString: true key: status keyPascal: Status default: SUBMITTED php: XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim::STATUS_SUBMITTED node: ExpenseClaim.StatusEnum.SUBMITTED ruby: XeroRuby::Accounting::ExpenseClaim::SUBMITTED python_string: SUBMITTED java: com.xero.models.accounting.ExpenseClaim.StatusEnum.SUBMITTED csharp: ExpenseClaim.StatusEnum.SUBMITTED object: expenseClaim - set_user: is_variable: true nonString: true key: user keyPascal: User default: user object: expenseClaim - set_receipt: is_last: true is_variable: true nonString: true key: receipts keyPascal: Receipts default: receipts object: expenseClaim - expenseClaims: is_object: true key: expenseClaims keyPascal: ExpenseClaims - add_expenseClaim: is_array_add: true is_last: true key: expenseClaims keyPascal: ExpenseClaims keySnake: expense_claims java: ExpenseClaims python: expense_claim ruby: expense_claim csharp: ExpenseClaim object: expenseClaim requestBody: required: true description: ExpenseClaims with array of ExpenseClaim object in body of request content: application/json: schema: $ref: '#/components/schemas/ExpenseClaims' example: '{ "ExpenseClaims": [ { "Status": "SUBMITTED", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273" }, "Receipts": [ { "Lineitems": [], "ReceiptID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816" } ] } ] }' responses: '200': description: Success - return response of type ExpenseClaims array with newly created ExpenseClaim content: application/json: schema: $ref: '#/components/schemas/ExpenseClaims' example: '{ "Id": "4a0879a6-3860-4b73-adc6-f6a0e0f68fc8", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552325850201)\/", "ExpenseClaims": [ { "ExpenseClaimID": "646b15ab-b874-4e13-82ae-f4385b2ac4b6", "Status": "SUBMITTED", "UpdatedDateUTC": "\/Date(1552325850107+0000)\/", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Receipts": [ { "ReceiptID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816", "ReceiptNumber": 1, "Status": "SUBMITTED", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Date": "\/Date(1552348800000+0000)\/", "UpdatedDateUTC": "\/Date(1552325848457+0000)\/", "Reference": "", "LineAmountTypes": "NoTax", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "Tracking": [], "Quantity": 2.0000 } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "ID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816", "HasAttachments": false } ], "Payments": [], "Total": 40.00, "AmountDue": 40.00, "AmountPaid": 0.00, "StatusAttributeString": "OK" } ] }' '400': $ref: '#/components/responses/400Error' '/ExpenseClaims/{ExpenseClaimID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getExpenseClaim summary: Retrieves a specific expense claim using a unique expense claim Id parameters: - $ref: '#/components/parameters/ExpenseClaimID' responses: '200': description: Success - return response of type ExpenseClaims array with specified ExpenseClaim content: application/json: schema: $ref: '#/components/schemas/ExpenseClaims' example: '{ "Id": "b54bb45d-37da-4f53-9f1d-536302d6bad7", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552325854864)\/", "ExpenseClaims": [ { "ExpenseClaimID": "646b15ab-b874-4e13-82ae-f4385b2ac4b6", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1552325851767+0000)\/", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Receipts": [ { "ReceiptID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816", "ReceiptNumber": 1, "Status": "AUTHORISED", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Date": "\/Date(1552348800000+0000)\/", "UpdatedDateUTC": "\/Date(1552325848457+0000)\/", "Reference": "", "LineAmountTypes": "NoTax", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000 } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "ID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816", "HasAttachments": false } ], "Payments": [], "Total": 40.00, "AmountDue": 40.00, "AmountPaid": 0.00, "ReportingDate": "\/Date(1552262400000+0000)\/" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateExpenseClaim summary: Updates a specific expense claims x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - user: is_object: true key: user keyPascal: User - userID: is_last: true is_uuid: true key: userID keyPascal: UserID keySnake: user_id default: 00000000-0000-0000-0000-000000000000 object: user - receipt: is_object: true key: receipt keyPascal: Receipt - receiptID: is_uuid: true key: receiptID keyPascal: ReceiptID keySnake: receipt_id default: 00000000-0000-0000-0000-000000000000 object: receipt - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: receipt - receipts: is_list: true key: receipts keyPascal: Receipt - add_receipts: is_last: true is_list_add: true key: receipts keyPascal: Receipts object: receipt - expenseClaim: is_object: true key: expenseClaim keyPascal: ExpenseClaim keySnake: expense_claim - status: nonString: true key: status keyPascal: Status default: SUBMITTED php: XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim::STATUS_SUBMITTED node: ExpenseClaim.StatusEnum.SUBMITTED ruby: XeroRuby::Accounting::ExpenseClaim::SUBMITTED python_string: SUBMITTED java: com.xero.models.accounting.ExpenseClaim.StatusEnum.SUBMITTED csharp: ExpenseClaim.StatusEnum.SUBMITTED object: expenseClaim - set_user: is_variable: true nonString: true key: user keyPascal: User default: user object: expenseClaim - set_receipt: is_last: true is_variable: true nonString: true key: receipts keyPascal: Receipts default: receipts object: expenseClaim - expenseClaims: is_object: true key: expenseClaims keyPascal: ExpenseClaims - add_expenseClaim: is_array_add: true is_last: true key: expenseClaims keyPascal: ExpenseClaims keySnake: expense_claims java: ExpenseClaims python: expense_claim ruby: expense_claim csharp: ExpenseClaim object: expenseClaim parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ExpenseClaimID' responses: '200': description: Success - return response of type ExpenseClaims array with updated ExpenseClaim content: application/json: schema: $ref: '#/components/schemas/ExpenseClaims' example: '{ "Id": "8ee87f9c-058b-4f1b-b5b2-29569bf055d7", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552325851907)\/", "ExpenseClaims": [ { "ExpenseClaimID": "646b15ab-b874-4e13-82ae-f4385b2ac4b6", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1552325851767+0000)\/", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Receipts": [ { "ReceiptID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816", "ReceiptNumber": 1, "Status": "AUTHORISED", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Date": "\/Date(1552348800000+0000)\/", "UpdatedDateUTC": "\/Date(1552325848457+0000)\/", "Reference": "", "LineAmountTypes": "NoTax", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000 } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "ID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816", "HasAttachments": false } ], "Payments": [], "Total": 40.00, "AmountDue": 40.00, "AmountPaid": 0.00, "ReportingDate": "\/Date(1552262400000+0000)\/" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExpenseClaims' example: '{ "ExpenseClaims": [ { "Status": "SUBMITTED", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273" }, "Receipts": [ { "Lineitems": [], "ReceiptID": "dc1c7f6d-0a4c-402f-acac-551d62ce5816" } ] } ] }' '/ExpenseClaims/{ExpenseClaimID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getExpenseClaimHistory summary: Retrieves history records of a specific expense claim parameters: - $ref: '#/components/parameters/ExpenseClaimID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createExpenseClaimHistory summary: Creates a history record for a specific expense claim x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ExpenseClaimID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' requestBody: $ref: '#/components/requestBodies/historyRecords' /Invoices: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getInvoices summary: Retrieves sales invoices or purchase bills parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="DRAFT" x-example-java: Status=="' + Invoice.StatusEnum.DRAFT + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_DRAFT . '" x-example-ruby: Status==#{XeroRuby::Accounting::Invoice::DRAFT} x-example-csharp: Status==\"DRAFT\" schema: type: string - in: query name: order description: Order by an any element example: "InvoiceNumber ASC" schema: type: string - in: query name: IDs x-snake: ids description: Filter by a comma-separated list of InvoicesIDs. style: form explode: false example: '"00000000-0000-0000-0000-000000000000"' x-example-java: Arrays.asList(UUID.fromString("00000000-0000-0000-0000-000000000000")) x-example-php: '"00000000-0000-0000-0000-000000000000"' x-example-csharp: new List<Guid>{Guid.Parse("00000000-0000-0000-0000-000000000000")}; schema: type: array items: type: string format: uuid - in: query name: InvoiceNumbers x-snake: invoice_numbers description: Filter by a comma-separated list of InvoiceNumbers. style: form explode: false example: '"INV-001", "INV-002"' x-example-java: Arrays.asList("INV-001","INV-002") x-example-php: '"INV-001", "INV-002"' x-example-csharp: new List<string>{"INV-001","INV-002"}; schema: type: array items: type: string - in: query name: ContactIDs x-snake: contact_ids description: Filter by a comma-separated list of ContactIDs. style: form explode: false example: '"00000000-0000-0000-0000-000000000000"' x-example-java: Arrays.asList(UUID.fromString("00000000-0000-0000-0000-000000000000")) x-example-php: '"00000000-0000-0000-0000-000000000000"' x-example-csharp: new List<Guid>{Guid.Parse("00000000-0000-0000-0000-000000000000")}; schema: type: array items: type: string format: uuid - in: query name: Statuses x-snake: statuses description: Filter by a comma-separated list Statuses. For faster response times we recommend using these explicit parameters instead of passing OR conditions into the Where filter. explode: false example: '"DRAFT", "SUBMITTED"' x-example-java: Arrays.asList("DRAFT","SUBMITTED") x-example-php: '"DRAFT", "SUBMITTED"' x-example-csharp: new List<string>{"DRAFT","SUBMITTED"}; schema: type: array items: type: string - in: query name: page description: e.g. page=1 – Up to 100 invoices will be returned in a single API call with line items shown for each invoice example: 1 schema: type: integer - in: query name: includeArchived x-snake: include_archived description: e.g. includeArchived=true - Invoices with a status of ARCHIVED will be included in the response example: true x-example-python: "True" schema: type: boolean - in: query name: createdByMyApp x-snake: created_by_my_app description: When set to true you'll only retrieve Invoices created by your app example: false x-example-python: "False" schema: type: boolean - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/summaryOnly' responses: '200': description: Success - return response of type Invoices array with all Invoices content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Id": "900c500b-e83c-4ce2-902a-b8ba04751748", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552326816230)\/", "Invoices": [ { "Type": "ACCREC", "InvoiceID": "d4956132-ed94-4dd7-9eaa-aa22dfdf06f2", "InvoiceNumber": "INV-0001", "Reference": "Red Fish, Blue Fish", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "AmountDue": 0.00, "AmountPaid": 0.00, "AmountCredited": 0.00, "SentToContact": true, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "HasAttachments": false, "RepeatingInvoiceID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Contact": { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "Name": "Barney Rubble-83203", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2018-10-20T00:00:00", "Date": "\/Date(1539993600000+0000)\/", "DueDateString": "2018-12-30T00:00:00", "DueDate": "\/Date(1546128000000+0000)\/", "Status": "VOIDED", "LineAmountTypes": "Exclusive", "LineItems": [], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "UpdatedDateUTC": "\/Date(1541176290160+0000)\/", "CurrencyCode": "NZD" }, { "Type": "ACCREC", "InvoiceID": "046d8a6d-1ae1-4b4d-9340-5601bdf41b87", "InvoiceNumber": "INV-0002", "Reference": "Red Fish, Blue Fish", "Payments": [ { "PaymentID": "99ea7f6b-c513-4066-bc27-b7c65dcd76c2", "Date": "\/Date(1543449600000+0000)\/", "Amount": 46.00, "CurrencyRate": 1.000000, "HasAccount": false, "HasValidationErrors": false } ], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "AmountDue": 0.00, "AmountPaid": 46.00, "AmountCredited": 0.00, "SentToContact": true, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "HasAttachments": false, "Contact": { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "Name": "Barney Rubble-83203", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2018-10-20T00:00:00", "Date": "\/Date(1539993600000+0000)\/", "DueDateString": "2018-12-30T00:00:00", "DueDate": "\/Date(1546128000000+0000)\/", "Status": "PAID", "LineAmountTypes": "Exclusive", "LineItems": [], "SubTotal": 40.00, "TotalTax": 6.00, "Total": 46.00, "UpdatedDateUTC": "\/Date(1541176592690+0000)\/", "CurrencyCode": "NZD", "FullyPaidOnDate": "\/Date(1543449600000+0000)\/" }, { "Type": "ACCREC", "InvoiceID": "7ef31b20-de17-4312-8382-412f869b1510", "InvoiceNumber": "INV-0003", "Reference": "", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "AmountDue": 115.00, "AmountPaid": 0.00, "AmountCredited": 0.00, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "HasAttachments": false, "Contact": { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "Name": "Barney Rubble-83203", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2018-11-02T00:00:00", "Date": "\/Date(1541116800000+0000)\/", "DueDateString": "2018-11-07T00:00:00", "DueDate": "\/Date(1541548800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [], "SubTotal": 100.00, "TotalTax": 15.00, "Total": 115.00, "UpdatedDateUTC": "\/Date(1541176648927+0000)\/", "CurrencyCode": "NZD" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createInvoices summary: Creates one or more sales invoices or purchase bills x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.of(2020, Month.OCTOBER, 10)" csharp: "new DateTime(2020, 10, 10)" php: "new DateTime('2020-10-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-10-10T00:00:00Z')" ruby: "'YYYY-MM-DD'" - dueDateValue: is_date: true key: dueDateValue keyPascal: Date keySnake: due_date_value java_datatype: LocalDate csharp_datatype: DateTime default: "LocalDate.of(2020, Month.OCTOBER, 28)" java: "LocalDate.of(2020, Month.OCTOBER, 28)" csharp: "new DateTime(2020, 10, 10)" php: "new DateTime('2020-10-28')" node: "'2020-10-28'" python: "dateutil.parser.parse('2020-10-28T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItemTracking: is_object: true key: lineItemTracking keyPascal: LineItemTracking keySnake: line_item_tracking - trackingCategoryId: is_uuid: true key: trackingCategoryID keyPascal: TrackingCategoryID keySnake: tracking_category_id default: 00000000-0000-0000-0000-000000000000 object: lineItemTracking - trackingOptionID: is_last: true is_uuid: true key: trackingOptionID keyPascal: TrackingOptionID keySnake: tracking_option_id default: 00000000-0000-0000-0000-000000000000 object: lineItemTracking - lineItemTrackings: is_list: true key: lineItemTrackings keyPascal: LineItemTracking keySnake: line_item_trackings - add_lineitemtrackings: is_last: true is_list_add: true key: lineItemTrackings keyPascal: LineItemTrackings keySnake: line_item_trackings python: line_item_tracking ruby: line_item_tracking object: lineItemTracking - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - tracking: is_last: true nonString: true key: tracking keyPascal: Tracking default: lineItemTrackings object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - invoice: is_object: true key: invoice keyPascal: Invoice - type: nonString: true key: type keyPascal: Type default: ACCREC php: XeroAPI\XeroPHP\Models\Accounting\Invoice::TYPE_ACCREC node: Invoice.TypeEnum.ACCREC ruby: XeroRuby::Accounting::Invoice::ACCREC python_string: ACCREC java: com.xero.models.accounting.Invoice.TypeEnum.ACCREC csharp: Invoice.TypeEnum.ACCREC object: invoice - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: invoice - date: is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: invoice - dueDate: is_variable: true nonString: true key: dueDate keyPascal: DueDate keySnake: due_date default: dueDateValue python: due_date_value ruby: due_date_value object: invoice - set_lineitem: is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: invoice - reference: key: reference keyPascal: Reference default: Website Design object: invoice - status: is_last: true nonString: true key: status keyPascal: Status default: DRAFT php: XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_DRAFT node: Invoice.StatusEnum.DRAFT ruby: XeroRuby::Accounting::Invoice::DRAFT python_string: DRAFT java: com.xero.models.accounting.Invoice.StatusEnum.DRAFT csharp: Invoice.StatusEnum.DRAFT object: invoice - invoices: is_object: true key: invoices keyPascal: Invoices - add_invoice: is_last: true is_array_add: true key: invoices keyPascal: Invoices java: Invoices csharp: Invoice object: invoice parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Invoices array with newly created Invoice content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Id": "ccece84a-075c-4fcd-9073-149d4f7a91cf", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552327126164)\/", "Invoices": [ { "Type": "ACCREC", "InvoiceID": "ed255415-e141-4150-aab7-89c3bbbb851c", "InvoiceNumber": "INV-0007", "Reference": "Website Design", "Prepayments": [], "Overpayments": [], "AmountDue": 40.00, "AmountPaid": 0.00, "SentToContact": false, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [ { "FirstName": "Debbie", "LastName": "Gwyther", "EmailAddress": "debbie@rockstar.com", "IncludeInEmails": false } ], "HasValidationErrors": false }, "DateString": "2019-03-11T00:00:00", "Date": "\/Date(1552262400000+0000)\/", "DueDateString": "2018-12-10T00:00:00", "DueDate": "\/Date(1544400000000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Acme Tires", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "AccountCode": "200", "Tracking": [], "Quantity": 2.0000, "LineItemID": "5f7a612b-fdcc-4d33-90fa-a9f6bc6db32f", "ValidationErrors": [] } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "UpdatedDateUTC": "\/Date(1552327126117+0000)\/", "CurrencyCode": "NZD", "StatusAttributeString": "OK" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Invoices with an array of invoice objects in body of request content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Invoices": [ { "Type": "ACCREC", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8" }, "LineItems": [ { "Description": "Acme Tires", "Quantity": 2, "UnitAmount": 20, "AccountCode": "200", "TaxType": "NONE", "LineAmount": 40 } ], "Date": "2019-03-11", "DueDate": "2018-12-10", "Reference": "Website Design", "Status": "AUTHORISED" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateOrCreateInvoices summary: Updates or creates one or more sales invoices or purchase bills x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.of(2020, Month.OCTOBER, 10)" csharp: "new DateTime(2020, 10, 10)" php: "new DateTime('2020-10-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-10-10T00:00:00Z')" ruby: "'YYYY-MM-DD'" - dueDateValue: is_date: true key: dueDateValue keyPascal: Date keySnake: due_date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 28)" java: "LocalDate.of(2020, Month.OCTOBER, 28)" csharp: "new DateTime(2020, 10, 10)" php: "new DateTime('2020-10-28')" node: "'2020-10-28'" python: "dateutil.parser.parse('2020-10-28T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - invoice: is_object: true key: invoice keyPascal: Invoice - type: nonString: true key: type keyPascal: Type default: ACCREC php: XeroAPI\XeroPHP\Models\Accounting\Invoice::TYPE_ACCREC node: Invoice.TypeEnum.ACCREC ruby: XeroRuby::Accounting::Invoice::ACCREC python_string: ACCREC java: com.xero.models.accounting.Invoice.TypeEnum.ACCREC csharp: Invoice.TypeEnum.ACCREC object: invoice - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: invoice - date: is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: invoice - dueDate: is_variable: true nonString: true key: dueDate keyPascal: Date keySnake: due_date default: dueDateValue python: due_date_value ruby: due_date_value object: invoice - set_lineitem: is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: invoice - reference: key: reference keyPascal: Reference default: Website Design object: invoice - status: is_last: true nonString: true key: status keyPascal: Status default: DRAFT php: XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_DRAFT node: Invoice.StatusEnum.DRAFT ruby: XeroRuby::Accounting::Invoice::DRAFT python_string: DRAFT java: com.xero.models.accounting.Invoice.StatusEnum.DRAFT csharp: Invoice.StatusEnum.DRAFT object: invoice - invoices: is_object: true key: invoices keyPascal: Invoices - add_invoice: is_last: true is_array_add: true key: invoices keyPascal: Invoices java: Invoices csharp: Invoice object: invoice parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Invoices array with newly created Invoice content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Id": "ccece84a-075c-4fcd-9073-149d4f7a91cf", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552327126164)\/", "Invoices": [ { "Type": "ACCREC", "InvoiceID": "ed255415-e141-4150-aab7-89c3bbbb851c", "InvoiceNumber": "INV-0007", "Reference": "Website Design", "Prepayments": [], "Overpayments": [], "AmountDue": 40.00, "AmountPaid": 0.00, "SentToContact": false, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [ { "FirstName": "Debbie", "LastName": "Gwyther", "EmailAddress": "debbie@rockstar.com", "IncludeInEmails": false } ], "HasValidationErrors": false }, "DateString": "2019-03-11T00:00:00", "Date": "\/Date(1552262400000+0000)\/", "DueDateString": "2018-12-10T00:00:00", "DueDate": "\/Date(1544400000000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Acme Tires", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "AccountCode": "200", "Tracking": [], "Quantity": 2.0000, "LineItemID": "5f7a612b-fdcc-4d33-90fa-a9f6bc6db32f", "ValidationErrors": [] } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "UpdatedDateUTC": "\/Date(1552327126117+0000)\/", "CurrencyCode": "NZD", "StatusAttributeString": "OK" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Invoices": [ { "Type": "ACCREC", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8" }, "LineItems": [ { "Description": "Acme Tires", "Quantity": 2, "UnitAmount": 20, "AccountCode": "200", "TaxType": "NONE", "LineAmount": 40 } ], "Date": "2019-03-11", "DueDate": "2018-12-10", "Reference": "Website Design", "Status": "AUTHORISED" } ] }' '/Invoices/{InvoiceID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getInvoice summary: Retrieves a specific sales invoice or purchase bill using a unique invoice Id parameters: - $ref: '#/components/parameters/InvoiceID' - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Invoices array with specified Invoices content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Id": "516f400a-b764-4c88-831b-12d2b210fa24", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1551981658323)\/", "Invoices": [ { "Type": "ACCREC", "InvoiceID": "a03ffcd2-5d91-4c7e-b483-318584e9e439", "InvoiceNumber": "INV-0006", "Reference": "Tour", "Payments": [ { "PaymentID": "38928000-e9a0-420c-8884-f624bab2a351", "Date": "\/Date(1552953600000+0000)\/", "Amount": 148062.76, "Reference": "Yahoo", "CurrencyRate": 1.000000, "HasAccount": false, "HasValidationErrors": false } ], "Prepayments": [], "Overpayments": [], "AmountDue": 0.00, "AmountPaid": 148062.76, "SentToContact": false, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "HasAttachments": true, "Attachments": [ { "AttachmentID": "3a2fe7e0-fac7-4ea2-afb2-31cedaabd294", "FileName": "helo-heros.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/a03ffcd2-5d91-4c7e-b483-318584e9e439/Attachments/helo-heros.jpg", "MimeType": "image/jpeg", "ContentLength": 2878711 } ], "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [ { "FirstName": "Debbie", "LastName": "Gwyther", "EmailAddress": "debbie@rockstar.com", "IncludeInEmails": false } ], "HasValidationErrors": false }, "DateString": "2019-03-07T00:00:00", "Date": "\/Date(1551916800000+0000)\/", "DueDateString": "2019-03-13T00:00:00", "DueDate": "\/Date(1552435200000+0000)\/", "Status": "PAID", "LineAmountTypes": "Exclusive", "LineItems": [ { "ItemCode": "123", "Description": "Guitars Fender Strat", "UnitAmount": 148062.76, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 148062.76, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "b18f39d9-7739-4246-9288-72afe939d2d5", "ValidationErrors": [] } ], "SubTotal": 148062.76, "TotalTax": 0.00, "Total": 148062.76, "UpdatedDateUTC": "\/Date(1551981568133+0000)\/", "CurrencyCode": "NZD", "FullyPaidOnDate": "\/Date(1552953600000+0000)\/", "StatusAttributeString": "ERROR", "ValidationErrors": [ { "Message": "Invoice # must be unique." } ] } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateInvoice summary: Updates a specific sales invoices or purchase bills x-hasAccountingValidationError: true x-example: - invoice: is_object: true key: invoice keyPascal: Invoice - reference: is_last: true key: reference keyPascal: Reference default: I am Iron man object: invoice - invoices: is_object: true key: invoices keyPascal: Invoices - add_invoice: is_last: true is_array_add: true key: invoices keyPascal: Invoices java: Invoices csharp: Invoice object: invoice parameters: - $ref: '#/components/parameters/InvoiceID' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Invoices array with updated Invoice content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Id": "bd83b60e-9d16-4a3b-9f59-0a2d0ccd35f2", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552329729002)\/", "Invoices": [ { "Type": "ACCREC", "InvoiceID": "4074292c-09b3-456d-84e7-add864c6c39b", "InvoiceNumber": "INV-0008", "Reference": "My the Force be With You", "Prepayments": [], "Overpayments": [], "AmountDue": 575.00, "AmountPaid": 0.00, "SentToContact": false, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "be392c72-c121-4f83-9512-03ac71e54c20", "ContactStatus": "ACTIVE", "Name": "Luke Skywalker", "EmailAddress": "", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "City": "", "Region": "", "PostalCode": "", "Country": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1552329691573+0000)\/", "ContactGroups": [], "IsSupplier": false, "IsCustomer": true, "DefaultCurrency": "NZD", "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-11T00:00:00", "Date": "\/Date(1552262400000+0000)\/", "DueDateString": "2019-03-12T00:00:00", "DueDate": "\/Date(1552348800000+0000)\/", "Status": "SUBMITTED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Light Saber", "UnitAmount": 500.00, "TaxType": "OUTPUT2", "TaxAmount": 75.00, "LineAmount": 500.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "6de1bf9f-de95-4c47-9287-37305db758c9", "ValidationErrors": [] } ], "SubTotal": 500.00, "TotalTax": 75.00, "Total": 575.00, "UpdatedDateUTC": "\/Date(1552329728987+0000)\/", "CurrencyCode": "NZD" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Invoices' example: '{ "Invoices": [{ Reference: "May the force be with you", "InvoiceID": "00000000-0000-0000-0000-000000000000", "LineItems": [], "Contact": {}, "Type": "ACCPAY" }]}' '/Invoices/{InvoiceID}/pdf': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getInvoiceAsPdf x-path: '/Invoices/{InvoiceID}' summary: Retrieves invoices or purchase bills as PDF files parameters: - $ref: '#/components/parameters/InvoiceID' responses: '200': description: Success - return response of byte array pdf version of specified Invoices content: application/pdf: schema: type: string format: binary '/Invoices/{InvoiceID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getInvoiceAttachments summary: Retrieves attachments for a specific invoice or purchase bill parameters: - $ref: '#/components/parameters/InvoiceID' responses: '200': description: Success - return response of type Attachments array of Attachments for specified Invoices x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: ' { "Id": "7e357a45-69f5-4e8f-8d7b-15da8ef50aab", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552330258523)\/", "Attachments": [ { "AttachmentID": "9808ad7f-c8d4-41cf-995e-bc29cb76fd2c", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/4074292c-09b3-456d-84e7-add864c6c39b/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "5a500c1a-5a02-48de-939e-1d234fd170d4", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/4074292c-09b3-456d-84e7-add864c6c39b/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '/Invoices/{InvoiceID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getInvoiceAttachmentById summary: Retrieves a specific attachment from a specific invoices or purchase bills by using a unique attachment Id parameters: - $ref: '#/components/parameters/InvoiceID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Invoice as binary data content: application/octet-stream: schema: type: string format: binary '/Invoices/{InvoiceID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getInvoiceAttachmentByFileName summary: Retrieves an attachment from a specific invoice or purchase bill by filename parameters: - $ref: '#/components/parameters/InvoiceID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Invoice as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateInvoiceAttachmentByFileName x-hasAccountingValidationError: true summary: Updates an attachment from a specific invoices or purchase bill by filename parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/InvoiceID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with updated Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "acd7d618-5fef-4d45-849c-a339ea31a973", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552330524005)\/", "Attachments": [ { "AttachmentID": "08085449-fda3-45f4-a685-ff44c8a29ee3", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/4074292c-09b3-456d-84e7-add864c6c39b/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createInvoiceAttachmentByFileName x-hasAccountingValidationError: true summary: Creates an attachment for a specific invoice or purchase bill by filename parameters: - $ref: '#/components/parameters/InvoiceID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/includeOnline' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Attachments array with newly created Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "971fbd18-c850-453a-825f-63f2fee096ee", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552330001318)\/", "Attachments": [ { "AttachmentID": "5a500c1a-5a02-48de-939e-1d234fd170d4", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/4074292c-09b3-456d-84e7-add864c6c39b/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/Invoices/{InvoiceID}/OnlineInvoice': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getOnlineInvoice summary: Retrieves a URL to an online invoice parameters: - $ref: '#/components/parameters/InvoiceID' responses: '200': description: Success - return response of type OnlineInvoice array with one OnlineInvoice content: application/json: schema: $ref: '#/components/schemas/OnlineInvoices' example: '{ "Id": "d20705fb-fe1c-4366-835b-98de7474da3c", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552331100745)\/", "OnlineInvoices": [ { "OnlineInvoiceUrl": "https://in.xero.com/bCWCCfytGdTXoJam9HENWlQt07G6zcDaj4gQojHu" } ] }' '/Invoices/{InvoiceID}/Email': parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: emailInvoice summary: Sends a copy of a specific invoice to related contact via email x-hasAccountingValidationError: true x-example: - requestEmpty: is_last: true is_object: true key: requestEmpty keyPascal: RequestEmpty parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/InvoiceID' responses: '204': description: Success - return response 204 no content x-isEmpty: true '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RequestEmpty' example: '{}' '/Invoices/{InvoiceID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getInvoiceHistory summary: Retrieves history records for a specific invoice parameters: - $ref: '#/components/parameters/InvoiceID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createInvoiceHistory summary: Creates a history record for a specific invoice x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/InvoiceID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' '/InvoiceReminders/Settings': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getInvoiceReminders summary: Retrieves invoice reminder settings responses: '200': description: Success - return response of Invoice Reminders content: application/json: schema: $ref: '#/components/schemas/InvoiceReminders' example: '{ "Id": "c7cd0953-c012-4be8-b618-63ce4c2c3494", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552331430618)\/", "InvoiceReminders": [ { "Enabled": false } ] }' /Items: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getItems summary: Retrieves items parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: IsSold==true schema: type: string - in: query name: order description: Order by an any element example: "Code ASC" schema: type: string - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Items array with all Item content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Id": "8487e8d7-5fb3-4f02-b949-dec8f1e38182", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552331874897)\/", "Items": [ { "ItemID": "c8c54d65-f3f2-452d-926e-bf450b12fb07", "Code": "123", "Description": "Guitars Fender Strat", "UpdatedDateUTC": "\/Date(1551981476267+0000)\/", "PurchaseDetails": {}, "SalesDetails": { "UnitPrice": 5000.0000, "AccountCode": "200", "TaxType": "OUTPUT2" }, "Name": "Guitars", "IsTrackedAsInventory": false, "IsSold": true, "IsPurchased": false }, { "ItemID": "a4544d51-48f6-441f-a623-99ecbced6ab7", "Code": "abc65591", "Description": "Barfoo", "UpdatedDateUTC": "\/Date(1552331873580+0000)\/", "PurchaseDetails": {}, "SalesDetails": {}, "Name": "Hello11350", "IsTrackedAsInventory": false, "IsSold": true, "IsPurchased": true } ] }' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createItems summary: Creates one or more items x-hasAccountingValidationError: true x-example: - purchaseDetails: is_object: true key: purchaseDetails keyPascal: Purchase keySnake: purchase_details - cOGSAccountCode: is_last: true key: cOGSAccountCode keyPascal: CoGSAccountCode keySnake: cogs_account_code keyCsharp: COGSAccountCode default: 500 object: purchaseDetails - item: is_object: true key: item keyPascal: Item - code: key: code keyPascal: Code default: abcXYZ123 object: item - name: key: name keyPascal: Name default: HelloWorld object: item - description: key: description keyPascal: Description default: Foobar object: item - inventoryAssetAccountCode: key: inventoryAssetAccountCode keyPascal: InventoryAssetAccountCode keySnake: inventory_asset_account_code default: 140 object: item - set_purchaseDetails: is_last: true is_variable: true nonString: true key: purchaseDetails keyPascal: PurchaseDetails keySnake: purchase_details default: purchaseDetails python: purchase_details ruby: purchase_details object: item - items: is_object: true key: items keyPascal: Items - add_item: is_last: true is_array_add: true key: items keyPascal: Items java: Items csharp: Item object: item parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Items array with newly created Item content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Id": "ae7ef7c8-9024-4d42-8d59-5f26ed3f508b", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552331871904)\/", "Items": [ { "ItemID": "a4544d51-48f6-441f-a623-99ecbced6ab7", "Code": "abc65591", "Description": "foobar", "UpdatedDateUTC": "\/Date(1552331871707)\/", "PurchaseDetails": {}, "SalesDetails": {}, "Name": "Hello11350", "IsTrackedAsInventory": false, "IsSold": true, "IsPurchased": true, "ValidationErrors": [ { "Message": "Price List Item with Code ''abc'' already exists" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Items with an array of Item objects in body of request content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Items": [ { "Code": "code123", "Name": "Item Name XYZ", "Description": "Foobar", "InventoryAssetAccountCode": "140", "PurchaseDetails": { "COGSAccountCode": "500" } } ] }' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: updateOrCreateItems summary: Updates or creates one or more items x-hasAccountingValidationError: true x-example: - item: is_object: true key: item keyPascal: Item - code: key: code keyPascal: Code default: abcXYZ123 object: item - name: key: name keyPascal: Name default: HelloWorld object: item - description: is_last: true key: description keyPascal: Description default: Foobar object: item - items: is_object: true key: items keyPascal: Items - add_item: is_last: true is_array_add: true key: items keyPascal: Items java: Items csharp: Item object: item parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Items array with newly created Item content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Id": "ae7ef7c8-9024-4d42-8d59-5f26ed3f508b", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552331871904)\/", "Items": [ { "ItemID": "a4544d51-48f6-441f-a623-99ecbced6ab7", "Code": "abc65591", "Description": "foobar", "UpdatedDateUTC": "\/Date(1552331871707)\/", "PurchaseDetails": {}, "SalesDetails": {}, "Name": "Hello11350", "IsTrackedAsInventory": false, "IsSold": true, "IsPurchased": true, "ValidationErrors": [ { "Message": "Price List Item with Code ''abc'' already exists" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Items": [ { "Code": "ItemCode123", "Name": "ItemName XYZ", "Description": "Item Description ABC" } ] }' '/Items/{ItemID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getItem summary: Retrieves a specific item using a unique item Id parameters: - $ref: '#/components/parameters/ItemID' - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Items array with specified Item content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Id": "0bbd8a92-9ba7-4711-8040-8d6a609ca7e8", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552333420160)\/", "Items": [ { "ItemID": "c8c54d65-f3f2-452d-926e-bf450b12fb07", "Code": "123", "Description": "Guitars Fender Strat", "PurchaseDescription": "Brand new Fender Strats", "UpdatedDateUTC": "\/Date(1552333309387+0000)\/", "PurchaseDetails": { "UnitPrice": 2500.0000, "COGSAccountCode": "310", "TaxType": "INPUT2" }, "SalesDetails": { "UnitPrice": 5000.0000, "AccountCode": "200", "TaxType": "OUTPUT2" }, "Name": "Guitars", "IsTrackedAsInventory": true, "InventoryAssetAccountCode": "630", "TotalCostPool": 25000.00, "QuantityOnHand": 10.0000, "IsSold": true, "IsPurchased": true, "ValidationErrors": [] } ] }' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: updateItem summary: Updates a specific item x-hasAccountingValidationError: true x-example: - item: is_object: true key: item keyPascal: Item - code: key: code keyPascal: Code default: ItemCode123 object: item - description: is_last: true key: description keyPascal: Description default: Goodbye object: item - items: is_object: true key: items keyPascal: Items - add_item: is_last: true is_array_add: true key: items keyPascal: Items java: Items csharp: Item object: item parameters: - $ref: '#/components/parameters/ItemID' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Items array with updated Item content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Id": "24feb629-6b14-499e-9aa1-fc2c596c0280", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552332558975)\/", "Items": [ { "ItemID": "a7e87086-e0ae-4df2-83d7-e26e9a6b7786", "Code": "abc38306", "Description": "Hello Xero", "UpdatedDateUTC": "\/Date(1552332558924)\/", "PurchaseDetails": {}, "SalesDetails": {}, "Name": "Hello8746", "IsTrackedAsInventory": false, "IsSold": true, "IsPurchased": true, "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Items' example: '{ "Items": [ { "Code": "ItemCode123", "Description": "Description 123" } ] }' delete: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: deleteItem summary: Deletes a specific item parameters: - $ref: '#/components/parameters/ItemID' responses: '204': description: Success - return response 204 no content x-isEmpty: true '400': $ref: '#/components/responses/400Error' '/Items/{ItemID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getItemHistory summary: Retrieves history for a specific item parameters: - $ref: '#/components/parameters/ItemID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createItemHistory summary: Creates a history record for a specific item x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ItemID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' requestBody: $ref: '#/components/requestBodies/historyRecords' /Journals: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.journals.read] tags: - Accounting operationId: getJournals summary: Retrieves journals parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: offset description: Offset by a specified journal number. e.g. journals with a JournalNumber greater than the offset will be returned example: 10 schema: type: integer - in: query name: paymentsOnly x-snake: payments_only description: Filter to retrieve journals on a cash basis. Journals are returned on an accrual basis by default. example: true x-example-python: "True" schema: type: boolean responses: '200': description: Success - return response of type Journals array with all Journals content: application/json: schema: $ref: '#/components/schemas/Journals' example: '{ "Id": "49a09a97-df50-4679-8043-02c86e0dcf5f", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552335214210)\/", "Journals": [ { "JournalID": "1b31feeb-aa23-404c-8c19-24c827c53661", "JournalDate": "\/Date(1539993600000+0000)\/", "JournalNumber": 1, "CreatedDateUTC": "\/Date(1541176243467+0000)\/", "Reference": "Red Fish, Blue Fish", "SourceID": "d4956132-ed94-4dd7-9eaa-aa22dfdf06f2", "SourceType": "ACCREC", "JournalLines": [ { "JournalLineID": "81e6b1bf-d812-4f87-8dc4-698558ae043e", "AccountID": "b94495d0-44ab-4199-a1d0-427a4877e100", "AccountCode": "610", "AccountType": "CURRENT", "AccountName": "Accounts Receivable", "Description": "", "NetAmount": 40.00, "GrossAmount": 40.00, "TaxAmount": 0.00, "TrackingCategories": [] }, { "JournalLineID": "ad221a8c-ebee-4c1b-88ed-d574e27e8803", "AccountID": "e0a5d892-9f9f-44f0-a153-5cb7db125170", "AccountCode": "200", "AccountType": "REVENUE", "AccountName": "Sales", "Description": "Acme Tires", "NetAmount": -40.00, "GrossAmount": -40.00, "TaxAmount": 0.00, "TaxType": "NONE", "TaxName": "No GST", "TrackingCategories": [] } ] }, { "JournalID": "2be66e45-805b-46de-921d-c67e1d3dad2a", "JournalDate": "\/Date(1539993600000+0000)\/", "JournalNumber": 9, "CreatedDateUTC": "\/Date(1541176504083+0000)\/", "Reference": "Red Fish, Blue Fish", "SourceID": "046d8a6d-1ae1-4b4d-9340-5601bdf41b87", "SourceType": "ACCREC", "JournalLines": [ { "JournalLineID": "ba8a5680-a753-4a35-b3dd-0bc72e5c26a1", "AccountID": "b94495d0-44ab-4199-a1d0-427a4877e100", "AccountCode": "610", "AccountType": "CURRENT", "AccountName": "Accounts Receivable", "Description": "", "NetAmount": 40.00, "GrossAmount": 40.00, "TaxAmount": 0.00, "TrackingCategories": [] }, { "JournalLineID": "09a0b9b9-0222-4e24-8c31-efef472e22f1", "AccountID": "e0a5d892-9f9f-44f0-a153-5cb7db125170", "AccountCode": "200", "AccountType": "REVENUE", "AccountName": "Sales", "Description": "Acme Tires", "NetAmount": -40.00, "GrossAmount": -40.00, "TaxAmount": 0.00, "TaxType": "NONE", "TaxName": "No GST", "TrackingCategories": [] } ] }, { "JournalID": "d0ed2957-ebba-4d3a-8367-ae9ccd574885", "JournalDate": "\/Date(1543449600000+0000)\/", "JournalNumber": 14, "CreatedDateUTC": "\/Date(1541176592673+0000)\/", "SourceID": "99ea7f6b-c513-4066-bc27-b7c65dcd76c2", "SourceType": "ACCRECPAYMENT", "JournalLines": [ { "JournalLineID": "1bdae2b7-3035-40ec-b344-b12b1c23adc4", "AccountID": "b94495d0-44ab-4199-a1d0-427a4877e100", "AccountCode": "610", "AccountType": "CURRENT", "AccountName": "Accounts Receivable", "Description": "", "NetAmount": -46.00, "GrossAmount": -46.00, "TaxAmount": 0.00, "TrackingCategories": [] }, { "JournalLineID": "353be85e-ae79-4bb3-9483-5ea7682fc0a3", "AccountID": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "AccountCode": "970", "AccountType": "EQUITY", "AccountName": "Owner A Funds Introduced", "Description": "", "NetAmount": 46.00, "GrossAmount": 46.00, "TaxAmount": 0.00, "TrackingCategories": [] } ] }, { "JournalID": "772e8133-7f12-4edc-ab98-aa6dceb16c9d", "JournalDate": "\/Date(1552262400000+0000)\/", "JournalNumber": 30, "CreatedDateUTC": "\/Date(1552333389227+0000)\/", "Reference": "", "SourceID": "5376633d-0456-43a3-8234-e457a3f50a12", "SourceType": "ACCPAY", "JournalLines": [ { "JournalLineID": "33469836-642f-4973-a708-0e99339dff4a", "AccountID": "a2a4795b-a01f-40eb-afa6-a34b4514875d", "AccountCode": "800", "AccountType": "CURRLIAB", "AccountName": "Accounts Payable", "Description": "", "NetAmount": -28750.00, "GrossAmount": -28750.00, "TaxAmount": 0.00, "TrackingCategories": [] }, { "JournalLineID": "4f3b6462-5cf6-4b55-a2ae-de4039878215", "AccountID": "53a12a15-7e9b-4a31-85f4-a7cee6d04215", "AccountCode": "630", "AccountType": "CURRENT", "AccountName": "Inventory", "Description": "Brand new Fender Strats", "NetAmount": 25000.00, "GrossAmount": 28750.00, "TaxAmount": 3750.00, "TaxType": "INPUT2", "TaxName": "15% GST on Expenses", "TrackingCategories": [] }, { "JournalLineID": "534e822e-d441-48a7-8e57-5ad54729e83e", "AccountID": "17d9a4a0-3181-4803-a96b-f0dbe589091b", "AccountCode": "820", "AccountType": "CURRLIAB", "AccountName": "GST", "Description": "", "NetAmount": 3750.00, "GrossAmount": 3750.00, "TaxAmount": 0.00, "TrackingCategories": [] } ] } ] }' '/Journals/{JournalID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.journals.read] tags: - Accounting operationId: getJournal summary: Retrieves a specific journal using a unique journal Id. parameters: - $ref: '#/components/parameters/JournalID' responses: '200': description: Success - return response of type Journals array with specified Journal content: application/json: schema: $ref: '#/components/schemas/Journals' example: '{ "Id": "39ab8367-eb14-420d-83a9-e01ddddd21f8", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552335613002)\/", "Journals": [ { "JournalID": "1b31feeb-aa23-404c-8c19-24c827c53661", "JournalDate": "\/Date(1539993600000+0000)\/", "JournalNumber": 1, "CreatedDateUTC": "\/Date(1541176243467+0000)\/", "Reference": "Red Fish, Blue Fish", "JournalLines": [ { "JournalLineID": "81e6b1bf-d812-4f87-8dc4-698558ae043e", "AccountID": "b94495d0-44ab-4199-a1d0-427a4877e100", "AccountCode": "610", "AccountType": "CURRENT", "AccountName": "Accounts Receivable", "Description": "", "NetAmount": 40.00, "GrossAmount": 40.00, "TaxAmount": 0.00, "TaxType": "", "TaxName": "", "TrackingCategories": [] }, { "JournalLineID": "ad221a8c-ebee-4c1b-88ed-d574e27e8803", "AccountID": "e0a5d892-9f9f-44f0-a153-5cb7db125170", "AccountCode": "200", "AccountType": "REVENUE", "AccountName": "Sales", "Description": "Acme Tires", "NetAmount": -40.00, "GrossAmount": -40.00, "TaxAmount": 0.00, "TaxType": "NONE", "TaxName": "No GST", "TrackingCategories": [] } ] } ] }' '/Journals/{JournalNumber}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.journals.read] tags: - Accounting operationId: getJournalByNumber summary: Retrieves a specific journal using a unique journal number. parameters: - $ref: '#/components/parameters/JournalNumber' responses: '200': description: Success - return response of type Journals array with specified Journal content: application/json: schema: $ref: '#/components/schemas/Journals' example: '{ "Id": "39ab8367-eb14-420d-83a9-e01ddddd21f8", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552335613002)\/", "Journals": [ { "JournalID": "1b31feeb-aa23-404c-8c19-24c827c53661", "JournalDate": "\/Date(1539993600000+0000)\/", "JournalNumber": 1, "CreatedDateUTC": "\/Date(1541176243467+0000)\/", "Reference": "Red Fish, Blue Fish", "JournalLines": [ { "JournalLineID": "81e6b1bf-d812-4f87-8dc4-698558ae043e", "AccountID": "b94495d0-44ab-4199-a1d0-427a4877e100", "AccountCode": "610", "AccountType": "CURRENT", "AccountName": "Accounts Receivable", "Description": "", "NetAmount": 40.00, "GrossAmount": 40.00, "TaxAmount": 0.00, "TaxType": "", "TaxName": "", "TrackingCategories": [] }, { "JournalLineID": "ad221a8c-ebee-4c1b-88ed-d574e27e8803", "AccountID": "e0a5d892-9f9f-44f0-a153-5cb7db125170", "AccountCode": "200", "AccountType": "REVENUE", "AccountName": "Sales", "Description": "Acme Tires", "NetAmount": -40.00, "GrossAmount": -40.00, "TaxAmount": 0.00, "TaxType": "NONE", "TaxName": "No GST", "TrackingCategories": [] } ] } ] }' /LinkedTransactions: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getLinkedTransactions summary: Retrieves linked transactions (billable expenses) parameters: - in: query name: page description: Up to 100 linked transactions will be returned in a single API call. Use the page parameter to specify the page to be returned e.g. page=1. example: 1 schema: type: integer - in: query name: LinkedTransactionID x-snake: linked_transaction_id description: The Xero identifier for an Linked Transaction example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid - in: query name: SourceTransactionID x-snake: source_transaction_id description: Filter by the SourceTransactionID. Get the linked transactions created from a particular ACCPAY invoice example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid - in: query name: ContactID x-snake: contact_id description: Filter by the ContactID. Get all the linked transactions that have been assigned to a particular customer. example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid - in: query name: Status x-snake: status description: Filter by the combination of ContactID and Status. Get the linked transactions associated to a customer and with a status example: "APPROVED" schema: type: string - in: query name: TargetTransactionID x-snake: target_transaction_id description: Filter by the TargetTransactionID. Get all the linked transactions allocated to a particular ACCREC invoice example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid responses: '200': description: Success - return response of type LinkedTransactions array with all LinkedTransaction content: application/json: schema: $ref: '#/components/schemas/LinkedTransactions' example: '{ "Id": "516aabd0-e670-48d5-b0eb-10dce4494dd8", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552348338096)\/", "LinkedTransactions": [ { "LinkedTransactionID": "5cf7d9c0-b9a7-4433-a2dc-ae3c11bba39b", "SourceTransactionID": "aec416dd-38ea-40dc-9f0b-813c8c71f87f", "SourceLineItemID": "77e0b23b-5b79-4f4b-ae20-c9031d41442f", "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "TargetTransactionID": "83693fc1-5b05-4807-b190-109d4a85dd5f", "TargetLineItemID": "d5128ff1-0f39-4d2a-a6d5-46dfaf5f075c", "Status": "ONDRAFT", "Type": "BILLABLEEXPENSE", "UpdatedDateUTC": "\/Date(1552347991000+0000)\/", "SourceTransactionTypeCode": "ACCPAY" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createLinkedTransaction summary: Creates linked transactions (billable expenses) parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - linkedTransaction: is_object: true key: linkedTransaction keyPascal: LinkedTransaction keySnake: linked_transaction - sourceTransactionID: is_uuid: true key: sourceTransactionID keyPascal: SourceTransactionID keySnake: source_transaction_id default: 00000000-0000-0000-0000-000000000000 object: linkedTransaction - sourceLineItemID: is_last: true is_uuid: true key: sourceLineItemID keyPascal: SourceLineItemID keySnake: source_line_item_id default: 00000000-0000-0000-0000-000000000000 object: linkedTransaction responses: '200': description: Success - return response of type LinkedTransactions array with newly created LinkedTransaction content: application/json: schema: $ref: '#/components/schemas/LinkedTransactions' example: '{ "Id": "f32b30e5-32d1-42a8-bcc9-5b22828f725c", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552351054646)\/", "LinkedTransactions": [ { "LinkedTransactionID": "e9684b6c-4df9-45a0-917b-85cc29857008", "SourceTransactionID": "a848644a-f20f-4630-98c3-386bd7505631", "SourceLineItemID": "b0df260d-3cc8-4ced-9bd6-41924f624ed3", "Status": "DRAFT", "Type": "BILLABLEEXPENSE", "UpdatedDateUTC": "\/Date(1552351055000+0000)\/", "SourceTransactionTypeCode": "ACCPAY", "ValidationErrors": [ { "Message": "The SourceLineItemID and SourceTransactionID do not match" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: LinkedTransaction object in body of request content: application/json: schema: $ref: '#/components/schemas/LinkedTransaction' example: '{ "LinkedTransactions": [ { "SourceTransactionID": "a848644a-f20f-4630-98c3-386bd7505631", "SourceLineItemID": "b0df260d-3cc8-4ced-9bd6-41924f624ed3" } ] }' '/LinkedTransactions/{LinkedTransactionID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getLinkedTransaction summary: Retrieves a specific linked transaction (billable expenses) using a unique linked transaction Id parameters: - $ref: '#/components/parameters/LinkedTransactionID' responses: '200': description: Success - return response of type LinkedTransactions array with a specified LinkedTransaction content: application/json: schema: $ref: '#/components/schemas/LinkedTransactions' example: '{ "Id": "171ca542-874d-44e2-8930-db9bccd7d88b", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552348339875)\/", "LinkedTransactions": [ { "LinkedTransactionID": "5cf7d9c0-b9a7-4433-a2dc-ae3c11bba39b", "SourceTransactionID": "aec416dd-38ea-40dc-9f0b-813c8c71f87f", "SourceLineItemID": "77e0b23b-5b79-4f4b-ae20-c9031d41442f", "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "TargetTransactionID": "83693fc1-5b05-4807-b190-109d4a85dd5f", "TargetLineItemID": "d5128ff1-0f39-4d2a-a6d5-46dfaf5f075c", "Status": "ONDRAFT", "Type": "BILLABLEEXPENSE", "UpdatedDateUTC": "\/Date(1552347991000+0000)\/", "SourceTransactionTypeCode": "ACCPAY" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateLinkedTransaction summary: Updates a specific linked transactions (billable expenses) x-hasAccountingValidationError: true x-example: - linkedTransaction: is_object: true key: linkedTransaction keyPascal: LinkedTransaction keySnake: linked_transaction - sourceLineItemID: is_uuid: true key: sourceLineItemID keyPascal: SourceLineItemID keySnake: source_line_item_id default: 00000000-0000-0000-0000-000000000000 object: linkedTransaction - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID default: 00000000-0000-0000-0000-000000000000 object: linkedTransaction - linkedTransactions: is_object: true key: linkedTransactions keyPascal: LinkedTransactions - add_linkedTransaction: is_last: true is_array_add: true key: linkedTransactions keyPascal: LinkedTransactions keySnake: linked_transactions java: LinkedTransactions python: linked_transaction ruby: linked_transaction csharp: LinkedTransaction object: linkedTransaction parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/LinkedTransactionID' responses: '200': description: Success - return response of type LinkedTransactions array with updated LinkedTransaction content: application/json: schema: $ref: '#/components/schemas/LinkedTransactions' example: '{ "Id": "bd364af7-08f0-432b-81db-c1e5ba05f3dd", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552351488159)\/", "LinkedTransactions": [ { "LinkedTransactionID": "e9684b6c-4df9-45a0-917b-85cc29857008", "SourceTransactionID": "a848644a-f20f-4630-98c3-386bd7505631", "SourceLineItemID": "b0df260d-3cc8-4ced-9bd6-41924f624ed3", "ContactID": "4e1753b9-018a-4775-b6aa-1bc7871cfee3", "Status": "DRAFT", "Type": "BILLABLEEXPENSE", "UpdatedDateUTC": "\/Date(1552351055000+0000)\/", "SourceTransactionTypeCode": "ACCPAY" } ] }' '400': description: Success - return response of type LinkedTransactions array with updated LinkedTransaction content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "LinkedTransactionID": "5a68b5b4-8cf0-4af5-8c3c-513cc19e1c73", "SourceTransactionID": "aec416dd-38ea-40dc-9f0b-813c8c71f87f", "SourceLineItemID": "77e0b23b-5b79-4f4b-ae20-c9031d41442f", "ContactID": "4e1753b9-018a-4775-b6aa-1bc7871cfee3", "TargetTransactionID": "83693fc1-5b05-4807-b190-109d4a85dd5f", "TargetLineItemID": "d5128ff1-0f39-4d2a-a6d5-46dfaf5f075c", "Status": "ONDRAFT", "Type": "BILLABLEEXPENSE", "UpdatedDateUTC": "\/Date(1552349706000+0000)\/", "SourceTransactionTypeCode": "ACCPAY", "ValidationErrors": [ { "Message": "The ContactID and the TargetTransaction ContactID do not match" } ] } ] }' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LinkedTransactions' example: '{ "LinkedTransactions": [ { "SourceTransactionID": "00000000-0000-0000-0000-000000000000", "SourceLineItemID": "00000000-0000-0000-0000-000000000000" } ] }' delete: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: deleteLinkedTransaction summary: Deletes a specific linked transactions (billable expenses) parameters: - $ref: '#/components/parameters/LinkedTransactionID' responses: '204': description: Success - return response 204 no content x-isEmpty: true '400': $ref: '#/components/responses/400Error' /ManualJournals: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getManualJournals summary: Retrieves manual journals parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="DRAFT" x-example-csharp: Status==\"DRAFT\" x-example-java: Status=="' + ManualJournal.StatusEnum.DRAFT + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\ManualJournal::STATUS_DRAFT . '" x-example-ruby: Status==#{XeroRuby::Accounting::ManualJournal::DRAFT} schema: type: string - in: query name: order description: Order by an any element example: "Date ASC" schema: type: string - in: query name: page description: e.g. page=1 – Up to 100 manual journals will be returned in a single API call with line items shown for each overpayment example: 1 schema: type: integer responses: '200': description: Success - return response of type ManualJournals array with a all ManualJournals content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "Id": "8a508ec1-b578-48bf-97df-020c918fbf7d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552357217359)\/", "ManualJournals": [ { "Date": "\/Date(1553126400000+0000)\/", "Status": "POSTED", "LineAmountTypes": "NoTax", "UpdatedDateUTC": "\/Date(1552357188083+0000)\/", "ManualJournalID": "0b159335-606b-485f-b51b-97b3b32bad32", "Narration": "Reversal: These aren''t the droids you are looking for", "JournalLines": [], "ShowOnCashBasisReports": true, "HasAttachments": false }, { "Date": "\/Date(1552348800000+0000)\/", "Status": "POSTED", "LineAmountTypes": "NoTax", "UpdatedDateUTC": "\/Date(1552357188147+0000)\/", "ManualJournalID": "99cb8353-ce73-4a5d-8e0d-8b0edf86cfc4", "Narration": "These aren''t the droids you are looking for", "JournalLines": [], "ShowOnCashBasisReports": true, "HasAttachments": true }, { "Date": "\/Date(1552262400000+0000)\/", "Status": "DRAFT", "LineAmountTypes": "NoTax", "UpdatedDateUTC": "\/Date(1552357216843+0000)\/", "ManualJournalID": "ecb6b362-c78f-462a-a229-a66abf115e92", "Narration": "Foo bar", "JournalLines": [], "ShowOnCashBasisReports": true, "HasAttachments": false } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createManualJournals summary: Creates one or more manual journals x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.of(2020, Month.OCTOBER, 10)" csharp: "new DateTime(2020, 10, 10)" php: "new DateTime('2019-10-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - manualJournalLines: is_list: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines - credit: is_object: true key: credit keyPascal: ManualJournalLine - lineAmount: nonString: true key: lineAmount keyPascal: LineAmount keySnake: line_amount default: 100.0 is_money: true object: credit - accountCode: key: accountCode keyPascal: AccountCode keySnake: account_code default: 400 object: credit - description: is_last: true key: description keyPascal: Description default: "Hello there" object: credit - add_credit: is_last: true is_list_add: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines object: credit - debit: is_object: true key: debit keyPascal: ManualJournalLine - lineAmount: nonString: true key: lineAmount keyPascal: LineAmount keySnake: line_amount default: -100.0 is_money: true object: debit - accountCode: key: accountCode keyPascal: AccountCode keySnake: account_code default: 120 object: debit - description: is_last: true key: description keyPascal: Description default: "Hello there" object: debit - add_debit: is_last: true is_list_add: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines object: debit - manualJournal: is_object: true key: manualJournal keyPascal: ManualJournal keySnake: manual_journal - narration: key: narration keyPascal: Narration default: Foobar object: manualJournal - date: is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: manualJournal - set_manualJournalLines: is_last: true is_variable: true nonString: true key: journalLines keyPascal: JournalLines keySnake: journal_lines default: manualJournalLines python: manual_journal_lines ruby: manual_journal_lines object: manualJournal - manualJournals: is_object: true key: manualJournals keyPascal: ManualJournals - add_manualJournal: is_last: true is_array_add: true key: manualJournals keyPascal: ManualJournals keySnake: manual_journals java: ManualJournals php: manualJournals python: manual_journal ruby: manual_journal csharp: ManualJournal object: manualJournal parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type ManualJournals array with newly created ManualJournal content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "Id": "45dfa608-0fcb-4f30-a377-c82cd348569c", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552595972952)\/", "ManualJournals": [ { "Date": "\/Date(1552521600000+0000)\/", "Status": "DRAFT", "LineAmountTypes": "NoTax", "UpdatedDateUTC": "\/Date(1552595972920+0000)\/", "ManualJournalID": "d312dd5e-a53e-46d1-9d51-c569ef4570b7", "Narration": "Foo bar", "JournalLines": [ { "Description": "Hello there", "TaxType": "NONE", "LineAmount": 100.00, "AccountCode": "400", "Tracking": [], "AccountID": "c4f29c22-28c2-4a13-9eab-ecbbd641ffdf", "IsBlank": false }, { "Description": "Goodbye", "TaxType": "NONE", "LineAmount": -100.00, "AccountCode": "400", "Tracking": [ { "Name": "Simpsons", "Option": "Bart", "TrackingCategoryID": "6a68adde-f210-4465-b0a9-0d8cc6f50762", "TrackingOptionID": "dc54c220-0140-495a-b925-3246adc0075f" } ], "AccountID": "c4f29c22-28c2-4a13-9eab-ecbbd641ffdf", "IsBlank": false } ], "ShowOnCashBasisReports": true, "Warnings": [ { "Message": "Account code ''476'' has been removed as it does not match a recognised account." } ], "ValidationErrors": [ { "Message": "The total debits (100.00) must equal total credits (-10.00)" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: ManualJournals array with ManualJournal object in body of request content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "ManualJournals": [ { "Narration": "Journal Desc", "JournalLines": [ { "LineAmount": 100, "AccountCode": "400", "Description": "Money Movement" }, { "LineAmount": -100, "AccountCode": "400", "Description": "Prepayment of things", "Tracking": [ { "Name": "North", "Option": "Region" } ] } ], "Date": "2019-03-14" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateOrCreateManualJournals summary: Updates or creates a single manual journal x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.of(2020, Month.OCTOBER, 10)" csharp: "new DateTime(2020, 10, 10)" php: "new DateTime('2020-10-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - manualJournalLines: is_list: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines - credit: is_object: true key: credit keyPascal: ManualJournalLine - lineAmount: nonString: true key: lineAmount keyPascal: LineAmount keySnake: line_amount default: 100.0 is_money: true object: credit - accountCode: key: accountCode keyPascal: AccountCode keySnake: account_code default: 400 object: credit - description: is_last: true key: description keyPascal: Description default: "Hello there" object: credit - add_credit: is_last: true is_list_add: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines object: credit - debit: is_object: true key: debit keyPascal: ManualJournalLine - lineAmount: nonString: true key: lineAmount keyPascal: LineAmount keySnake: line_amount default: -100.0 is_money: true object: debit - accountCode: key: accountCode keyPascal: AccountCode keySnake: account_code default: 120 object: debit - description: is_last: true key: description keyPascal: Description default: "Hello there" object: debit - add_debit: is_last: true is_list_add: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines object: debit - manualJournal: is_object: true key: manualJournal keyPascal: ManualJournal keySnake: manual_journal - narration: key: narration keyPascal: Narration default: Foobar object: manualJournal - date: is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: manualJournal - set_manualJournalLines: is_last: true is_variable: true nonString: true key: manualJournalLines keyPascal: JournalLines keySnake: journal_lines default: manualJournalLines python: manual_journal_lines ruby: manual_journal_lines object: manualJournal - manualJournals: is_object: true key: manualJournals keyPascal: ManualJournals - add_manualJournal: is_last: true is_array_add: true key: manualJournals keyPascal: ManualJournals keySnake: manual_journals java: ManualJournals php: manualJournals python: manual_journal ruby: manual_journal csharp: ManualJournal object: manualJournal parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type ManualJournals array with newly created ManualJournal content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "Id": "45dfa608-0fcb-4f30-a377-c82cd348569c", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552595972952)\/", "ManualJournals": [ { "Date": "\/Date(1552521600000+0000)\/", "Status": "DRAFT", "LineAmountTypes": "NoTax", "UpdatedDateUTC": "\/Date(1552595972920+0000)\/", "ManualJournalID": "d312dd5e-a53e-46d1-9d51-c569ef4570b7", "Narration": "Foo bar", "JournalLines": [ { "Description": "Hello there", "TaxType": "NONE", "LineAmount": 100.00, "AccountCode": "400", "Tracking": [], "AccountID": "c4f29c22-28c2-4a13-9eab-ecbbd641ffdf", "IsBlank": false }, { "Description": "Goodbye", "TaxType": "NONE", "LineAmount": -100.00, "AccountCode": "400", "Tracking": [ { "Name": "Simpsons", "Option": "Bart", "TrackingCategoryID": "6a68adde-f210-4465-b0a9-0d8cc6f50762", "TrackingOptionID": "dc54c220-0140-495a-b925-3246adc0075f" } ], "AccountID": "c4f29c22-28c2-4a13-9eab-ecbbd641ffdf", "IsBlank": false } ], "ShowOnCashBasisReports": true, "Warnings": [ { "Message": "Account code ''476'' has been removed as it does not match a recognised account." } ], "ValidationErrors": [ { "Message": "The total debits (100.00) must equal total credits (-10.00)" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: ManualJournals array with ManualJournal object in body of request content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "ManualJournals": [ { "Narration": "Journal Desc", "JournalLines": [ { "LineAmount": 100, "AccountCode": "400", "Description": "Money Movement" }, { "LineAmount": -100, "AccountCode": "400", "Description": "Prepayment of things", "Tracking": [ { "Name": "North", "Option": "Region" } ] } ], "Date": "2019-03-14" } ] }' '/ManualJournals/{ManualJournalID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getManualJournal summary: Retrieves a specific manual journal parameters: - $ref: '#/components/parameters/ManualJournalID' responses: '200': description: Success - return response of type ManualJournals array with a specified ManualJournals content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "Id": "7321fc21-1a13-4f40-ae47-df59cff5676d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552399859139)\/", "ManualJournals": [ { "Date": "\/Date(1552348800000+0000)\/", "Status": "POSTED", "LineAmountTypes": "NoTax", "UpdatedDateUTC": "\/Date(1552357188147+0000)\/", "ManualJournalID": "99cb8353-ce73-4a5d-8e0d-8b0edf86cfc4", "Narration": "These aren''t the droids you are looking for", "JournalLines": [ { "Description": "These aren''t the droids you are looking for", "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 100.00, "AccountCode": "429", "Tracking": [], "AccountID": "160bad11-c1b7-4c7e-8903-dca925d78721", "IsBlank": false }, { "Description": "Yes the are", "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": -100.00, "AccountCode": "200", "Tracking": [], "AccountID": "e0a5d892-9f9f-44f0-a153-5cb7db125170", "IsBlank": false } ], "ShowOnCashBasisReports": true, "HasAttachments": true, "Attachments": [ { "AttachmentID": "166ca8f8-8bc6-4780-8466-a0e474d586ea", "FileName": "giphy.gif", "Url": "https://api.xero.com/api.xro/2.0/manualjournal/99cb8353-ce73-4a5d-8e0d-8b0edf86cfc4/Attachments/giphy.gif", "MimeType": "image/gif", "ContentLength": 495727 }, { "AttachmentID": "5e5036f9-b1e0-4c5d-a93f-61900137e40b", "FileName": "ridehistory.pdf", "Url": "https://api.xero.com/api.xro/2.0/manualjournal/99cb8353-ce73-4a5d-8e0d-8b0edf86cfc4/Attachments/ridehistory.pdf", "MimeType": "application/pdf", "ContentLength": 4423 } ] } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateManualJournal summary: Updates a specific manual journal x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.of(2020, Month.OCTOBER, 10)" csharp: "new DateTime(2020, 10, 10)" php: "new DateTime('2020-10-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - manualJournalLines: is_list: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines - credit: is_object: true key: credit keyPascal: ManualJournalLine - lineAmount: nonString: true key: lineAmount keyPascal: LineAmount keySnake: line_amount default: 100.0 is_money: true object: credit - accountCode: key: accountCode keyPascal: AccountCode keySnake: account_code default: 400 object: credit - description: is_last: true key: description keyPascal: Description default: "Hello there" object: credit - add_credit: is_last: true is_list_add: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines object: credit - debit: is_object: true key: debit keyPascal: ManualJournalLine - lineAmount: nonString: true key: lineAmount keyPascal: LineAmount keySnake: line_amount default: -100.0 is_money: true object: debit - accountCode: key: accountCode keyPascal: AccountCode keySnake: account_code default: 120 object: debit - description: is_last: true key: description keyPascal: Description default: "Hello there" object: debit - add_debit: is_last: true is_list_add: true key: manualJournalLines keyPascal: ManualJournalLine keySnake: manual_journal_lines object: debit - manualJournal: is_object: true key: manualJournal keyPascal: ManualJournal keySnake: manual_journal - narration: key: narration keyPascal: Narration default: Foobar object: manualJournal - date: is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: manualJournal - set_manualJournalLines: is_last: true is_variable: true nonString: true key: manualJournalLines keyPascal: JournalLines keySnake: journal_lines default: manualJournalLines python: manual_journal_lines ruby: manual_journal_lines object: manualJournal - manualJournals: is_object: true key: manualJournals keyPascal: ManualJournals - add_manualJournal: is_last: true is_array_add: true key: manualJournals keyPascal: ManualJournals keySnake: manual_journals java: ManualJournals php: manualJournals python: manual_journal ruby: manual_journal csharp: ManualJournal object: manualJournal parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ManualJournalID' responses: '200': description: Success - return response of type ManualJournals array with an updated ManualJournal content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "Id": "b694559c-686c-4047-b657-661ba6c0dd1f", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552357736850)\/", "ManualJournals": [ { "Date": "\/Date(1552262400000+0000)\/", "Status": "DRAFT", "LineAmountTypes": "NoTax", "UpdatedDateUTC": "\/Date(1552357736820+0000)\/", "ManualJournalID": "07eac261-78ef-47a0-a0eb-a57b74137877", "Narration": "Hello Xero", "JournalLines": [ { "Description": "Hello there", "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 100.00, "AccountCode": "400", "Tracking": [], "AccountID": "c4f29c22-28c2-4a13-9eab-ecbbd641ffdf", "IsBlank": false }, { "Description": "Goodbye", "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": -100.00, "AccountCode": "400", "Tracking": [], "AccountID": "c4f29c22-28c2-4a13-9eab-ecbbd641ffdf", "IsBlank": false } ], "ShowOnCashBasisReports": true, "HasAttachments": false, "Attachments": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ManualJournals' example: '{ "ManualJournals": [ { "Narration": "Hello Xero", "ManualJournalID": "00000000-0000-0000-0000-000000000000", "JournalLines": [] } ] }' '/ManualJournals/{ManualJournalID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getManualJournalAttachments summary: Retrieves attachment for a specific manual journal parameters: - $ref: '#/components/parameters/ManualJournalID' responses: '200': description: Success - return response of type Attachments array with all Attachments for a ManualJournals x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "5fa4b3ef-7945-45a7-9bab-10e830673dfb", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552404121471)\/", "Attachments": [ { "AttachmentID": "16e86f32-3e25-4209-8662-c0dfd91b654c", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/ManualJournals/0b159335-606b-485f-b51b-97b3b32bad32/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "ff7c439e-a057-4807-ac2c-b558d7df7511", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/ManualJournals/0b159335-606b-485f-b51b-97b3b32bad32/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '/ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getManualJournalAttachmentById summary: Allows you to retrieve a specific attachment from a specific manual journal using a unique attachment Id parameters: - $ref: '#/components/parameters/ManualJournalID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Manual Journal as binary data content: application/octet-stream: schema: type: string format: binary '/ManualJournals/{ManualJournalID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getManualJournalAttachmentByFileName summary: Retrieves a specific attachment from a specific manual journal by file name parameters: - $ref: '#/components/parameters/ManualJournalID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Manual Journal as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateManualJournalAttachmentByFileName x-hasAccountingValidationError: true summary: Updates a specific attachment from a specific manual journal by file name parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ManualJournalID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with an update Attachment for a ManualJournals x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "e1cb9deb-a8f0-477f-b4d1-cf0c6c39e080", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552401039306)\/", "Attachments": [ { "AttachmentID": "16e86f32-3e25-4209-8662-c0dfd91b654c", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/ManualJournals/0b159335-606b-485f-b51b-97b3b32bad32/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createManualJournalAttachmentByFileName x-hasAccountingValidationError: true summary: Creates a specific attachment for a specific manual journal by file name parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ManualJournalID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with a newly created Attachment for a ManualJournals x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "a864994c-e7d7-4dee-b5ca-0a729fde2f39", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552400898428)\/", "Attachments": [ { "AttachmentID": "47ac97ff-d4f9-48a0-8a8e-49fae29129e7", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/ManualJournals/0b159335-606b-485f-b51b-97b3b32bad32/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/ManualJournals/{ManualJournalID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getManualJournalsHistory summary: Retrieves history for a specific manual journal parameters: - $ref: '#/components/parameters/ManualJournalID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createManualJournalHistoryRecord summary: Creates a history record for a specific manual journal x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ManualJournalID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' /Organisation: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getOrganisations summary: Retrieves Xero organisation details responses: '200': description: Success - return response of type Organisation array with all Organisation content: application/json: schema: $ref: '#/components/schemas/Organisations' example: '{ "Id": "27b7a645-a3ee-43c8-b2c6-a2fa7b84c8c5", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552404447003)\/", "Organisations": [ { "APIKey": "CTJ60UH519MXQIXEJSDPDALS3EOZ5Y", "Name": "Dev Evangelist - Sid Test 3 (NZ-2016-02)", "LegalName": "Dev Evangelist - Sid Test 3 (NZ-2016-02)", "PaysTax": true, "Version": "NZ", "OrganisationType": "COMPANY", "BaseCurrency": "NZD", "CountryCode": "NZ", "IsDemoCompany": false, "OrganisationStatus": "ACTIVE", "TaxNumber": "071-138-054", "FinancialYearEndDay": 31, "FinancialYearEndMonth": 3, "SalesTaxBasis": "PAYMENTS", "SalesTaxPeriod": "TWOMONTHS", "DefaultSalesTax": "Tax Exclusive", "DefaultPurchasesTax": "Tax Exclusive", "PeriodLockDate": "\/Date(1546214400000+0000)\/", "EndOfYearLockDate": "\/Date(1546214400000+0000)\/", "CreatedDateUTC": "\/Date(1455827393000)\/", "OrganisationEntityType": "COMPANY", "Timezone": "NEWZEALANDSTANDARDTIME", "ShortCode": "!mBdtL", "OrganisationID": "b2c885a9-4bb9-4a00-9b6e-6c2bf60b1a2b", "Edition": "BUSINESS", "Class": "PREMIUM", "Addresses": [], "Phones": [], "ExternalLinks": [], "PaymentTerms": {} } ] }' '/Organisation/Actions': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getOrganisationActions summary: Retrieves a list of the key actions your app has permission to perform in the connected Xero organisation. responses: '200': description: Success - return response of type Actions array with all key actions content: application/json: schema: $ref: '#/components/schemas/Actions' example: '{ "Id": "f02c0dd1-1917-4d57-9853-997f6bcaf2bc", "Status": "OK", "ProviderName": "Java OA2 dev 01", "DateTimeUTC": "/Date(1602883301013)/", "Actions": [ { "Name": "CreateApprovedInvoice", "Status": "ALLOWED" }, { "Name": "CreateDraftPurchaseOrder", "Status": "ALLOWED" }, { "Name": "CreateApprovedBill", "Status": "ALLOWED" }, { "Name": "AttachFilesIntoInvoice", "Status": "ALLOWED" }, { "Name": "UseMulticurrency", "Status": "ALLOWED" }, { "Name": "CreateDraftInvoice", "Status": "ALLOWED" }, { "Name": "CreateRepeatingInvoice", "Status": "ALLOWED" }, { "Name": "CreateRepeatingBill", "Status": "ALLOWED" }, { "Name": "CreateSentQuote", "Status": "ALLOWED" }, { "Name": "CreateInvoicePayment", "Status": "ALLOWED" }, { "Name": "CreateApprovedPurchaseOrder", "Status": "ALLOWED" }, { "Name": "CreateDraftQuote", "Status": "ALLOWED" }, { "Name": "CreateDraftBill", "Status": "ALLOWED" } ] }' '/Organisation/{OrganisationID}/CISSettings': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getOrganisationCISSettings summary: Retrieves the CIS settings for the Xero organistaion. parameters: - $ref: '#/components/parameters/OrganisationID' responses: '200': description: Success - return response of type Organisation array with specified Organisation content: application/json: schema: $ref: '#/components/schemas/CISOrgSettings' /Overpayments: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getOverpayments summary: Retrieves overpayments parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="AUTHORISED" x-example-csharp: Status==\"AUTHORISED\" x-example-java: Status=="' + Overpayment.StatusEnum.AUTHORISED + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Overpayment::STATUS_AUTHORISED . '" x-example-ruby: Status==#{XeroRuby::Accounting::Overpayment::AUTHORISED} schema: type: string - in: query name: order description: Order by an any element example: "Status ASC" schema: type: string - in: query name: page description: e.g. page=1 – Up to 100 overpayments will be returned in a single API call with line items shown for each overpayment example: 1 schema: type: integer - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Overpayments array with all Overpayments content: application/json: schema: $ref: '#/components/schemas/Overpayments' example: '{ "Id": "c0ce675e-e5bc-4b2a-a20e-76a9eaedf89d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552428951416)\/", "Overpayments": [ { "OverpaymentID": "098b4dcb-5622-4699-87f8-9d40c4ccceb3", "ID": "098b4dcb-5622-4699-87f8-9d40c4ccceb3", "Type": "SPEND-OVERPAYMENT", "RemainingCredit": 500.00, "Allocations": [], "Payments": [], "HasAttachments": false, "Contact": { "ContactID": "af3ffcc1-c578-4658-82f3-5d8d458cc7af", "Name": "Daddy Warbucks", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-12T00:00:00", "Date": "\/Date(1552348800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 500.00, "TotalTax": 0.00, "Total": 500.00, "UpdatedDateUTC": "\/Date(1552428535123+0000)\/", "CurrencyCode": "NZD" }, { "OverpaymentID": "2a8bda49-8908-473b-8bcf-1f90990460eb", "ID": "2a8bda49-8908-473b-8bcf-1f90990460eb", "Type": "RECEIVE-OVERPAYMENT", "RemainingCredit": 20.00, "Allocations": [], "Payments": [], "HasAttachments": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 20.00, "TotalTax": 0.00, "Total": 20.00, "UpdatedDateUTC": "\/Date(1552428568250+0000)\/", "CurrencyCode": "NZD" }, { "OverpaymentID": "ed7f6041-c915-4667-bd1d-54c48e92161e", "ID": "ed7f6041-c915-4667-bd1d-54c48e92161e", "Type": "SPEND-OVERPAYMENT", "RemainingCredit": 3000.00, "Allocations": [], "Payments": [], "HasAttachments": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-12T00:00:00", "Date": "\/Date(1552348800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 3000.00, "TotalTax": 0.00, "Total": 3000.00, "UpdatedDateUTC": "\/Date(1552428781527+0000)\/", "CurrencyCode": "NZD" }, { "OverpaymentID": "0859adbc-ea00-40cd-a877-258cf8644975", "ID": "0859adbc-ea00-40cd-a877-258cf8644975", "Type": "RECEIVE-OVERPAYMENT", "RemainingCredit": 20.00, "Allocations": [], "Payments": [], "HasAttachments": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 20.00, "TotalTax": 0.00, "Total": 20.00, "UpdatedDateUTC": "\/Date(1552428842190+0000)\/", "CurrencyCode": "NZD" }, { "OverpaymentID": "687b877f-634a-415d-92b2-74e62977de30", "ID": "687b877f-634a-415d-92b2-74e62977de30", "Type": "RECEIVE-OVERPAYMENT", "RemainingCredit": 20.00, "Allocations": [], "Payments": [], "HasAttachments": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 20.00, "TotalTax": 0.00, "Total": 20.00, "UpdatedDateUTC": "\/Date(1552428950730+0000)\/", "CurrencyCode": "NZD" } ] }' '/Overpayments/{OverpaymentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getOverpayment summary: Retrieves a specific overpayment using a unique overpayment Id parameters: - $ref: '#/components/parameters/OverpaymentID' responses: '200': description: Success - return response of type Overpayments array with specified Overpayments content: application/json: schema: $ref: '#/components/schemas/Overpayments' example: ' { "Id": "46c9e8e2-9410-4e75-9297-f0ca8fa76c32", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553278835158)\/", "Overpayments": [ { "OverpaymentID": "ed7f6041-c915-4667-bd1d-54c48e92161e", "ID": "ed7f6041-c915-4667-bd1d-54c48e92161e", "CurrencyRate": 1.000000, "Type": "SPEND-OVERPAYMENT", "RemainingCredit": 2999.00, "Allocations": [ { "Amount": 1.00, "Date": "\/Date(1552348800000+0000)\/", "Invoice": { "InvoiceID": "c45720a1-ade3-4a38-a064-d15489be6841", "InvoiceNumber": "", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] } } ], "Payments": [], "HasAttachments": true, "Attachments": [ { "AttachmentID": "247dd942-5245-47a7-adb1-4d9ea075b431", "FileName": "giphy.gif", "Url": "https://api.xero.com/api.xro/2.0/banktransaction/ed7f6041-c915-4667-bd1d-54c48e92161e/Attachments/giphy.gif", "MimeType": "image/gif", "ContentLength": 495727 } ], "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-12T00:00:00", "Date": "\/Date(1552348800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "NoTax", "LineItems": [ { "Description": "Broken TV deposit", "UnitAmount": 3000.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 3000.00, "AccountCode": "800", "Tracking": [], "Quantity": 1.0000, "DiscountEnteredAsPercent": true, "ValidationErrors": [] } ], "SubTotal": 3000.00, "TotalTax": 0.00, "Total": 3000.00, "UpdatedDateUTC": "\/Date(1552428952890+0000)\/", "CurrencyCode": "NZD" } ] }' '/Overpayments/{OverpaymentID}/Allocations': parameters: - $ref: '#/components/parameters/requiredHeader' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createOverpaymentAllocations summary: Creates a single allocation for a specific overpayment x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - invoice: is_object: true key: invoice keyPascal: Invoice - invoiceID: is_last: true is_uuid: true key: invoiceID keyPascal: InvoiceID keySnake: invoice_id default: 00000000-0000-0000-0000-000000000000 object: invoice - allocation: is_object: true key: allocation keyPascal: Allocation - amount: nonString: true key: amount keyPascal: Amount default: 1.0 is_money: true object: allocation - date: is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: allocation - set_invoice: is_last: true is_variable: true nonString: true key: invoice keyPascal: Invoice default: invoice object: allocation - allocations: is_object: true key: allocations keyPascal: Allocations - add_allocation: is_last: true is_array_add: true key: allocations keyPascal: Allocations java: Allocations csharp: Allocation object: allocation parameters: - $ref: '#/components/parameters/OverpaymentID' - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Allocations array with all Allocation for Overpayments content: application/json: schema: $ref: '#/components/schemas/Allocations' example: '{ "Id": "3b7f7be2-384a-4703-bcfb-c56e9116c914", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552428952968)\/", "Allocations": [ { "Amount": 1.00, "Date": "\/Date(1552348800000+0000)\/", "Invoice": { "InvoiceID": "c45720a1-ade3-4a38-a064-d15489be6841", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [], "ValidationErrors": [] }, "Overpayment": { "OverpaymentID": "ed7f6041-c915-4667-bd1d-54c48e92161e", "ID": "ed7f6041-c915-4667-bd1d-54c48e92161e", "LineItems": [] }, "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Allocations array with Allocation object in body of request content: application/json: schema: $ref: '#/components/schemas/Allocations' example: '{ "Allocations": [ { "Invoice": { "InvoiceID": "00000000-0000-0000-0000-000000000000", "LineItems": [], "Contact": {}, "Type": "ACCPAY" }, "Amount": 10.00, "Date": "2019-03-12" } ] }' '/Overpayments/{OverpaymentID}/Allocations/{AllocationID}': parameters: - $ref: '#/components/parameters/requiredHeader' delete: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: deleteOverpaymentAllocations summary: Deletes an Allocation from an overpayment parameters: - $ref: '#/components/parameters/OverpaymentID' - $ref: '#/components/parameters/AllocationID' responses: '200': description: Success - return response of type Allocation with the isDeleted flag as true content: application/json: schema: $ref: '#/components/schemas/Allocation' example: '{ "AllocationId": "2bb15054-3868-4f85-a9c6-0402ec8c1201", "Date": "\/Date(1551822670731)\/", "Invoice": [ { "InvoiceID": "b7eb1fc9-a0f9-4e8e-9373-6689f5350832", } ], "IsDeleted": true, }' '/Overpayments/{OverpaymentID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getOverpaymentHistory summary: Retrieves history records of a specific overpayment parameters: - $ref: '#/components/parameters/OverpaymentID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createOverpaymentHistory summary: Creates a history record for a specific overpayment x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/OverpaymentID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': description: A failed request due to validation error - API is not able to create HistoryRecord for Overpayments content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "DateUTCString": "2019-03-12T22:30:13", "DateUTC": "\/Date(1552429813667)\/", "Details": "Hello World", "ValidationErrors": [ { "Message": "The document with the supplied id was not found for this endpoint." } ] } ] }' requestBody: $ref: '#/components/requestBodies/historyRecords' /Payments: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPayments summary: Retrieves payments for invoices and credit notes parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="AUTHORISED" x-example-csharp: Status==\"AUTHORISED\" x-example-java: Status=="' + Payment.StatusEnum.AUTHORISED + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Payment::STATUS_AUTHORISED . '" x-example-ruby: Status==#{XeroRuby::Accounting::Payment::AUTHORISED} schema: type: string - in: query name: order description: Order by an any element example: "Amount ASC" schema: type: string - in: query name: page description: Up to 100 payments will be returned in a single API call example: 1 schema: type: integer responses: '200': description: Success - return response of type Payments array for all Payments content: application/json: schema: $ref: '#/components/schemas/Payments' example: '{ "Id": "9f310473-e1b5-4704-a25c-eec653deb596", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552431874205)\/", "Payments": [ { "PaymentID": "99ea7f6b-c513-4066-bc27-b7c65dcd76c2", "BatchPaymentID": "b54aa50c-794c-461b-89d1-846e1b84d9c0", "BatchPayment": { "Account": { "AccountID": "5690f1e8-1d02-4893-90c2-ee1a69eff942" }, "BatchPaymentID": "b54aa50c-794c-461b-89d1-846e1b84d9c0", "Date": "\/Date(1552521600000+0000)\/", "Type": "RECBATCH", "Status": "AUTHORISED", "TotalAmount": "50.00", "UpdatedDateUTC": "\/Date(1541176592690+0000)\/", "IsReconciled": "false" }, "Date": "\/Date(1543449600000+0000)\/", "BankAmount": 46.00, "Amount": 46.00, "Reference": "", "CurrencyRate": 1.000000, "PaymentType": "ACCRECPAYMENT", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1541176592690+0000)\/", "HasAccount": true, "IsReconciled": false, "Account": { "AccountID": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Code": "970" }, "Invoice": { "Type": "ACCREC", "InvoiceID": "046d8a6d-1ae1-4b4d-9340-5601bdf41b87", "InvoiceNumber": "INV-0002", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "ContactNumber": "", "Name": "Barney Rubble-83203", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "LineItems": [], "CurrencyCode": "NZD" }, "HasValidationErrors": false }, { "PaymentID": "6b037c9b-2e5d-4905-84d3-eabfb3438242", "Date": "\/Date(1552521600000+0000)\/", "BankAmount": 2.00, "Amount": 2.00, "Reference": "Too much", "CurrencyRate": 1.000000, "PaymentType": "ARCREDITPAYMENT", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1551812346173+0000)\/", "HasAccount": true, "IsReconciled": false, "Account": { "AccountID": "136ebd08-60ea-4592-8982-be92c153b53a", "Code": "980" }, "Invoice": { "Type": "ACCRECCREDIT", "InvoiceID": "249f15fa-f2a7-4acc-8769-0984103f2225", "InvoiceNumber": "CN-0005", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactNumber": "", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "LineItems": [], "CurrencyCode": "NZD" }, "HasValidationErrors": false } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createPayments summary: Creates multiple payments for invoices or credit notes x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-10-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-10-10T00:00:00Z')" ruby: "'YYYY-MM-DD'" - invoice: is_object: true key: invoice keyPascal: Invoice - invoiceID: is_last: true is_uuid: true key: invoiceID keyPascal: InvoiceID keySnake: invoice_id default: 00000000-0000-0000-0000-000000000000 object: invoice - account: is_object: true key: account keyPascal: Account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: account - payment: is_object: true key: payment keyPascal: Payment - set_invoice: is_variable: true nonString: true key: invoice keyPascal: Invoice default: invoice object: payment - set_account: is_variable: true nonString: true key: account keyPascal: Account default: account object: payment - amount: nonString: true key: amount keyPascal: Amount default: 1.0 is_money: true object: payment - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: payment - payments: is_object: true key: payments keyPascal: Payments - add_payment: is_last: true is_array_add: true key: payments keyPascal: Payments java: Payments csharp: Payment object: payment parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Payments array for newly created Payment content: application/json: schema: $ref: '#/components/schemas/Payments' example: '{ "Id": "83b5715a-6a77-4c16-b5b8-2da08b5fde44", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552432238716)\/", "Payments": [ { "PaymentID": "61ed71fc-01bf-4eb8-8419-8a18789ff45f", "Date": "\/Date(1552348800000+0000)\/", "BankAmount": 1.00, "Amount": 1.00, "CurrencyRate": 1.000000, "PaymentType": "ACCRECPAYMENT", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1552432238623+0000)\/", "HasAccount": true, "IsReconciled": false, "Account": { "AccountID": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Code": "970", "Name": "Owner A Funds Introduced" }, "Invoice": { "Type": "ACCREC", "InvoiceID": "c7c37b83-ac95-45ea-88ba-8ad83a5f22fe", "InvoiceNumber": "INV-0004", "Reference": "", "Prepayments": [], "Overpayments": [], "AmountDue": 229.00, "AmountPaid": 1.00, "SentToContact": false, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "Name": "Barney Rubble-83203", "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2018-10-10T00:00:00", "Date": "\/Date(1539129600000+0000)\/", "DueDateString": "2018-10-18T00:00:00", "DueDate": "\/Date(1539820800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "boo", "UnitAmount": 200.00, "TaxType": "OUTPUT2", "TaxAmount": 30.00, "LineAmount": 200.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "173dfdb9-43b5-4bd2-ae25-9419e662a3a7", "ValidationErrors": [] } ], "SubTotal": 200.00, "TotalTax": 30.00, "Total": 230.00, "UpdatedDateUTC": "\/Date(1552432238623+0000)\/", "CurrencyCode": "NZD" }, "HasValidationErrors": true, "ValidationErrors": [ { "Message": "Payment amount exceeds the amount outstanding on this document" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Payments array with Payment object in body of request content: application/json: schema: $ref: '#/components/schemas/Payments' example: '{ "Payments": [ { "Invoice": { "LineItems": [], "InvoiceID": "00000000-0000-0000-0000-000000000000" }, "Account": { "Code": "970" }, "Date": "2019-03-12", "Amount": 1 } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createPayment summary: Creates a single payment for invoice or credit notes parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-10-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-10-10T00:00:00Z')" ruby: "'YYYY-MM-DD'" - invoice: is_object: true key: invoice keyPascal: Invoice - invoiceID: is_last: true is_uuid: true key: invoiceID keyPascal: InvoiceID keySnake: invoice_id default: 00000000-0000-0000-0000-000000000000 object: invoice - account: is_object: true key: account keyPascal: Account - accountID: is_last: true is_uuid: true key: accountID keyPascal: AccountID keySnake: account_id default: 00000000-0000-0000-0000-000000000000 object: account - payment: is_object: true key: payment keyPascal: Payment - set_invoice: is_variable: true nonString: true key: invoice keyPascal: Invoice default: invoice object: payment - set_account: is_variable: true nonString: true key: account keyPascal: Account default: account object: payment - amount: nonString: true key: amount keyPascal: Amount default: 1.0 is_money: true object: payment - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: payment - payments: is_object: true key: payments keyPascal: Payments - add_payment: is_last: true is_array_add: true key: payments keyPascal: Payments java: Payments csharp: Payment object: payment responses: '200': description: Success - return response of type Payments array for newly created Payment content: application/json: schema: $ref: '#/components/schemas/Payments' example: '{ "Id": "83b5715a-6a77-4c16-b5b8-2da08b5fde44", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552432238716)\/", "Payments": [ { "PaymentID": "61ed71fc-01bf-4eb8-8419-8a18789ff45f", "Date": "\/Date(1552348800000+0000)\/", "BankAmount": 1.00, "Amount": 1.00, "CurrencyRate": 1.000000, "PaymentType": "ACCRECPAYMENT", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1552432238623+0000)\/", "HasAccount": true, "IsReconciled": false, "Account": { "AccountID": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Code": "970", "Name": "Owner A Funds Introduced" }, "Invoice": { "Type": "ACCREC", "InvoiceID": "c7c37b83-ac95-45ea-88ba-8ad83a5f22fe", "InvoiceNumber": "INV-0004", "Reference": "", "Prepayments": [], "Overpayments": [], "AmountDue": 229.00, "AmountPaid": 1.00, "SentToContact": false, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "Name": "Barney Rubble-83203", "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2018-10-10T00:00:00", "Date": "\/Date(1539129600000+0000)\/", "DueDateString": "2018-10-18T00:00:00", "DueDate": "\/Date(1539820800000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "boo", "UnitAmount": 200.00, "TaxType": "OUTPUT2", "TaxAmount": 30.00, "LineAmount": 200.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "173dfdb9-43b5-4bd2-ae25-9419e662a3a7", "ValidationErrors": [] } ], "SubTotal": 200.00, "TotalTax": 30.00, "Total": 230.00, "UpdatedDateUTC": "\/Date(1552432238623+0000)\/", "CurrencyCode": "NZD" }, "HasValidationErrors": true, "ValidationErrors": [ { "Message": "Payment amount exceeds the amount outstanding on this document" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Request body with a single Payment object content: application/json: schema: $ref: '#/components/schemas/Payment' example: '{ "Payments": [ { "Invoice": { "LineItems": [], "InvoiceID": "00000000-0000-0000-0000-000000000000" }, "Account": { "Code": "970" }, "Date": "2019-03-12", "Amount": 1 } ] }' '/Payments/{PaymentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPayment summary: Retrieves a specific payment for invoices and credit notes using a unique payment Id parameters: - $ref: '#/components/parameters/PaymentID' responses: '200': description: Success - return response of type Payments array for specified Payment content: application/json: schema: $ref: '#/components/schemas/Payments' example: '{ "Id": "4876f9ee-3a17-47d8-8c1b-84377c8f2998", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552431874852)\/", "Payments": [ { "PaymentID": "99ea7f6b-c513-4066-bc27-b7c65dcd76c2", "BatchPaymentID": "b54aa50c-794c-461b-89d1-846e1b84d9c0", "BatchPayment": { "Account": { "AccountID": "5690f1e8-1d02-4893-90c2-ee1a69eff942" }, "BatchPaymentID": "b54aa50c-794c-461b-89d1-846e1b84d9c0", "Date": "\/Date(1543449600000+0000)\/", "Type": "RECBATCH", "Status": "AUTHORISED", "TotalAmount": "50.00", "UpdatedDateUTC": "\/Date(1541176592690+0000)\/", "IsReconciled": "false" }, "Date": "\/Date(1543449600000+0000)\/", "BankAmount": 46.00, "Amount": 46.00, "CurrencyRate": 1.000000, "PaymentType": "ACCRECPAYMENT", "Status": "AUTHORISED", "UpdatedDateUTC": "\/Date(1541176592690+0000)\/", "HasAccount": true, "IsReconciled": false, "Account": { "AccountID": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Code": "970", "Name": "Owner A Funds Introduced" }, "Invoice": { "Type": "ACCREC", "InvoiceID": "046d8a6d-1ae1-4b4d-9340-5601bdf41b87", "InvoiceNumber": "INV-0002", "Reference": "Red Fish, Blue Fish", "Payments": [ { "PaymentID": "99ea7f6b-c513-4066-bc27-b7c65dcd76c2", "Date": "\/Date(1543449600000+0000)\/", "Amount": 46.00, "CurrencyRate": 1.000000, "HasAccount": false, "HasValidationErrors": false } ], "Prepayments": [], "Overpayments": [], "AmountDue": 0.00, "AmountPaid": 46.00, "SentToContact": true, "CurrencyRate": 1.000000, "HasErrors": false, "IsDiscounted": false, "Contact": { "ContactID": "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7", "Name": "Barney Rubble-83203", "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2018-10-20T00:00:00", "Date": "\/Date(1539993600000+0000)\/", "DueDateString": "2018-12-30T00:00:00", "DueDate": "\/Date(1546128000000+0000)\/", "Status": "PAID", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Acme Tires", "UnitAmount": 20.00, "TaxType": "OUTPUT2", "TaxAmount": 6.00, "LineAmount": 40.00, "AccountCode": "200", "Tracking": [], "Quantity": 2.0000, "LineItemID": "878d1688-a905-4866-ae91-5a772c2540c7", "ValidationErrors": [] } ], "SubTotal": 40.00, "TotalTax": 6.00, "Total": 46.00, "UpdatedDateUTC": "\/Date(1541176592690+0000)\/", "CurrencyCode": "NZD", "FullyPaidOnDate": "\/Date(1543449600000+0000)\/" }, "HasValidationErrors": false } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: deletePayment summary: Updates a specific payment for invoices and credit notes x-hasAccountingValidationError: true x-example: - paymentDelete: is_object: true key: paymentDelete keyPascal: PaymentDelete - status: is_last: true key: status keyPascal: Status default: DELETED object: paymentDelete parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/PaymentID' responses: '200': description: Success - return response of type Payments array for updated Payment content: application/json: schema: $ref: '#/components/schemas/Payments' example: '{ "Id": "ee23328c-4a8b-4ee7-8fb6-9796ffab9cb0", "Status": "OK", "ProviderName": "provider-name", "DateTimeUTC": "\/Date(1583945852489)\/", "Payments": [ { "PaymentID": "c94c996b-1ab3-4ff3-ad19-1cdc77f30817", "Date": "\/Date(1567382400000+0000)\/", "BankAmount": 2.00, "Amount": 2.00, "Reference": "foobar", "CurrencyRate": 1.000000, "PaymentType": "APCREDITPAYMENT", "Status": "DELETED", "UpdatedDateUTC": "\/Date(1583945852373+0000)\/", "HasAccount": true, "IsReconciled": false, "Account": { "AccountID": "57f261f0-e32d-4a7f-be82-22cd992c6367", "Code": "033", "Name": "Checking account" }, "Invoice": { "Type": "ACCPAYCREDIT", "InvoiceID": "dba68ebc-c05a-4e2d-b97d-964349e5b8d6", "InvoiceNumber": "", "Reference": "", "Prepayments": [], "Overpayments": [], "AmountDue": 22.00, "AmountPaid": 0.00, "SentToContact": false, "CurrencyRate": 1.000000, "IsDiscounted": false, "HasErrors": false, "Contact": { "ContactID": "216830cb-9a68-487e-928b-c1a7ccc4fc81", "Name": "FooBar73005", "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2017-01-02T00:00:00", "Date": "\/Date(1483315200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Sample Item72716", "UnitAmount": 20.00, "TaxType": "INPUT", "TaxAmount": 2.00, "LineAmount": 20.00, "AccountCode": "400", "Tracking": [], "Quantity": 1.0000, "ValidationErrors": [] } ], "SubTotal": 20.00, "TotalTax": 2.00, "Total": 22.00, "UpdatedDateUTC": "\/Date(1583945852363+0000)\/", "CurrencyCode": "AUD" }, "HasValidationErrors": false } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentDelete' example: '{ "Payments":[ { "Status":"DELETED" } ] }' '/Payments/{PaymentID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPaymentHistory summary: Retrieves history records of a specific payment parameters: - $ref: '#/components/parameters/PaymentID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createPaymentHistory summary: Creates a history record for a specific payment x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/PaymentID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': description: A failed request due to validation error - API is not able to create HistoryRecord for Payments content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "DateUTCString": "2019-03-12T22:30:13", "DateUTC": "\/Date(1552429813667)\/", "Details": "Hello World", "ValidationErrors": [ { "Message": "The document with the supplied id was not found for this endpoint." } ] } ] }' requestBody: $ref: '#/components/requestBodies/historyRecords' /PaymentServices: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [paymentservices] tags: - Accounting operationId: getPaymentServices summary: Retrieves payment services x-excludeFromPreview: true responses: '200': description: Success - return response of type PaymentServices array for all PaymentService content: application/json: schema: $ref: '#/components/schemas/PaymentServices' example: '{ "Id": "ab82a7dd-5070-4e82-b841-0af52909fe04", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552488713171)\/", "PaymentServices": [ { "PaymentServiceID": "54b3b4f6-0443-4fba-bcd1-61ec0c35ca55", "PaymentServiceName": "PayUpNow", "PaymentServiceUrl": "https://www.payupnow.com/", "PaymentServiceType": "Custom", "PayNowText": "Time To Pay" } ] }' put: security: - OAuth2: [paymentservices] tags: - Accounting operationId: createPaymentService summary: Creates a payment service parameters: - $ref: '#/components/parameters/idempotencyKey' x-excludeFromPreview: true x-hasAccountingValidationError: true x-example: - object: is_object: true key: paymentService keyPascal: PaymentService keySnake: payment_service - paymentServiceName: key: paymentServiceName keyPascal: PaymentServiceName keySnake: payment_service_name default: ACME Payments object: paymentService - paymentServiceUrl: key: paymentServiceUrl keyPascal: PaymentServiceUrl keySnake: payment_service_url default: "https://www.payupnow.com/" object: paymentService - payNowText: is_last: true key: payNowText keyPascal: PayNowText keySnake: pay_now_text default: Pay Now object: paymentService - paymentServices: is_object: true key: paymentServices keyPascal: PaymentServices - add_paymentService: is_last: true is_array_add: true key: paymentServices keyPascal: PaymentServices java: PaymentServices csharp: PaymentService object: paymentService responses: '200': description: Success - return response of type PaymentServices array for newly created PaymentService content: application/json: schema: $ref: '#/components/schemas/PaymentServices' example: '{ "Id": "7ed8b3c0-2155-49ee-a583-f2dce6607dfb", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552488712813)\/", "PaymentServices": [ { "PaymentServiceID": "54b3b4f6-0443-4fba-bcd1-61ec0c35ca55", "PaymentServiceName": "PayUpNow", "PaymentServiceUrl": "https://www.payupnow.com/", "PaymentServiceType": "Custom", "PayNowText": "Time To Pay", "ValidationErrors": [ { "Message": "Payment service could not be found" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: PaymentServices array with PaymentService object in body of request content: application/json: schema: $ref: '#/components/schemas/PaymentServices' example: '{ "PaymentServices": [ { "PaymentServiceName": "PayUpNow", "PaymentServiceUrl": "https://www.payupnow.com/", "PayNowText": "Time To Pay" } ] }' /Prepayments: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPrepayments summary: Retrieves prepayments parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="AUTHORISED" x-example-csharp: Status==\"AUTHORISED\" x-example-java: Status=="' + Prepayment.StatusEnum.AUTHORISED + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Prepayment::STATUS_AUTHORISED . '" x-example-ruby: Status==#{XeroRuby::Accounting::Prepayment::AUTHORISED} schema: type: string - in: query name: order description: Order by an any element example: "Reference ASC" schema: type: string - in: query name: page description: e.g. page=1 – Up to 100 prepayments will be returned in a single API call with line items shown for each overpayment example: 1 schema: type: integer - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Prepayments array for all Prepayment content: application/json: schema: $ref: '#/components/schemas/Prepayments' example: '{ "Id": "d7a9ca0c-6159-4c26-ad2e-715440c50b7d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552489227595)\/", "Prepayments": [ { "PrepaymentID": "ce0cddef-cf5a-4e59-b638-f225679115a7", "ID": "ce0cddef-cf5a-4e59-b638-f225679115a7", "Type": "RECEIVE-PREPAYMENT", "Reference": "INV-0011", "RemainingCredit": 3450.00, "Allocations": [], "Payments": [], "HasAttachments": true, "Contact": { "ContactID": "be392c72-c121-4f83-9512-03ac71e54c20", "Name": "Luke Skywalker", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [], "SubTotal": 3000.00, "TotalTax": 450.00, "Total": 3450.00, "UpdatedDateUTC": "\/Date(1552489187730+0000)\/", "CurrencyCode": "NZD" } ] }' '/Prepayments/{PrepaymentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPrepayment summary: Allows you to retrieve a specified prepayments parameters: - $ref: '#/components/parameters/PrepaymentID' responses: '200': description: Success - return response of type Prepayments array for a specified Prepayment content: application/json: schema: $ref: '#/components/schemas/Prepayments' example: '{ "Id": "18e5f578-ef28-4096-a7aa-d06d65574b99", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553540376847)\/", "Prepayments": [ { "PrepaymentID": "ce0cddef-cf5a-4e59-b638-f225679115a7", "ID": "ce0cddef-cf5a-4e59-b638-f225679115a7", "CurrencyRate": 1.000000, "Type": "RECEIVE-PREPAYMENT", "Reference": "INV-0011", "RemainingCredit": 3449.00, "Allocations": [ { "Amount": 1.00, "Date": "\/Date(1552435200000+0000)\/", "Invoice": { "InvoiceID": "c7c37b83-ac95-45ea-88ba-8ad83a5f22fe", "InvoiceNumber": "INV-0004", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [] } } ], "Payments": [], "HasAttachments": true, "Attachments": [ { "AttachmentID": "2ca06aa0-3629-474a-9401-553d4b7fa9b0", "FileName": "giphy.gif", "Url": "https://api.xero.com/api.xro/2.0/banktransaction/ce0cddef-cf5a-4e59-b638-f225679115a7/Attachments/giphy.gif", "MimeType": "image/gif", "ContentLength": 495727 } ], "Contact": { "ContactID": "be392c72-c121-4f83-9512-03ac71e54c20", "ContactStatus": "ACTIVE", "Name": "Luke Skywalker", "EmailAddress": "", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "" }, { "AddressType": "POBOX", "City": "", "Region": "", "PostalCode": "", "Country": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1552329691573+0000)\/", "ContactGroups": [], "DefaultCurrency": "NZD", "ContactPersons": [], "HasValidationErrors": false }, "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Light Speeder", "UnitAmount": 3000.00, "TaxType": "OUTPUT2", "TaxAmount": 450.00, "LineAmount": 3000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "DiscountEnteredAsPercent": true, "ValidationErrors": [] } ], "SubTotal": 3000.00, "TotalTax": 450.00, "Total": 3450.00, "UpdatedDateUTC": "\/Date(1552522424850+0000)\/", "CurrencyCode": "NZD" } ] }' '/Prepayments/{PrepaymentID}/Allocations': parameters: - $ref: '#/components/parameters/requiredHeader' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createPrepaymentAllocations summary: Allows you to create an Allocation for prepayments x-hasAccountingValidationError: true x-example: - currDate: is_date: true key: currDate keyPascal: CurrDate keySnake: curr_date java_datatype: LocalDate default: "LocalDate.now()" java: "LocalDate.now()" csharp: "DateTime.Now" node: "'2020-12-10'" php: "new DateTime('2020-12-10')" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - invoice: is_object: true key: invoice keyPascal: Invoice - invoiceID: is_last: true is_uuid: true key: invoiceID keyPascal: InvoiceID keySnake: invoice_id default: 00000000-0000-0000-0000-000000000000 object: invoice - allocation: is_object: true key: allocation keyPascal: Allocation - set_invoice: is_variable: true nonString: true key: invoice keyPascal: Invoice default: invoice object: allocation - amount: nonString: true key: amount keyPascal: Amount default: 1.0 is_money: true object: allocation - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: currDate python: curr_date ruby: curr_date object: allocation - allocations: is_object: true key: allocations keyPascal: Allocations - add_allocation: is_last: true is_array_add: true key: allocations keyPascal: Allocations java: Allocations csharp: Allocation object: allocation parameters: - $ref: '#/components/parameters/PrepaymentID' - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Allocations array of Allocation for all Prepayment content: application/json: schema: $ref: '#/components/schemas/Allocations' example: '{ "Id": "d4758808-d14d-45d5-851a-52787ae5739a", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552522424927)\/", "Allocations": [ { "Amount": 1.00, "Date": "\/Date(1552435200000+0000)\/", "Invoice": { "InvoiceID": "c7c37b83-ac95-45ea-88ba-8ad83a5f22fe", "Payments": [], "CreditNotes": [], "Prepayments": [], "Overpayments": [], "HasErrors": false, "IsDiscounted": false, "LineItems": [], "ValidationErrors": [] }, "Prepayment": { "PrepaymentID": "ce0cddef-cf5a-4e59-b638-f225679115a7", "ID": "ce0cddef-cf5a-4e59-b638-f225679115a7", "LineItems": [] }, "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Allocations with an array of Allocation object in body of request content: application/json: schema: $ref: '#/components/schemas/Allocations' example: '{ "Allocations": [ { "Invoice": { "LineItems": [], "InvoiceID": "00000000-0000-0000-0000-000000000000" }, "Amount": 1, "Date": "2019-01-10" } ] }' '/Prepayments/{PrepaymentID}/Allocations/{AllocationID}': parameters: - $ref: '#/components/parameters/requiredHeader' delete: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: deletePrepaymentAllocations summary: Deletes an Allocation from a Prepayment parameters: - $ref: '#/components/parameters/PrepaymentID' - $ref: '#/components/parameters/AllocationID' responses: '200': description: Success - return response of type Allocation with the isDeleted flag as true content: application/json: schema: $ref: '#/components/schemas/Allocation' example: '{ "AllocationId": "2bb15054-3868-4f85-a9c6-0402ec8c1201", "Date": "\/Date(1551822670731)\/", "Invoice": [ { "InvoiceID": "b7eb1fc9-a0f9-4e8e-9373-6689f5350832", } ], "IsDeleted": true, }' '/Prepayments/{PrepaymentID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPrepaymentHistory summary: Retrieves history record for a specific prepayment parameters: - $ref: '#/components/parameters/PrepaymentID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createPrepaymentHistory summary: Creates a history record for a specific prepayment x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/PrepaymentID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': description: Unsupported - return response incorrect exception, API is not able to create HistoryRecord for Expense Claims content: application/json: schema: $ref: '#/components/schemas/Error' example: ' { "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "DateUTCString": "2019-03-14T00:15:35", "DateUTC": "\/Date(1552522535440)\/", "Details": "Hello World", "ValidationErrors": [ { "Message": "The document with the supplied id was not found for this endpoint." } ] } ] }' requestBody: $ref: '#/components/requestBodies/historyRecords' /PurchaseOrders: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPurchaseOrders summary: Retrieves purchase orders parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: Status x-snake: status description: Filter by purchase order status example: "SUBMITTED" schema: type: string enum: - DRAFT - SUBMITTED - AUTHORISED - BILLED - DELETED - in: query name: DateFrom x-snake: date_from description: Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31 example: "2019-12-01" schema: type: string - in: query name: DateTo x-snake: date_to description: Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31 example: "2019-12-31" schema: type: string - in: query name: order description: Order by an any element example: "PurchaseOrderNumber ASC" schema: type: string - in: query name: page description: To specify a page, append the page parameter to the URL e.g. ?page=1. If there are 100 records in the response you will need to check if there is any more data by fetching the next page e.g ?page=2 and continuing this process until no more results are returned. example: 1 schema: type: integer responses: '200': description: Success - return response of type PurchaseOrder array of all PurchaseOrder content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: '{ "Id": "66910bfc-15cc-4692-bd4c-cc8f671e653c", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552523977238)\/", "PurchaseOrders": [ { "PurchaseOrderID": "f9627f0d-b715-4039-bb6a-96dc3eae5ec5", "PurchaseOrderNumber": "PO-0001", "DateString": "2019-03-12T00:00:00", "Date": "\/Date(1552348800000+0000)\/", "AttentionTo": "Jimmy", "HasErrors": false, "IsDiscounted": false, "Type": "PURCHASEORDER", "CurrencyRate": 1.000000, "CurrencyCode": "NZD", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "Addresses": [ { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "DELETED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.0000, "TaxAmount": 0.00, "LineAmount": 20.00, "Tracking": [], "Quantity": 1.0000, "LineItemID": "0f7b54b8-bfa4-4c5d-9c22-73dbd5796e54" } ], "SubTotal": 20.00, "TotalTax": 0.00, "Total": 20.00, "UpdatedDateUTC": "\/Date(1552522703443+0000)\/", "HasAttachments": false }, { "PurchaseOrderID": "6afa2e02-c514-4964-ab89-b5c0179b8c50", "PurchaseOrderNumber": "PO-0002", "DateString": "2019-03-12T00:00:00", "Date": "\/Date(1552348800000+0000)\/", "AttentionTo": "Jimmy", "HasErrors": false, "IsDiscounted": false, "Type": "PURCHASEORDER", "CurrencyRate": 1.000000, "CurrencyCode": "NZD", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "Addresses": [ { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "DELETED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.0000, "TaxAmount": 0.00, "LineAmount": 20.00, "Tracking": [], "Quantity": 1.0000, "LineItemID": "3e4ec232-32b9-491b-84dd-48fb9aa8916f" } ], "SubTotal": 20.00, "TotalTax": 0.00, "Total": 20.00, "UpdatedDateUTC": "\/Date(1552522834733+0000)\/", "HasAttachments": false } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createPurchaseOrders summary: Creates one or more purchase orders x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-12-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - purchaseOrder: is_object: true key: purchaseOrder keyPascal: PurchaseOrder keySnake: purchase_order - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: purchaseOrder - set_lineitem: is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: purchaseOrder - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: purchaseOrder - purchaseOrders: is_object: true key: purchaseOrders keyPascal: PurchaseOrders - add_purchaseOrder: is_last: true is_array_add: true key: purchaseOrders keyPascal: PurchaseOrders keySnake: purchase_orders java: PurchaseOrders python: purchase_order ruby: purchase_order csharp: PurchaseOrder object: purchaseOrder parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type PurchaseOrder array for specified PurchaseOrder content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: ' { "Id": "aa2f9d23-fd76-4bee-9600-30c0f0f34036", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552522946173)\/", "PurchaseOrders": [ { "PurchaseOrderID": "56204648-8fbe-46f8-b09c-2125f7939533", "PurchaseOrderNumber": "PO-0004", "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "HasErrors": false, "IsDiscounted": false, "TotalDiscount": 0.00, "SentToContact": false, "Type": "PURCHASEORDER", "CurrencyRate": 1.000000, "CurrencyCode": "NZD", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ null, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, null, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.0000, "TaxType": "INPUT2", "TaxAmount": 3.00, "LineAmount": 20.00, "AccountCode": "710", "Tracking": [], "Quantity": 1.0000, "LineItemID": "792b7e40-b9f2-47f0-8624-b09f4b0166dd" } ], "SubTotal": 20.00, "TotalTax": 3.00, "Total": 23.00, "UpdatedDateUTC": "\/Date(1552522946077+0000)\/", "StatusAttributeString": "ERROR", "Warnings": [ { "Message": "Only AUTHORISED and BILLED purchase orders may have SentToContact updated." } ], "ValidationErrors": [ { "Message": "Order number must be unique" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: PurchaseOrders with an array of PurchaseOrder object in body of request content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: '{ "PurchaseOrders": [ { "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000" }, "LineItems": [ { "Description": "Foobar", "Quantity": 1, "UnitAmount": 20, "AccountCode": "710" } ], "Date": "2019-03-13" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateOrCreatePurchaseOrders summary: Updates or creates one or more purchase orders x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-12-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - purchaseOrder: is_object: true key: purchaseOrder keyPascal: PurchaseOrder keySnake: purchase_order - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: purchaseOrder - set_lineitem: is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: purchaseOrder - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: purchaseOrder - purchaseOrders: is_object: true key: purchaseOrders keyPascal: PurchaseOrders - add_purchaseOrder: is_last: true is_array_add: true key: purchaseOrders keyPascal: PurchaseOrders keySnake: purchase_orders java: PurchaseOrders python: purchase_order ruby: purchase_order csharp: PurchaseOrder object: purchaseOrder parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type PurchaseOrder array for specified PurchaseOrder content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: ' { "Id": "aa2f9d23-fd76-4bee-9600-30c0f0f34036", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552522946173)\/", "PurchaseOrders": [ { "PurchaseOrderID": "56204648-8fbe-46f8-b09c-2125f7939533", "PurchaseOrderNumber": "PO-0004", "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "HasErrors": false, "IsDiscounted": false, "TotalDiscount": 0.00, "SentToContact": false, "Type": "PURCHASEORDER", "CurrencyRate": 1.000000, "CurrencyCode": "NZD", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ null, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, null, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.0000, "TaxType": "INPUT2", "TaxAmount": 3.00, "LineAmount": 20.00, "AccountCode": "710", "Tracking": [], "Quantity": 1.0000, "LineItemID": "792b7e40-b9f2-47f0-8624-b09f4b0166dd" } ], "SubTotal": 20.00, "TotalTax": 3.00, "Total": 23.00, "UpdatedDateUTC": "\/Date(1552522946077+0000)\/", "StatusAttributeString": "ERROR", "Warnings": [ { "Message": "Only AUTHORISED and BILLED purchase orders may have SentToContact updated." } ], "ValidationErrors": [ { "Message": "Order number must be unique" } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: '{ "PurchaseOrders": [ { "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000" }, "LineItems": [ { "Description": "Foobar", "Quantity": 1, "UnitAmount": 20, "AccountCode": "710" } ], "Date": "2019-03-13" } ] }' '/PurchaseOrders/{PurchaseOrderID}/pdf': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPurchaseOrderAsPdf x-path: '/PurchaseOrders/{PurchaseOrderID}' summary: Retrieves specific purchase order as PDF files using a unique purchase order Id parameters: - $ref: '#/components/parameters/PurchaseOrderID' responses: '200': description: Success - return response of byte array pdf version of specified Purchase Orders content: application/pdf: schema: type: string format: binary '/PurchaseOrders/{PurchaseOrderID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPurchaseOrder summary: Retrieves a specific purchase order using a unique purchase order Id parameters: - $ref: '#/components/parameters/PurchaseOrderID' responses: '200': description: Success - return response of type PurchaseOrder array for specified PurchaseOrder content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: '{ "Id": "53a8c7a5-92e8-475b-a037-acf7c55c3afd", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553626110950)\/", "PurchaseOrders": [ { "PurchaseOrderID": "15369a9f-17b6-4235-83c4-0029256d1c37", "PurchaseOrderNumber": "PO-0006", "DateString": "2019-03-26T00:00:00", "Date": "\/Date(1553558400000+0000)\/", "DeliveryDateString": "2019-03-28T00:00:00", "DeliveryDate": "\/Date(1553731200000+0000)\/", "DeliveryAddress": "101 Grafton Road\nRoseneath\nWellington\n6011\nNew Zealand", "AttentionTo": "CEO", "Telephone": "64 123-2222", "DeliveryInstructions": "Drop off at front door", "HasErrors": false, "IsDiscounted": true, "TotalDiscount": 250.00, "SentToContact": false, "Reference": "foobar", "Type": "PURCHASEORDER", "CurrencyRate": 1.000000, "CurrencyCode": "NZD", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ null, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, null, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1553672800957+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "DefaultCurrency": "NZD", "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [], "HasValidationErrors": false }, "BrandingThemeID": "414d4a87-46d6-4cfc-ab42-4e29d22e5076", "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [ { "ItemCode": "123", "Description": "Brand new Fender Strats", "UnitAmount": 2500.0000, "TaxType": "INPUT2", "TaxAmount": 337.50, "LineAmount": 2250.00, "AccountCode": "630", "Tracking": [ { "Name": "Simpsons", "Option": "Homer", "TrackingCategoryID": "6a68adde-f210-4465-b0a9-0d8cc6f50762", "TrackingOptionID": "94faf12f-f65c-4331-8004-b0b7c5a2da23" } ], "Quantity": 1.0000, "DiscountRate": 10.00, "LineItemID": "8a9d3eca-e052-43bc-9b87-221d0648c045" } ], "SubTotal": 2250.00, "TotalTax": 337.50, "Total": 2587.50, "UpdatedDateUTC": "\/Date(1553626029823+0000)\/", "HasAttachments": true, "Attachments": [ { "AttachmentID": "7d94ccdc-ef7b-4806-87ac-8442f25e593b", "FileName": "HelloWorld.png", "Url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/15369a9f-17b6-4235-83c4-0029256d1c37/Attachments/HelloWorld.png", "MimeType": "image/png", "ContentLength": 76091 } ] } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updatePurchaseOrder summary: Updates a specific purchase order x-hasAccountingValidationError: true x-example: - purchaseOrder: is_object: true key: purchaseOrder keyPascal: PurchaseOrder keySnake: purchase_order - attentionTo: is_last: true key: attentionTo keyPascal: AttentionTo default: Peter Parker object: purchaseOrder - purchaseOrders: is_object: true key: purchaseOrders keyPascal: PurchaseOrders - add_purchaseOrder: is_last: true is_array_add: true key: purchaseOrders keyPascal: PurchaseOrders keySnake: purchase_orders java: PurchaseOrders python: purchase_order ruby: purchase_order csharp: PurchaseOrder object: purchaseOrder parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/PurchaseOrderID' responses: '200': description: Success - return response of type PurchaseOrder array for updated PurchaseOrder content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: '{ "Id": "0e9bb3f8-d68b-4bb2-a54d-7da240a4f51a", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552523976885)\/", "PurchaseOrders": [ { "PurchaseOrderID": "f9fc1120-c937-489e-84bc-e822190cfe9c", "PurchaseOrderNumber": "PO-0005", "DateString": "2019-03-13T00:00:00", "Date": "\/Date(1552435200000+0000)\/", "AttentionTo": "Jimmy", "HasErrors": false, "IsDiscounted": false, "TotalDiscount": 0.00, "SentToContact": false, "Type": "PURCHASEORDER", "CurrencyRate": 1.000000, "CurrencyCode": "NZD", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ null, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, null, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.0000, "TaxType": "INPUT2", "TaxAmount": 3.00, "LineAmount": 20.00, "AccountCode": "710", "Tracking": [], "Quantity": 1.0000, "LineItemID": "d1d9b2cd-c9f2-4445-8d98-0b8096cf4dae" } ], "SubTotal": 20.00, "TotalTax": 3.00, "Total": 23.00, "UpdatedDateUTC": "\/Date(1552523976853+0000)\/" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: '{ "PurchaseOrders": [ { "AttentionTo": "Peter Parker", "LineItems": [], "Contact": {} } ] }' '/PurchaseOrders/{PurchaseOrderNumber}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPurchaseOrderByNumber summary: Retrieves a specific purchase order using purchase order number parameters: - required: true in: path name: PurchaseOrderNumber x-snake: purchase_order_number description: Unique identifier for a PurchaseOrder example: "PO1234" schema: type: string responses: '200': description: Success - return response of type PurchaseOrder array for specified PurchaseOrder content: application/json: schema: $ref: '#/components/schemas/PurchaseOrders' example: '{ "Id": "53a8c7a5-92e8-475b-a037-acf7c55c3afd", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553626110950)\/", "PurchaseOrders": [ { "PurchaseOrderID": "15369a9f-17b6-4235-83c4-0029256d1c37", "PurchaseOrderNumber": "PO-0006", "DateString": "2019-03-26T00:00:00", "Date": "\/Date(1553558400000+0000)\/", "DeliveryDateString": "2019-03-28T00:00:00", "DeliveryDate": "\/Date(1553731200000+0000)\/", "DeliveryAddress": "101 Grafton Road\nRoseneath\nWellington\n6011\nNew Zealand", "AttentionTo": "CEO", "Telephone": "64 123-2222", "DeliveryInstructions": "Drop off at front door", "HasErrors": false, "IsDiscounted": true, "TotalDiscount": 250.00, "SentToContact": false, "Reference": "foobar", "Type": "PURCHASEORDER", "CurrencyRate": 1.000000, "CurrencyCode": "NZD", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ null, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, null, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1553672800957+0000)\/", "ContactGroups": [ { "ContactGroupID": "17b44ed7-4389-4162-91cb-3dd5766e4e22", "Name": "Oasis", "Status": "ACTIVE", "Contacts": [], "HasValidationErrors": false } ], "IsSupplier": true, "IsCustomer": true, "DefaultCurrency": "NZD", "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [], "HasValidationErrors": false }, "BrandingThemeID": "414d4a87-46d6-4cfc-ab42-4e29d22e5076", "Status": "DRAFT", "LineAmountTypes": "Exclusive", "LineItems": [ { "ItemCode": "123", "Description": "Brand new Fender Strats", "UnitAmount": 2500.0000, "TaxType": "INPUT2", "TaxAmount": 337.50, "LineAmount": 2250.00, "AccountCode": "630", "Tracking": [ { "Name": "Simpsons", "Option": "Homer", "TrackingCategoryID": "6a68adde-f210-4465-b0a9-0d8cc6f50762", "TrackingOptionID": "94faf12f-f65c-4331-8004-b0b7c5a2da23" } ], "Quantity": 1.0000, "DiscountRate": 10.00, "LineItemID": "8a9d3eca-e052-43bc-9b87-221d0648c045" } ], "SubTotal": 2250.00, "TotalTax": 337.50, "Total": 2587.50, "UpdatedDateUTC": "\/Date(1553626029823+0000)\/", "HasAttachments": true, "Attachments": [ { "AttachmentID": "7d94ccdc-ef7b-4806-87ac-8442f25e593b", "FileName": "HelloWorld.png", "Url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/15369a9f-17b6-4235-83c4-0029256d1c37/Attachments/HelloWorld.png", "MimeType": "image/png", "ContentLength": 76091 } ] } ] }' '/PurchaseOrders/{PurchaseOrderID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getPurchaseOrderHistory summary: Retrieves history for a specific purchase order parameters: - $ref: '#/components/parameters/PurchaseOrderID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createPurchaseOrderHistory summary: Creates a history record for a specific purchase orders x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/PurchaseOrderID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' '/PurchaseOrders/{PurchaseOrderID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getPurchaseOrderAttachments summary: Retrieves attachments for a specific purchase order parameters: - $ref: '#/components/parameters/PurchaseOrderID' responses: '200': description: Success - return response of type Attachments array of Purchase Orders x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "dfc29f55-8ddd-4921-a82c-bcc0798d207f", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "/Date(1602100184437)/", "Attachments": [ { "AttachmentID": "dce4eaa7-c8a9-4867-9434-95832b427d3b", "FileName": "xero-dev1.png", "Url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/93369c9b-c481-4e21-aaab-bb19e9a26efe/Attachments/2D_2.png", "MimeType": "image/png", "ContentLength": 98715 }, { "AttachmentID": "e58bd37b-e47f-451a-a42c-f946ef229c3e", "FileName": "xero-dev2.png", "Url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/93369c9b-c481-4e21-aaab-bb19e9a26efe/Attachments/2D.png", "MimeType": "image/png", "ContentLength": 82529 }, { "AttachmentID": "c8faa564-223f-45e4-a5a1-94430a5b52c1", "FileName": "xero-dev3.png", "Url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/93369c9b-c481-4e21-aaab-bb19e9a26efe/Attachments/Screen%20Shot%202020-09-12%20at%204.31.14%20pm.png", "MimeType": "image/png", "ContentLength": 146384 } ] }' '/PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getPurchaseOrderAttachmentById summary: Retrieves specific attachment for a specific purchase order using a unique attachment Id parameters: - $ref: '#/components/parameters/PurchaseOrderID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Account as binary data content: application/octet-stream: schema: type: string format: binary '/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getPurchaseOrderAttachmentByFileName summary: Retrieves a specific attachment for a specific purchase order by filename parameters: - $ref: '#/components/parameters/PurchaseOrderID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Purchase Order as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updatePurchaseOrderAttachmentByFileName x-hasAccountingValidationError: true summary: Updates a specific attachment for a specific purchase order by filename parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/PurchaseOrderID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "aeff9be0-54c2-45dd-8e3d-aa4f8af0fbd7", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "/Date(1602100086197)/", "Attachments": [ { "AttachmentID": "dce4eaa7-c8a9-4867-9434-95832b427d3b", "FileName": "xero-dev.png", "Url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/93369c9b-c481-4e21-aaab-bb19e9a26efe/Attachments/2D_2.png", "MimeType": "image/png", "ContentLength": 98715 } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createPurchaseOrderAttachmentByFileName x-hasAccountingValidationError: true summary: Creates attachment for a specific purchase order parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/PurchaseOrderID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "c728a4a4-179e-4bbd-a2d5-63e7f9ceba92", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "/Date(1602099934723)/", "Attachments": [ { "AttachmentID": "e58bd37b-e47f-451a-a42c-f946ef229c3e", "FileName": "xero-dev.png", "Url": "https://api.xero.com/api.xro/2.0/PurchaseOrders/93369c9b-c481-4e21-aaab-bb19e9a26efe/Attachments/2D.png", "MimeType": "image/png", "ContentLength": 82529 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte /Quotes: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getQuotes summary: Retrieves sales quotes parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: DateFrom x-snake: date_from description: Filter for quotes after a particular date example: "2019-10-31" schema: type: string format: date - in: query name: DateTo x-snake: date_to description: Filter for quotes before a particular date example: "2019-10-31" schema: type: string format: date - in: query name: ExpiryDateFrom x-snake: expiry_date_from description: Filter for quotes expiring after a particular date example: "2019-10-31" schema: type: string format: date - in: query name: ExpiryDateTo x-snake: expiry_date_to description: Filter for quotes before a particular date example: "2019-10-31" schema: type: string format: date - in: query name: ContactID x-snake: contact_id description: Filter for quotes belonging to a particular contact example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid - in: query name: Status x-snake: status description: Filter for quotes of a particular Status example: "DRAFT" schema: type: string - in: query name: page description: e.g. page=1 – Up to 100 Quotes will be returned in a single API call with line items shown for each quote example: 1 schema: type: integer - in: query name: order description: Order by an any element example: Status ASC schema: type: string - in: query name: QuoteNumber x-snake: quote_number description: Filter by quote number (e.g. GET https://.../Quotes?QuoteNumber=QU-0001) example: "QU-0001" schema: type: string responses: '200': description: Success - return response of type quotes array with all quotes content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "Id": "bb583e7e-9b6b-471e-88da-4cbfcfad7a57", "Status": "OK", "ProviderName": "Adams OAuth2 App", "DateTimeUTC": "/Date(1571876635477)/", "Quotes": [ { "QuoteID": "be59294f-2a9c-4cee-8c64-0f0ddbc1883a", "QuoteNumber": "QU-0001", "Reference": "REF-123", "Terms": "Not valid after the expiry date", "Contact": { "ContactID": "060816db-0ed7-44de-ab58-8fee9316fcd5", "Name": "Adam" }, "LineItems": [ { "LineItemID": "ccf5e45c-73b6-4659-83e8-520f4c6126fd", "AccountCode": "200", "Description": "Fish out of Water", "UnitAmount": 19.9500, "DiscountRate": 10.00, "LineAmount": 17.96, "ItemCode": "BOOK", "Quantity": 1.0000, "TaxAmount": 2.69, "TaxType": "OUTPUT2", "Tracking": [ { "TrackingCategoryID": "351953c4-8127-4009-88c3-f9cd8c9cbe9f", "TrackingOptionID": "ce205173-7387-4651-9726-2cf4c5405ba2", "Name": "Region", "Option": "Eastside" } ] } ], "Date": "/Date(1571875200000)/", "DateString": "2019-10-24T00:00:00", "ExpiryDate": "/Date(1571961600000)/", "ExpiryDateString": "2019-10-25T00:00:00", "Status": "ACCEPTED", "CurrencyRate": 0.937053, "CurrencyCode": "AUD", "SubTotal": 17.96, "TotalTax": 2.69, "Total": 20.65, "TotalDiscount": 1.99, "Title": "Your Quote", "Summary": "Please buy this", "BrandingThemeID": "4c82c365-35cb-467f-bb11-dce1f2f2f67c", "UpdatedDateUTC": "/Date(1571869373890)/", "LineAmountTypes": "EXCLUSIVE" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createQuotes summary: Create one or more quotes x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-12-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - quote: is_object: true key: quote keyPascal: Quote - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: quote - set_lineitem: is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: quote - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: quote - quotes: is_object: true key: quotes keyPascal: Quotes - add_quote: is_last: true is_array_add: true key: quotes keyPascal: Quotes java: Quotes csharp: Quote object: quote parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Quotes with array with newly created Quote content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "SummarizeErrors":false, "Id":"29571f5a-bf73-4bb6-9de5-86be44e6bf2e", "Status":"OK", "ProviderName":"provider-name", "DateTimeUTC":"\/Date(1580607782916)\/", "Quotes":[ { "QuoteID":"60031d53-6488-4321-9cbd-c1db6dbf9ba4", "QuoteNumber":"QU-0008", "Terms":"", "Contact":{ "ContactID":"6a65f055-b0e0-471a-a933-d1ffdd89393f", "Name":"John Smith-82160", "EmailAddress":"" }, "LineItems":[ { "LineItemID":"26995857-0eea-45fb-b46c-f8ea896ec46e", "AccountCode":"12775", "Description":"Foobar", "UnitAmount":20.0000, "LineAmount":20.00, "ItemCode":"", "Quantity":1.0000, "TaxAmount":0.00, "Tracking":[ ] } ], "Date":"\/Date(1580515200000)\/", "DateString":"2020-02-01T00:00:00", "Status":"DRAFT", "CurrencyRate":1.000000, "CurrencyCode":"USD", "SubTotal":20.00, "TotalTax":0.00, "Total":20.00, "UpdatedDateUTC":"\/Date(1580607782913)\/", "LineAmountTypes":"EXCLUSIVE", "StatusAttributeString":"OK" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Quotes with an array of Quote object in body of request content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "Quotes": [ { "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000" }, "LineItems": [ { "Description": "Foobar", "Quantity": 1, "UnitAmount": 20, "AccountCode": "12775" } ], "Date": "2020-02-01" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateOrCreateQuotes summary: Updates or creates one or more quotes x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-12-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - quote: is_object: true key: quote keyPascal: Quote - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: quote - set_lineitem: is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: quote - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: quote - quotes: is_object: true key: quotes keyPascal: Quotes - add_quote: is_last: true is_array_add: true key: quotes keyPascal: Quotes java: Quotes csharp: Quote object: quote parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Quotes array with updated or created Quote content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "SummarizeErrors":false, "Id":"b425754f-0512-481d-827b-c8958db7667e", "Status":"OK", "ProviderName":"provider-name", "DateTimeUTC":"\/Date(1580607783833)\/", "Quotes":[ { "QuoteID":"fd53e0b7-4d24-4c20-be85-043a62ea5847", "QuoteNumber":"QU-0009", "Terms":"", "Contact":{ "ContactID":"6a65f055-b0e0-471a-a933-d1ffdd89393f", "Name":"John Smith-82160", "EmailAddress":"" }, "LineItems":[ { "LineItemID":"898c7fd6-0d94-4ac0-ace8-87e350a042de", "AccountCode":"12775", "Description":"Foobar", "UnitAmount":20.0000, "LineAmount":20.00, "ItemCode":"", "Quantity":1.0000, "TaxAmount":0.00, "Tracking":[ ] } ], "Date":"\/Date(1580515200000)\/", "DateString":"2020-02-01T00:00:00", "Status":"DRAFT", "CurrencyRate":1.000000, "CurrencyCode":"USD", "SubTotal":20.00, "TotalTax":0.00, "Total":20.00, "UpdatedDateUTC":"\/Date(1580607783467)\/", "LineAmountTypes":"EXCLUSIVE", "StatusAttributeString":"OK" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "Quotes": [ { "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000" }, "LineItems": [ { "Description": "Foobar", "Quantity": 1, "UnitAmount": 20, "AccountCode": "12775" } ], "Date": "2020-02-01" } ] }' '/Quotes/{QuoteID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getQuote summary: Retrieves a specific quote using a unique quote Id parameters: - $ref: '#/components/parameters/QuoteID' responses: '200': description: Success - return response of type Quotes array with specified Quote content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "SummarizeErrors":true, "Id":"e3626c45-77f1-4ab0-ba9b-3593c7bcd25c", "Status":"OK", "ProviderName":"provider-name", "DateTimeUTC":"\/Date(1580607864786)\/", "Quotes":[ { "QuoteID":"1f90e77a-7b88-4462-874f-1aa675be8fef", "QuoteNumber":"QU-0007", "Reference":"MyQuote", "Terms":"These are my terms", "Contact":{ "ContactID":"4bc3ecb2-8e2a-4267-a171-0e0ce7e5ac2a", "Name":"ABC Limited", "EmailAddress":"john.smith@gmail.com", "FirstName":"John", "LastName":"Smith" }, "LineItems":[ { "LineItemID":"09b47d9f-f78d-4bab-b226-957f55bfb1b5", "AccountCode":"400", "Description":"Half day training - Microsoft Office", "UnitAmount":500.0000, "LineAmount":500.00, "ItemCode":"Train-MS", "Quantity":1.0000, "TaxAmount":0.00, "TaxType":"NONE", "Tracking":[ { "TrackingCategoryID":"9bd3f506-6d91-4625-81f0-0f9147f099f4", "TrackingOptionID":"d30e2a0d-ae6f-4806-88ca-d8ebdba2af73", "Name":"Avengers", "Option":"IronMan" } ] } ], "Date":"\/Date(1580515200000)\/", "DateString":"2020-02-01T00:00:00", "ExpiryDate":"\/Date(1581724800000)\/", "ExpiryDateString":"2020-02-15T00:00:00", "Status":"DRAFT", "CurrencyRate":1.547150, "CurrencyCode":"NZD", "SubTotal":500.00, "TotalTax":0.00, "Total":500.00, "TotalDiscount":0.00, "Title":"", "Summary":"", "BrandingThemeID":"324587a9-7eed-46c0-ad64-fa941a1b5b3e", "UpdatedDateUTC":"\/Date(1580607757040)\/", "LineAmountTypes":"EXCLUSIVE" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateQuote summary: Updates a specific quote x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date keySnake: date_value java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-12-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-12-03T00:00:00Z')" ruby: "'YYYY-MM-DD'" - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - quote: is_object: true key: quote keyPascal: Quote - reference: key: reference keyPascal: Reference default: I am an update object: quote - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: quote - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue python: date_value ruby: date_value object: quote - quotes: is_object: true key: quotes keyPascal: Quotes - add_quote: is_last: true is_array_add: true key: quotes keyPascal: Quotes java: Quotes csharp: Quote object: quote parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/QuoteID' responses: '200': description: Success - return response of type Quotes array with updated Quote content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "SummarizeErrors":true, "Id":"be4f43a7-ef02-497a-96c2-fc0bc047a82a", "Status":"OK", "ProviderName":"provider-name", "DateTimeUTC":"\/Date(1580605644385)\/", "Quotes":[ { "QuoteID":"8ce6b14c-ef87-4f45-93f0-853137c6d0e1", "QuoteNumber":"QU-0008", "Reference":"I am an update", "Terms":"", "Contact":{ "ContactID":"8ed7dd03-4e6a-4078-a807-c5309abfec52", "Name":"Orlena Greenville 35", "EmailAddress":"" }, "LineItems":[ { "LineItemID":"be69f44e-9c72-4fcd-9152-0174867cce49", "AccountCode":"12775", "Description":"Foobar", "UnitAmount":20.0000, "LineAmount":20.00, "ItemCode":"", "Quantity":1.0000, "TaxAmount":0.00, "Tracking":[] } ], "Date":"\/Date(1580515200000)\/", "DateString":"2020-02-01T00:00:00", "Status":"DRAFT", "CurrencyRate":1.000000, "CurrencyCode":"USD", "SubTotal":20.00, "TotalTax":0.00, "Total":20.00, "UpdatedDateUTC":"\/Date(1580605644360)\/", "LineAmountTypes":"EXCLUSIVE" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Quotes' example: '{ "Quotes": [ { "Reference": "I am an update", "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000" }, "Date": "2020-02-01" } ] }' '/Quotes/{QuoteID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getQuoteHistory summary: Retrieves history records of a specific quote parameters: - $ref: '#/components/parameters/QuoteID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createQuoteHistory summary: Creates a history record for a specific quote x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/QuoteID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' '/Quotes/{QuoteID}/pdf': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getQuoteAsPdf x-path: '/Quotes/{QuoteID}' summary: Retrieves a specific quote as a PDF file using a unique quote Id parameters: - $ref: '#/components/parameters/QuoteID' responses: '200': description: Success - return response of byte array pdf version of specified Quotes content: application/pdf: schema: type: string format: binary '/Quotes/{QuoteID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getQuoteAttachments summary: Retrieves attachments for a specific quote parameters: - $ref: '#/components/parameters/QuoteID' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "439c1573-3cd8-4697-a9f6-81fa651ee8f3", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550852630329)\/", "Attachments": [ { "AttachmentID": "52a643be-cd5c-489f-9778-53a9fd337756", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Quotes/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '/Quotes/{QuoteID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getQuoteAttachmentById summary: Retrieves a specific attachment from a specific quote using a unique attachment Id parameters: - $ref: '#/components/parameters/QuoteID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Quote as binary data content: application/octet-stream: schema: type: string format: binary '/Quotes/{QuoteID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getQuoteAttachmentByFileName summary: Retrieves a specific attachment from a specific quote by filename parameters: - $ref: '#/components/parameters/QuoteID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Quote as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateQuoteAttachmentByFileName x-hasAccountingValidationError: true summary: Updates a specific attachment from a specific quote by filename parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/QuoteID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "c8d6413a-1da2-4faa-9848-21f60443e906", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550859714477)\/", "Attachments": [ { "AttachmentID": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Quotes/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': description: Validation Error - some data was incorrect returns response of type Error content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createQuoteAttachmentByFileName x-hasAccountingValidationError: true summary: Creates attachment for a specific quote parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/QuoteID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array of Attachment x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "724cdff5-bcd1-4c5c-977e-e864c24258e0", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550856817769)\/", "Attachments": [ { "AttachmentID": "ab95b276-9dce-4925-9077-439818ba270f", "FileName": "sample5.jpg", "Url": "https://api.xero.com/api.xro/2.0/Quotes/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte /Receipts: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getReceipts summary: Retrieves draft expense claim receipts for any user parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: Status=="DRAFT" x-example-csharp: Status==\"DRAFT\" x-example-java: Status=="' + Receipt.StatusEnum.DRAFT + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Receipt::STATUS_DRAFT . '" x-example-ruby: Status==#{XeroRuby::Accounting::Receipt::DRAFT} schema: type: string - in: query name: order description: Order by an any element example: "ReceiptNumber ASC" schema: type: string - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Receipts array for all Receipt content: application/json: schema: $ref: '#/components/schemas/Receipts' example: '{ "Id": "078b2a2c-902f-4154-8739-357ece5982e5", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552524584695)\/", "Receipts": [ { "ReceiptID": "a44fd147-af4e-4fe8-a09a-55332df74162", "ReceiptNumber": 1, "Status": "DRAFT", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "FirstName": "API ", "LastName": "Team", "ValidationErrors": [], "Warnings": [] }, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "SalesTrackingCategories": [], "PurchasesTrackingCategories": [], "ContactPersons": [], "Attachments": [], "HasValidationErrors": false, "ValidationErrors": [], "Warnings": [] }, "Date": "\/Date(1552435200000+0000)\/", "UpdatedDateUTC": "\/Date(1552524583983+0000)\/", "Reference": "", "LineAmountTypes": "NoTax", "LineItems": [], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "ID": "a44fd147-af4e-4fe8-a09a-55332df74162", "HasAttachments": false, "Attachments": [], "ValidationErrors": [], "Warnings": [] } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createReceipt summary: Creates draft expense claim receipts for any user x-hasAccountingValidationError: true x-example: - contact: is_object: true key: contact keyPascal: Contact - contactID: is_last: true is_uuid: true key: contactID keyPascal: ContactID keySnake: contact_id default: 00000000-0000-0000-0000-000000000000 object: contact - user: is_object: true key: user keyPascal: User - userID: is_last: true is_uuid: true key: userID keyPascal: UserID keySnake: user_id default: 00000000-0000-0000-0000-000000000000 object: user - lineItem: is_object: true key: lineItem keyPascal: LineItem keySnake: line_item - description: key: description keyPascal: Description default: Foobar object: lineItem - quantity: nonString: true key: quantity keyPascal: Quantity default: 1.0 is_money: true object: lineItem - unitAmount: nonString: true key: unitAmount keyPascal: UnitAmount keySnake: unit_amount default: 20.0 is_money: true object: lineItem - accountCode: is_last: true key: accountCode keyPascal: AccountCode keySnake: account_code default: "000" object: lineItem - line_items: is_list: true key: lineItems keyPascal: LineItems keySnake: line_items csharp: LineItem java: LineItem - add_lineitems: is_last: true is_list_add: true key: lineItems keyPascal: LineItems keySnake: line_items java: LineItems python: line_item ruby: line_item csharp: LineItem object: lineItem - receipt: is_object: true key: receipt keyPascal: Receipt - set_contact: is_variable: true nonString: true key: contact keyPascal: Contact default: contact object: receipt - set_user: is_variable: true nonString: true key: user keyPascal: User default: user object: receipt - set_lineitem: is_variable: true nonString: true key: lineItems keyPascal: LineItems keySnake: line_items default: lineItems python: line_items ruby: line_items object: receipt - lineAmountTypes: nonString: true key: lineAmountTypes keyPascal: LineAmountTypes keySnake: line_amount_types default: INCLUSIVE php: XeroAPI\XeroPHP\Models\Accounting\LineAmountTypes::INCLUSIVE node: LineAmountTypes.Inclusive ruby: XeroRuby::Accounting::INCLUSIVE python: LineAmountTypes.INCLUSIVE java: com.xero.models.accounting.LineAmountTypes.INCLUSIVE csharp: LineAmountTypes.Exclusive object: receipt - status: is_last: true nonString: true key: status keyPascal: Status default: DRAFT php: XeroAPI\XeroPHP\Models\Accounting\Receipt::STATUS_DRAFT node: Receipt.StatusEnum.DRAFT ruby: XeroRuby::Accounting::Receipt::DRAFT python_string: DRAFT java: com.xero.models.accounting.Receipt.StatusEnum.DRAFT csharp: Receipt.StatusEnum.DRAFT object: receipt - receipts: is_object: true key: receipts keyPascal: Receipts - add_receipt: is_last: true is_array_add: true key: receipts keyPascal: Receipts java: Receipts csharp: Receipt object: receipt parameters: - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Receipts array for newly created Receipt content: application/json: schema: $ref: '#/components/schemas/Receipts' example: '{ "Id": "35898898-5361-4b42-b6ca-9d2c584fc53d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552524583429)\/", "Receipts": [ { "ReceiptID": "a44fd147-af4e-4fe8-a09a-55332df74162", "ReceiptNumber": 1, "Status": "DRAFT", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Date": "\/Date(1552521600000+0000)\/", "UpdatedDateUTC": "\/Date(1552524583367+0000)\/", "Reference": "", "LineAmountTypes": "NoTax", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000 } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "ID": "a44fd147-af4e-4fe8-a09a-55332df74162", "HasAttachments": false, "ValidationErrors": [ { "Message": "A valid user should be identified using the UserID." } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Receipts with an array of Receipt object in body of request content: application/json: schema: $ref: '#/components/schemas/Receipts' example: '{ "Receipts": [ { "Contact": { "ContactID": "00000000-0000-0000-0000-000000000000" }, "Lineitems": [ { "Description": "Foobar", "Quantity": 2, "UnitAmount": 20, "AccountCode": "400", "TaxType": "NONE", "LineAmount": 40 } ], "User": { "UserID": "00000000-0000-0000-0000-000000000000" }, "LineAmountTypes": "NoTax", "Status": "DRAFT" } ] }' '/Receipts/{ReceiptID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getReceipt summary: Retrieves a specific draft expense claim receipt by using a unique receipt Id parameters: - $ref: '#/components/parameters/ReceiptID' - $ref: '#/components/parameters/unitdp' responses: '200': description: Success - return response of type Receipts array for a specified Receipt content: application/json: schema: $ref: '#/components/schemas/Receipts' example: '{ "Id": "2c99af06-d278-4580-8c8c-463c806af5b6", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553800357225)\/", "Receipts": [ { "ReceiptID": "a44fd147-af4e-4fe8-a09a-55332df74162", "ReceiptNumber": 1, "Status": "DRAFT", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1553672800957+0000)\/", "ContactGroups": [], "DefaultCurrency": "NZD", "ContactPersons": [], "HasValidationErrors": false }, "Date": "\/Date(1552435200000+0000)\/", "UpdatedDateUTC": "\/Date(1552524583983+0000)\/", "Reference": "Foobar", "LineAmountTypes": "NoTax", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000, "DiscountEnteredAsPercent": true } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "ID": "a44fd147-af4e-4fe8-a09a-55332df74162", "HasAttachments": true, "Attachments": [ { "AttachmentID": "e02a84f6-b83a-4983-b3b9-35cd8880c7bc", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/receipts/a44fd147-af4e-4fe8-a09a-55332df74162/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "3451e34c-66a6-42b0-91e2-88618bdc169b", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/receipts/a44fd147-af4e-4fe8-a09a-55332df74162/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateReceipt summary: Updates a specific draft expense claim receipts x-hasAccountingValidationError: true x-example: - dateValue: is_date: true key: dateValue keyPascal: Date java_datatype: LocalDate default: "LocalDate.of(2020, Month.OCTOBER, 10)" java: "LocalDate.now()" csharp: "DateTime.Now" php: "new DateTime('2020-12-10')" node: "'2020-10-10'" python: "dateutil.parser.parse('2020-10-10T00:00:00Z')" ruby: "'YYYY-MM-DD'" - user: is_object: true key: user keyPascal: User - userID: is_last: true is_uuid: true key: userID keyPascal: UserID keySnake: user_id default: 00000000-0000-0000-0000-000000000000 object: user - receipt: is_object: true key: receipt keyPascal: Receipt - set_user: is_variable: true nonString: true key: user keyPascal: User default: user object: receipt - reference: key: reference keyPascal: Reference default: Foobar object: receipt - date: is_last: true is_variable: true nonString: true key: date keyPascal: Date default: dateValue object: receipt - receipts: is_object: true key: receipts keyPascal: Receipts - add_receipt: is_last: true is_array_add: true key: receipts keyPascal: Receipts java: Receipts csharp: Receipt object: receipt parameters: - $ref: '#/components/parameters/ReceiptID' - $ref: '#/components/parameters/unitdp' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type Receipts array for updated Receipt content: application/json: schema: $ref: '#/components/schemas/Receipts' example: '{ "Id": "05b76bf7-4734-4633-a399-7d569a6a25c6", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552675557052)\/", "Receipts": [ { "ReceiptID": "e3686fdc-c661-4581-b9df-cbb20782ea66", "ReceiptNumber": 2, "Status": "DRAFT", "User": { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" }, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "ContactStatus": "ACTIVE", "Name": "Liam Gallagher", "FirstName": "Liam", "LastName": "Gallagher", "EmailAddress": "liam@rockstar.com", "BankAccountDetails": "", "Addresses": [ { "AddressType": "STREET", "City": "", "Region": "", "PostalCode": "", "Country": "", "AttentionTo": "" }, { "AddressType": "POBOX", "City": "Anytown", "Region": "NY", "PostalCode": "10101", "Country": "USA", "AttentionTo": "" } ], "Phones": [ { "PhoneType": "DEFAULT", "PhoneNumber": "222-2222", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "DDI", "PhoneNumber": "", "PhoneAreaCode": "", "PhoneCountryCode": "" }, { "PhoneType": "FAX", "PhoneNumber": "333-2233", "PhoneAreaCode": "212", "PhoneCountryCode": "" }, { "PhoneType": "MOBILE", "PhoneNumber": "444-3433", "PhoneAreaCode": "212", "PhoneCountryCode": "" } ], "UpdatedDateUTC": "\/Date(1551747281053+0000)\/", "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Date": "\/Date(1552694400000+0000)\/", "UpdatedDateUTC": "\/Date(1552675556927+0000)\/", "Reference": "Foobar", "LineAmountTypes": "NoTax", "LineItems": [ { "Description": "Foobar", "UnitAmount": 20.00, "TaxType": "NONE", "TaxAmount": 0.00, "LineAmount": 40.00, "AccountCode": "400", "Tracking": [], "Quantity": 2.0000 } ], "SubTotal": 40.00, "TotalTax": 0.00, "Total": 40.00, "ID": "e3686fdc-c661-4581-b9df-cbb20782ea66", "HasAttachments": false, "ValidationErrors": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Receipts' example: '{ "Receipts": [ { "Lineitems": [], "User": { "UserID": "00000000-0000-0000-0000-000000000000" }, "Reference": "Foobar" } ] }' '/Receipts/{ReceiptID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getReceiptAttachments summary: Retrieves attachments for a specific expense claim receipt parameters: - $ref: '#/components/parameters/ReceiptID' responses: '200': description: Success - return response of type Attachments array of Attachments for a specified Receipt x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "d379c04d-d3aa-4034-95b8-af69a449bd78", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552686430436)\/", "Attachments": [ { "AttachmentID": "11e5ca6b-d38c-42ab-a29f-c1710d171aa1", "FileName": "giphy.gif", "Url": "https://api.xero.com/api.xro/2.0/Receipts/7923c00d-163d-404c-a608-af3de333db29/Attachments/giphy.gif", "MimeType": "image/gif", "ContentLength": 495727 } ] }' '/Receipts/{ReceiptID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getReceiptAttachmentById summary: Retrieves a specific attachments from a specific expense claim receipts by using a unique attachment Id parameters: - $ref: '#/components/parameters/ReceiptID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Receipt as binary data content: application/octet-stream: schema: type: string format: binary '/Receipts/{ReceiptID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getReceiptAttachmentByFileName summary: Retrieves a specific attachment from a specific expense claim receipts by file name parameters: - $ref: '#/components/parameters/ReceiptID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Receipt as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateReceiptAttachmentByFileName x-hasAccountingValidationError: true summary: Updates a specific attachment on a specific expense claim receipts by file name parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ReceiptID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with updated Attachment for a specified Receipt x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "aeca1ea8-8fd9-4757-96a6-397dc4957a69", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552686602761)\/", "Attachments": [ { "AttachmentID": "e02a84f6-b83a-4983-b3b9-35cd8880c7bc", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/Receipts/a44fd147-af4e-4fe8-a09a-55332df74162/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createReceiptAttachmentByFileName x-hasAccountingValidationError: true summary: Creates an attachment on a specific expense claim receipts by file name parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ReceiptID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with newly created Attachment for a specified Receipt x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "01c9a720-b1f1-4477-8de8-ff46d945fd1d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1552686599884)\/", "Attachments": [ { "AttachmentID": "3451e34c-66a6-42b0-91e2-88618bdc169b", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/Receipts/a44fd147-af4e-4fe8-a09a-55332df74162/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/Receipts/{ReceiptID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getReceiptHistory summary: Retrieves a history record for a specific receipt parameters: - $ref: '#/components/parameters/ReceiptID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createReceiptHistory summary: Creates a history record for a specific receipt x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/ReceiptID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': description: Unsupported - return response incorrect exception, API is not able to create HistoryRecord for Receipts content: application/json: schema: $ref: '#/components/schemas/Error' example: '{ "ErrorNumber": 10, "Type": "ValidationException", "Message": "A validation exception occurred", "Elements": [ { "DateUTCString": "2019-03-15T21:51:50", "DateUTC": "\/Date(1552686710791)\/", "Details": "Hello World", "ValidationErrors": [ { "Message": "The document with the supplied id was not found for this endpoint." } ] } ] }' requestBody: $ref: '#/components/requestBodies/historyRecords' /RepeatingInvoices: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getRepeatingInvoices summary: Retrieves repeating invoices parameters: - in: query name: where description: Filter by an any element example: Status=="DRAFT" x-example-csharp: Status==\"DRAFT\" x-example-java: Status=="' + RepeatingInvoice.StatusEnum.DRAFT + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\RepeatingInvoice::STATUS_DRAFT . '" x-example-ruby: Status==#{XeroRuby::Accounting::RepeatingInvoice::DRAFT} schema: type: string - in: query name: order description: Order by an any element example: "Total ASC" schema: type: string responses: '200': description: Success - return response of type Repeating Invoices array for all Repeating Invoice content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "Id": "b336833d-a3a8-4a67-ab4c-6280b3ad87b0", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805183228)\/", "RepeatingInvoices": [ { "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/", "EndDate": "\/Date(1569801600000+0000)\/", "NextScheduledDate": "\/Date(1555286400000+0000)\/" }, "RepeatingInvoiceID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Type": "ACCREC", "Reference": "[Week]", "HasAttachments": true, "ApprovedForSending": false, "SendCopy": false, "MarkAsSent": false, "IncludePDF": false, "ID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "SubTotal": 5000.00, "TotalTax": 750.00, "Total": 5750.00, "CurrencyCode": "NZD" } ] }' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createRepeatingInvoices summary: Creates one or more repeating invoice templates x-hasAccountingValidationError: true parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type RepeatingInvoices array with newly created RepeatingInvoice content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "Id": "b336833d-a3a8-4a67-ab4c-6280b3ad87b0", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805183228)\/", "RepeatingInvoices": [ { "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/", "EndDate": "\/Date(1569801600000+0000)\/", "NextScheduledDate": "\/Date(1555286400000+0000)\/" }, "RepeatingInvoiceID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Type": "ACCREC", "Reference": "[Week]", "HasAttachments": true, "ApprovedForSending": false, "SendCopy": false, "MarkAsSent": false, "IncludePDF": false, "ID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "SubTotal": 5000.00, "TotalTax": 750.00, "Total": 5750.00, "CurrencyCode": "NZD" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: RepeatingInvoices with an array of repeating invoice objects in body of request content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "RepeatingInvoices": [ { "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/" }, "Type": "ACCREC", "Reference": "[Week]", "ApprovedForSending": false, "SendCopy": false, "MarkAsSent": false, "IncludePDF": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher" }, "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "CurrencyCode": "NZD" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateOrCreateRepeatingInvoices summary: Creates or deletes one or more repeating invoice templates x-hasAccountingValidationError: true parameters: - $ref: '#/components/parameters/summarizeErrors' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: Success - return response of type RepeatingInvoices array with newly created RepeatingInvoice content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "Id": "b336833d-a3a8-4a67-ab4c-6280b3ad87b0", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805183228)\/", "RepeatingInvoices": [ { "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/", "EndDate": "\/Date(1569801600000+0000)\/", "NextScheduledDate": "\/Date(1555286400000+0000)\/" }, "RepeatingInvoiceID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Type": "ACCREC", "Reference": "[Week]", "HasAttachments": true, "ApprovedForSending": false, "SendCopy": false, "MarkAsSent": false, "IncludePDF": false, "ID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "SubTotal": 5000.00, "TotalTax": 750.00, "Total": 5750.00, "CurrencyCode": "NZD" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: RepeatingInvoices with an array of repeating invoice objects in body of request content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "RepeatingInvoices": [ { "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/" }, "Type": "ACCREC", "Reference": "[Week]", "ApprovedForSending": false, "SendCopy": false, "MarkAsSent": false, "IncludePDF": false, "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher" }, "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "CurrencyCode": "NZD" } ] }' '/RepeatingInvoices/{RepeatingInvoiceID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getRepeatingInvoice summary: Retrieves a specific repeating invoice by using a unique repeating invoice Id parameters: - $ref: '#/components/parameters/RepeatingInvoiceID' responses: '200': description: Success - return response of type Repeating Invoices array with a specified Repeating Invoice content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "Id": "d9ac3755-7b81-4e3a-bef0-fa8a4f171442", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805184820)\/", "RepeatingInvoices": [ { "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/", "EndDate": "\/Date(1569801600000+0000)\/", "NextScheduledDate": "\/Date(1555286400000+0000)\/" }, "RepeatingInvoiceID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Type": "ACCREC", "Reference": "[Week]", "HasAttachments": true, "Attachments": [ { "AttachmentID": "2a488b0f-3966-4b6e-a7e1-b6d3286351f2", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "48294e40-bfd2-4027-a365-f034383cb7aa", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "528e978a-87b8-44c4-9465-9456ec2f7ee6", "FileName": "helo-heros.jpg", "Url": "https://api.xero.com/api.xro/2.0/Invoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/helo-heros.jpg", "MimeType": "image/jpeg", "ContentLength": 2878711 } ], "ID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "AUTHORISED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "SubTotal": 5000.00, "TotalTax": 750.00, "Total": 5750.00, "CurrencyCode": "NZD" } ] }' post: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: updateRepeatingInvoice summary: Deletes a specific repeating invoice template x-hasAccountingValidationError: true parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/RepeatingInvoiceID' responses: '200': description: Success - return response of type RepeatingInvoices array with deleted Invoice content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "Id": "b336833d-a3a8-4a67-ab4c-6280b3ad87b0", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805183228)\/", "RepeatingInvoices": [ { "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/", "EndDate": "\/Date(1569801600000+0000)\/", "NextScheduledDate": "\/Date(1555286400000+0000)\/" }, "RepeatingInvoiceID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Type": "ACCREC", "Reference": "[Week]", "HasAttachments": true, "ApprovedForSending": false, "SendCopy": false, "MarkAsSent": false, "IncludePDF": false, "ID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "DELETED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "SubTotal": 5000.00, "TotalTax": 750.00, "Total": 5750.00, "CurrencyCode": "NZD" } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RepeatingInvoices' example: '{ "Schedule": { "Period": 1, "Unit": "MONTHLY", "DueDate": 10, "DueDateType": "OFFOLLOWINGMONTH", "StartDate": "\/Date(1555286400000+0000)\/", "EndDate": "\/Date(1569801600000+0000)\/", "NextScheduledDate": "\/Date(1555286400000+0000)\/" }, "RepeatingInvoiceID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Type": "ACCREC", "Reference": "[Week]", "HasAttachments": true, "ApprovedForSending": false, "SendCopy": false, "MarkAsSent": false, "IncludePDF": false, "ID": "428c0d75-909f-4b04-8403-a48dc27283b0", "Contact": { "ContactID": "430fa14a-f945-44d3-9f97-5df5e28441b8", "Name": "Liam Gallagher", "Addresses": [], "Phones": [], "ContactGroups": [], "ContactPersons": [], "HasValidationErrors": false }, "Status": "DELETED", "LineAmountTypes": "Exclusive", "LineItems": [ { "Description": "Guitars Fender Strat", "UnitAmount": 5000.00, "TaxType": "OUTPUT2", "TaxAmount": 750.00, "LineAmount": 5000.00, "AccountCode": "200", "Tracking": [], "Quantity": 1.0000, "LineItemID": "13a8353c-d2af-4d5b-920c-438449f08900", "DiscountEnteredAsPercent": true } ], "SubTotal": 5000.00, "TotalTax": 750.00, "Total": 5750.00, "CurrencyCode": "NZD" }' '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getRepeatingInvoiceAttachments summary: Retrieves attachments from a specific repeating invoice parameters: - $ref: '#/components/parameters/RepeatingInvoiceID' responses: '200': description: Success - return response of type Attachments array with all Attachments for a specified Repeating Invoice x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "b88b807b-3087-474b-a4f9-d8f1b4f5a899", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805762049)\/", "Attachments": [ { "AttachmentID": "2a488b0f-3966-4b6e-a7e1-b6d3286351f2", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "48294e40-bfd2-4027-a365-f034383cb7aa", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 }, { "AttachmentID": "528e978a-87b8-44c4-9465-9456ec2f7ee6", "FileName": "helo-heros.jpg", "Url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/helo-heros.jpg", "MimeType": "image/jpeg", "ContentLength": 2878711 } ] }' '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getRepeatingInvoiceAttachmentById summary: Retrieves a specific attachment from a specific repeating invoice parameters: - $ref: '#/components/parameters/RepeatingInvoiceID' - $ref: '#/components/parameters/AttachmentID' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Repeating Invoice as binary data content: application/octet-stream: schema: type: string format: binary '/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.attachments, accounting.attachments.read] tags: - Accounting operationId: getRepeatingInvoiceAttachmentByFileName summary: Retrieves a specific attachment from a specific repeating invoices by file name parameters: - $ref: '#/components/parameters/RepeatingInvoiceID' - $ref: '#/components/parameters/FileName' - $ref: '#/components/parameters/ContentType' responses: '200': description: Success - return response of attachment for Repeating Invoice as binary data content: application/octet-stream: schema: type: string format: binary post: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: updateRepeatingInvoiceAttachmentByFileName x-hasAccountingValidationError: true summary: Updates a specific attachment from a specific repeating invoices by file name parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/RepeatingInvoiceID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with specified Attachment for a specified Repeating Invoice x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "61b24d5c-4d6e-468f-9de1-abbc234b239a", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805873362)\/", "Attachments": [ { "AttachmentID": "d086d5f4-9c3d-4edc-a87e-906248eeb652", "FileName": "HelloWorld.jpg", "Url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/HelloWorld.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte put: security: - OAuth2: [accounting.attachments] tags: - Accounting operationId: createRepeatingInvoiceAttachmentByFileName x-hasAccountingValidationError: true summary: Creates an attachment from a specific repeating invoices by file name parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/RepeatingInvoiceID' - $ref: '#/components/parameters/FileName' responses: '200': description: Success - return response of type Attachments array with updated Attachment for a specified Repeating Invoice x-isAttachment: true content: application/json: schema: $ref: '#/components/schemas/Attachments' example: '{ "Id": "219de8c0-ee70-48af-a000-594eba14b417", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553805866696)\/", "Attachments": [ { "AttachmentID": "e078e56c-9a2b-4f6c-a1fa-5d19b0dab611", "FileName": "foobar.jpg", "Url": "https://api.xero.com/api.xro/2.0/RepeatingInvoices/428c0d75-909f-4b04-8403-a48dc27283b0/Attachments/foobar.jpg", "MimeType": "image/jpg", "ContentLength": 2878711 } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: Byte array of file in body of request content: application/octet-stream: schema: type: string format: byte '/RepeatingInvoices/{RepeatingInvoiceID}/History': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.transactions, accounting.transactions.read] tags: - Accounting operationId: getRepeatingInvoiceHistory summary: Retrieves history record for a specific repeating invoice parameters: - $ref: '#/components/parameters/RepeatingInvoiceID' responses: '200': $ref: '#/components/responses/HistoryRetrieved' put: security: - OAuth2: [accounting.transactions] tags: - Accounting operationId: createRepeatingInvoiceHistory summary: Creates a history record for a specific repeating invoice x-hasAccountingValidationError: true x-example: - historyRecord: is_object: true key: historyRecord keyPascal: HistoryRecord keySnake: history_record - Details: is_last: true key: details keyPascal: Details default: Hello World object: historyRecord - historyRecords: is_object: true key: historyRecords keyPascal: HistoryRecords - add_historyRecord: is_last: true is_array_add: true key: historyRecords keyPascal: HistoryRecords keySnake: history_records java: HistoryRecords python: history_record ruby: history_record csharp: HistoryRecord object: historyRecord parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/RepeatingInvoiceID' responses: '200': $ref: '#/components/responses/HistoryRecordCreated' '400': $ref: '#/components/responses/400Error' requestBody: $ref: '#/components/requestBodies/historyRecords' '/Reports/TenNinetyNine': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read, accounting.reports.tenninetynine.read] tags: - Accounting operationId: getReportTenNinetyNine summary: Retrieve reports for 1099 parameters: - in: query name: reportYear x-snake: report_year description: The year of the 1099 report example: "2019" schema: type: string responses: '200': description: Success - return response of type Reports content: application/json: schema: $ref: '#/components/schemas/Reports' example: '{ "Id": "8b474ddb-9ef4-457c-8640-1c0e3670ea0e", "Status": "OK", "ProviderName": "Java Public Example", "DateTimeUTC": "\/Date(1691540171754)\/", "Reports": [ { "ReportName": "1099-NEC report", "ReportDate": "1 Jan 2023 to 31 Dec 2023", "Fields": [], "Contacts": [ { "Box1": 0.00, "Box2": 0.00, "Box4": 1150.00, "Name": "Bank West", "FederalTaxIDType": "SSN", "City": "Pinehaven", "Zip": "12345", "State": "CA", "Email": "jack@bowest.com", "StreetAddress": "Procurement Services\r\nGPO 1234\r\n\r\n\r\n", "TaxID": "234-22-2223", "ContactId": "81d5706a-8057-4338-8511-747cd85f4c68", "LegalName": "Jack Sparrow", "BusinessName": "Bank West", "FederalTaxClassification": "PARTNERSHIP" } ] }, { "ReportName": "1099-MISC report", "ReportDate": "1 Jan 2023 to 31 Dec 2023", "Fields": [], "Contacts": [ { "Box1": 0.00, "Box2": 0.00, "Box3": 1000.00, "Box4": 0.00, "Box5": 0.00, "Box6": 0.00, "Box7": 0.00, "Box8": 0.00, "Box9": 0.00, "Box10": 0.00, "Box11": 0.00, "Box14": 0.00, "Name": "Bank West", "FederalTaxIDType": "SSN", "City": "Pinehaven", "Zip": "12345", "State": "CA", "Email": "jack@bowest.com", "StreetAddress": "Procurement Services\r\nGPO 1234\r\n\r\n\r\n", "TaxID": "234-22-2223", "ContactId": "81d5706a-8057-4338-8511-747cd85f4c68", "LegalName": "Jack Sparrow", "BusinessName": "Bank West", "FederalTaxClassification": "PARTNERSHIP" }, { "Box1": 0.00, "Box2": 0.00, "Box3": 1000.00, "Box4": 0.00, "Box5": 0.00, "Box6": 0.00, "Box7": 0.00, "Box8": 0.00, "Box9": 0.00, "Box10": 0.00, "Box11": 0.00, "Box14": 0.00, "Name": "Hoyt Productions", "FederalTaxIDType": "SSN", "City": "Oaktown", "Zip": "45123", "State": "NY", "Email": "accounts@hoytmadeupdemo.com", "StreetAddress": "100 Rusty Ridge Road\r\nSuite 100\r\n\r\n\r\n", "TaxID": "123-45-6780", "ContactId": "19732b6a-9a5c-4651-b33c-3f8f682e2a2b", "LegalName": "Raymond Holt", "BusinessName": "Hoyt productions", "FederalTaxClassification": "S_CORP" }, { "Box1": 5543.75, "Box2": 0.00, "Box3": 0.00, "Box4": 0.00, "Box5": 0.00, "Box6": 0.00, "Box7": 0.00, "Box8": 0.00, "Box9": 0.00, "Box10": 0.00, "Box11": 0.00, "Box14": 0.00, "Name": "Truxton Property Management", "FederalTaxIDType": "EIN", "City": "Coppertown", "Zip": "21321", "State": "FL", "Email": "accounts@truxtonmadeupdemo.com", "StreetAddress": "1000 Copper Avenue\r\nSuite 1000\r\n\r\n\r\n", "TaxID": "33-3332233", "ContactId": "018355fc-c67e-4352-b443-ef3873031983", "LegalName": "Jake Peralta", "BusinessName": "Truxton Property Management", "FederalTaxClassification": "C_CORP" } ] } ] }' '/Reports/AgedPayablesByContact': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportAgedPayablesByContact summary: Retrieves report for aged payables by contact parameters: - in: query required: true name: contactId x-snake: contact_id description: Unique identifier for a Contact example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid - in: query name: date description: The date of the Aged Payables By Contact report example: "2019-10-31" schema: type: string format: date - $ref: '#/components/parameters/FromDate' - $ref: '#/components/parameters/ToDate' responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' example: '{ "Id": "5a33f9d4-44a6-4467-a812-4f025506ee35", "Status": "OK", "ProviderName": "Java Public Example", "DateTimeUTC": "\/Date(1555971088085)\/", "Reports": [ { "ReportName": "Aged Payables By Contact", "ReportType": "AgedPayablesByContact", "ReportTitles": [ "Invoices", "ABC", "From 10 October 2017 to 22 April 2019", "Showing payments to 22 April 2019" ], "ReportDate": "22 April 2019", "UpdatedDateUTC": "\/Date(1555971088085)\/", "Fields": [], "Rows": [ { "RowType": "Header", "Cells": [ { "Value": "Date" }, { "Value": "Reference" }, { "Value": "Due Date" }, { "Value": "" }, { "Value": "Total" }, { "Value": "Paid" }, { "Value": "Credited" }, { "Value": "Due" } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "2017-10-10T00:00:00" }, { "Value": "Opening Balance" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "0.00" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "2018-10-09T00:00:00", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] }, { "Value": "", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] }, { "Value": "2018-10-23T00:00:00", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] }, { "Value": "181 days overdue", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] }, { "Value": "250.00", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] }, { "Value": "250.00", "Attributes": [ { "Value": "1f3960ae-0537-4438-a4dd-76d785e6d7d8", "Id": "invoiceID" } ] } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "250.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "250.00" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Closing Balance" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "250.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "250.00" } ] } ] } ] } ] }' '/Reports/AgedReceivablesByContact': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportAgedReceivablesByContact summary: Retrieves report for aged receivables by contact parameters: - in: query required: true name: contactId x-snake: contact_id description: Unique identifier for a Contact example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid - in: query name: date description: The date of the Aged Receivables By Contact report example: "2019-10-31" schema: type: string format: date - $ref: '#/components/parameters/FromDate' - $ref: '#/components/parameters/ToDate' responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' example: '{ "Id": "b977b607-955d-47cb-92fd-7c29b3dd755c", "Status": "OK", "ProviderName": "Java Public Example", "DateTimeUTC": "\/Date(1556032862815)\/", "Reports": [ { "ReportName": "Aged Receivables By Contact", "ReportType": "AgedReceivablesByContact", "ReportTitles": [ "Invoices", "ABC", "From 10 October 2017 to 23 April 2019", "Showing payments to 23 April 2019" ], "ReportDate": "23 April 2019", "UpdatedDateUTC": "\/Date(1556032862815)\/", "Fields": [], "Rows": [ { "RowType": "Header", "Cells": [ { "Value": "Date" }, { "Value": "Number" }, { "Value": "Due Date" }, { "Value": "" }, { "Value": "Total" }, { "Value": "Paid" }, { "Value": "Credited" }, { "Value": "Due" } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "2017-10-10T00:00:00" }, { "Value": "Opening Balance" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "0.00" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "2018-05-13T00:00:00", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] }, { "Value": "IV1242016", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] }, { "Value": "2018-06-22T00:00:00", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] }, { "Value": "305 days overdue", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] }, { "Value": "100.00", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] }, { "Value": "100.00", "Attributes": [ { "Value": "40ebad47-24e2-4dc9-a5f5-579df427671b", "Id": "invoiceID" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "2019-04-23T00:00:00", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] }, { "Value": "INV-0086", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] }, { "Value": "2019-05-07T00:00:00", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] }, { "Value": "", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] }, { "Value": "50.00", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] }, { "Value": "50.00", "Attributes": [ { "Value": "ca0483ce-fa43-4335-8512-751e655337b8", "Id": "invoiceID" } ] } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "150.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "150.00" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Closing Balance" }, { "Value": "" }, { "Value": "" }, { "Value": "" }, { "Value": "150.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "150.00" } ] } ] } ] } ] }' '/Reports/BalanceSheet': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportBalanceSheet summary: Retrieves report for balancesheet parameters: - in: query name: date description: The date of the Balance Sheet report example: "2019-11-01" schema: type: string format: date - in: query name: periods description: The number of periods for the Balance Sheet report example: 3 schema: type: integer - in: query name: timeframe description: The period size to compare to (MONTH, QUARTER, YEAR) example: "MONTH" schema: type: string enum: - MONTH - QUARTER - YEAR - in: query name: trackingOptionID1 x-snake: tracking_option_id_1 description: The tracking option 1 for the Balance Sheet report example: "00000000-0000-0000-0000-000000000000" schema: type: string - in: query name: trackingOptionID2 x-snake: tracking_option_id_2 description: The tracking option 2 for the Balance Sheet report example: "00000000-0000-0000-0000-000000000000" schema: type: string - in: query name: standardLayout x-snake: standard_layout description: The standard layout boolean for the Balance Sheet report example: true x-example-python: "True" schema: type: boolean - in: query name: paymentsOnly x-snake: payments_only description: return a cash basis for the Balance Sheet report example: false x-example-python: "False" schema: type: boolean responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' example: '{ "Id": "2ddba304-6ed3-4da4-b185-3b6289699653", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555099412778)\/", "Reports": [ { "ReportName": "Balance Sheet", "ReportType": "BalanceSheet", "ReportTitles": [ "Balance Sheet", "Dev Evangelist - Sid Test 3 (NZ-2016-02)", "As at 30 April 2019" ], "ReportDate": "12 April 2019", "UpdatedDateUTC": "\/Date(1555099412778)\/", "Fields": [], "Rows": [ { "RowType": "Header", "Cells": [ { "Value": "" }, { "Value": "30 Apr 2019" }, { "Value": "31 Mar 2019" }, { "Value": "28 Feb 2019" } ] }, { "RowType": "Section", "Title": "Assets", "Rows": [] }, { "RowType": "Section", "Title": "Bank", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Country Savings", "Attributes": [ { "Value": "041207d2-3d61-4e5d-8c1a-b9236955a71c", "Id": "account" } ] }, { "Value": "-1850.00", "Attributes": [ { "Value": "041207d2-3d61-4e5d-8c1a-b9236955a71c", "Id": "account" } ] }, { "Value": "-1850.00", "Attributes": [ { "Value": "041207d2-3d61-4e5d-8c1a-b9236955a71c", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "041207d2-3d61-4e5d-8c1a-b9236955a71c", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "My Big Bank", "Attributes": [ { "Value": "300f3bde-3a5c-4035-9ec5-45b09777679a", "Id": "account" } ] }, { "Value": "2146.37", "Attributes": [ { "Value": "300f3bde-3a5c-4035-9ec5-45b09777679a", "Id": "account" } ] }, { "Value": "2020.00", "Attributes": [ { "Value": "300f3bde-3a5c-4035-9ec5-45b09777679a", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "300f3bde-3a5c-4035-9ec5-45b09777679a", "Id": "account" } ] } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Bank" }, { "Value": "296.37" }, { "Value": "170.00" }, { "Value": "0.00" } ] } ] }, { "RowType": "Section", "Title": "Current Assets", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Accounts Receivable", "Attributes": [ { "Value": "b94495d0-44ab-4199-a1d0-427a4877e100", "Id": "account" } ] }, { "Value": "154355.72", "Attributes": [ { "Value": "b94495d0-44ab-4199-a1d0-427a4877e100", "Id": "account" } ] }, { "Value": "154351.78", "Attributes": [ { "Value": "b94495d0-44ab-4199-a1d0-427a4877e100", "Id": "account" } ] }, { "Value": "356.50", "Attributes": [ { "Value": "b94495d0-44ab-4199-a1d0-427a4877e100", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Inventory", "Attributes": [ { "Value": "53a12a15-7e9b-4a31-85f4-a7cee6d04215", "Id": "account" } ] }, { "Value": "25000.00", "Attributes": [ { "Value": "53a12a15-7e9b-4a31-85f4-a7cee6d04215", "Id": "account" } ] }, { "Value": "25000.00", "Attributes": [ { "Value": "53a12a15-7e9b-4a31-85f4-a7cee6d04215", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "53a12a15-7e9b-4a31-85f4-a7cee6d04215", "Id": "account" } ] } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Current Assets" }, { "Value": "179355.72" }, { "Value": "179351.78" }, { "Value": "356.50" } ] } ] }, { "RowType": "Section", "Title": "Fixed Assets", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Office Equipment", "Attributes": [ { "Value": "7132cab3-ce56-4389-8e47-8f60d4c137f8", "Id": "account" } ] }, { "Value": "-119.00", "Attributes": [ { "Value": "7132cab3-ce56-4389-8e47-8f60d4c137f8", "Id": "account" } ] }, { "Value": "-119.00", "Attributes": [ { "Value": "7132cab3-ce56-4389-8e47-8f60d4c137f8", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "7132cab3-ce56-4389-8e47-8f60d4c137f8", "Id": "account" } ] } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Fixed Assets" }, { "Value": "-119.00" }, { "Value": "-119.00" }, { "Value": "0.00" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Assets" }, { "Value": "179533.09" }, { "Value": "179402.78" }, { "Value": "356.50" } ] } ] }, { "RowType": "Section", "Title": "Liabilities", "Rows": [] }, { "RowType": "Section", "Title": "Current Liabilities", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Accounts Payable", "Attributes": [ { "Value": "a2a4795b-a01f-40eb-afa6-a34b4514875d", "Id": "account" } ] }, { "Value": "-3469.00", "Attributes": [ { "Value": "a2a4795b-a01f-40eb-afa6-a34b4514875d", "Id": "account" } ] }, { "Value": "-3469.00", "Attributes": [ { "Value": "a2a4795b-a01f-40eb-afa6-a34b4514875d", "Id": "account" } ] }, { "Value": "-184.00", "Attributes": [ { "Value": "a2a4795b-a01f-40eb-afa6-a34b4514875d", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "GST", "Attributes": [ { "Value": "17d9a4a0-3181-4803-a96b-f0dbe589091b", "Id": "account" } ] }, { "Value": "-2446.21", "Attributes": [ { "Value": "17d9a4a0-3181-4803-a96b-f0dbe589091b", "Id": "account" } ] }, { "Value": "-2461.89", "Attributes": [ { "Value": "17d9a4a0-3181-4803-a96b-f0dbe589091b", "Id": "account" } ] }, { "Value": "76.50", "Attributes": [ { "Value": "17d9a4a0-3181-4803-a96b-f0dbe589091b", "Id": "account" } ] } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Current Liabilities" }, { "Value": "-5915.21" }, { "Value": "-5930.89" }, { "Value": "-107.50" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Liabilities" }, { "Value": "-5915.21" }, { "Value": "-5930.89" }, { "Value": "-107.50" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Net Assets" }, { "Value": "185448.30" }, { "Value": "185333.67" }, { "Value": "464.00" } ] } ] }, { "RowType": "Section", "Title": "Equity", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Current Year Earnings", "Attributes": [ { "Value": "00000000-0000-0000-0000-000000000000", "Id": "account" } ] }, { "Value": "114.62", "Attributes": [ { "Value": "00000000-0000-0000-0000-000000000000", "Id": "account" }, { "Value": "4/1/2019", "Id": "fromDate" }, { "Value": "4/30/2019", "Id": "toDate" } ] }, { "Value": "156621.67", "Attributes": [ { "Value": "00000000-0000-0000-0000-000000000000", "Id": "account" }, { "Value": "4/1/2018", "Id": "fromDate" }, { "Value": "3/31/2019", "Id": "toDate" } ] }, { "Value": "500.00", "Attributes": [ { "Value": "00000000-0000-0000-0000-000000000000", "Id": "account" }, { "Value": "4/1/2018", "Id": "fromDate" }, { "Value": "2/28/2019", "Id": "toDate" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Owner A Drawings", "Attributes": [ { "Value": "136ebd08-60ea-4592-8982-be92c153b53a", "Id": "account" } ] }, { "Value": "28752.00", "Attributes": [ { "Value": "136ebd08-60ea-4592-8982-be92c153b53a", "Id": "account" } ] }, { "Value": "28752.00", "Attributes": [ { "Value": "136ebd08-60ea-4592-8982-be92c153b53a", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "136ebd08-60ea-4592-8982-be92c153b53a", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Owner A Funds Introduced", "Attributes": [ { "Value": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Id": "account" } ] }, { "Value": "-50.00", "Attributes": [ { "Value": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Id": "account" } ] }, { "Value": "-50.00", "Attributes": [ { "Value": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Id": "account" } ] }, { "Value": "-46.00", "Attributes": [ { "Value": "5690f1e8-1d02-4893-90c2-ee1a69eff942", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Retained Earnings", "Attributes": [ { "Value": "7fc16c06-c342-4f32-995f-889b5f9996fd", "Id": "account" } ] }, { "Value": "156631.67", "Attributes": [ { "Value": "7fc16c06-c342-4f32-995f-889b5f9996fd", "Id": "account" }, { "Value": "", "Id": "fromDate" }, { "Value": "4/30/2019", "Id": "toDate" } ] }, { "Value": "10.00", "Attributes": [ { "Value": "7fc16c06-c342-4f32-995f-889b5f9996fd", "Id": "account" }, { "Value": "", "Id": "fromDate" }, { "Value": "3/31/2019", "Id": "toDate" } ] }, { "Value": "10.00", "Attributes": [ { "Value": "7fc16c06-c342-4f32-995f-889b5f9996fd", "Id": "account" }, { "Value": "", "Id": "fromDate" }, { "Value": "2/28/2019", "Id": "toDate" } ] } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Equity" }, { "Value": "185448.29" }, { "Value": "185333.67" }, { "Value": "464.00" } ] } ] } ] } ] }' '/Reports/BankSummary': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportBankSummary summary: Retrieves report for bank summary parameters: - $ref: '#/components/parameters/FromDate' - $ref: '#/components/parameters/ToDate' responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' example: '{ "Id": "ae58d0ec-9c5c-455f-b96e-690107579257", "Status": "OK", "ProviderName": "Java Public Example", "DateTimeUTC": "\/Date(1556035526223)\/", "Reports": [ { "ReportName": "Bank Summary", "ReportType": "BankSummary", "ReportTitles": [ "Bank Summary", "MindBody Test 10 (AU-2016-02)", "From 1 April 2019 to 30 April 2019" ], "ReportDate": "23 April 2019", "UpdatedDateUTC": "\/Date(1556035526223)\/", "Fields": [], "Rows": [ { "RowType": "Header", "Cells": [ { "Value": "Bank Accounts" }, { "Value": "Opening Balance" }, { "Value": "Cash Received" }, { "Value": "Cash Spent" }, { "Value": "Closing Balance" } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Big City Bank", "Attributes": [ { "Value": "03f9cf1e-2deb-4bf1-b0a8-b57f08672eb8", "Id": "accountID" } ] }, { "Value": "0.00" }, { "Value": "110.00", "Attributes": [ { "Value": "03f9cf1e-2deb-4bf1-b0a8-b57f08672eb8", "Id": "account" } ] }, { "Value": "100.00", "Attributes": [ { "Value": "03f9cf1e-2deb-4bf1-b0a8-b57f08672eb8", "Id": "account" } ] }, { "Value": "10.00" } ] }, { "RowType": "SummaryRow", "Cells": [ { "Value": "Total" }, { "Value": "0.00" }, { "Value": "110.00" }, { "Value": "100.00" }, { "Value": "10.00" } ] } ] } ] } ] }' '/Reports/{ReportID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportFromId summary: Retrieves a specific report using a unique ReportID parameters: - in: path required: true name: ReportID x-snake: report_id description: Unique identifier for a Report example: "00000000-0000-0000-0000-000000000000" schema: type: string responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' '/Reports/BudgetSummary': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportBudgetSummary summary: Retrieves report for budget summary parameters: - in: query name: date description: The date for the Bank Summary report e.g. 2018-03-31 example: "2019-03-31" schema: type: string format: date - in: query name: periods description: The number of periods to compare (integer between 1 and 12) example: 2 schema: type: integer - in: query name: timeframe description: The period size to compare to (1=month, 3=quarter, 12=year) example: 3 schema: type: integer responses: '200': description: success- return a Report with Rows object content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' example: '{ "Id": "9f1e2722-0d98-4669-890f-f8f4217c968b", "Status": "OK", "ProviderName": "provider-name", "DateTimeUTC": "\/Date(1573755037865)\/", "Reports": [ { "ReportName": "Budget Summary", "ReportType": "BudgetSummary", "ReportTitles": [ "Overall Budget", "Budget Summary", "Online Test 11", "November 2019 to October 2022" ], "ReportDate": "14 November 2019", "UpdatedDateUTC": "\/Date(1573755037865)\/", "Fields": [], "Rows": [ { "RowType": "Header", "Cells": [ { "Value": "Account" }, { "Value": "Jan-20" }, { "Value": "Apr-20" }, { "Value": "Jul-20" }, { "Value": "Oct-20" }, { "Value": "Jan-21" }, { "Value": "Apr-21" }, { "Value": "Jul-21" }, { "Value": "Oct-21" }, { "Value": "Jan-22" }, { "Value": "Apr-22" }, { "Value": "Jul-22" }, { "Value": "Oct-22" } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Gross Profit" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Total Expenses" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Net Profit" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.00" } ] } ] } ] } ] }' '/Reports/ExecutiveSummary': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportExecutiveSummary summary: Retrieves report for executive summary parameters: - in: query name: date description: The date for the Bank Summary report e.g. 2018-03-31 example: "2019-03-31" schema: type: string format: date responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' example: '{ "Id": "068d3505-ac37-43f3-8135-f912a5963d8a", "Status": "OK", "ProviderName": "provider-name", "DateTimeUTC": "/Date(1573755038314)/", "Reports": [ { "ReportName": "Executive Summary", "ReportType": "ExecutiveSummary", "ReportTitles": [ "Executive Summary", "Online Test 11", "For the month of November 2019" ], "ReportDate": "14 November 2019", "UpdatedDateUTC": "/Date(1573755038314)/", "Fields": [], "Rows": [ { "RowType": "Header", "Cells": [ { "Value": "" }, { "Value": "Nov 2019" }, { "Value": "Oct 2019" }, { "Value": "Variance" } ] }, { "RowType": "Section", "Title": "Cash", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Cash received" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Cash spent" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Cash surplus (deficit)" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Closing bank balance" }, { "Value": "79.01" }, { "Value": "79.01" }, { "Value": "0.0%" } ] } ] }, { "RowType": "Section", "Title": "Profitability", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Income" }, { "Value": "40.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Direct costs" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Gross profit (loss)" }, { "Value": "40.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Other Income" }, { "Value": "0.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Expenses" }, { "Value": "205.40" }, { "Value": "0.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Profit (loss)" }, { "Value": "-165.40" }, { "Value": "0.00" }, { "Value": "0.0%" } ] } ] }, { "RowType": "Section", "Title": "Balance Sheet", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Debtors" }, { "Value": "590.00" }, { "Value": "550.00" }, { "Value": "7.3%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Creditors" }, { "Value": "-44.00" }, { "Value": "-44.00" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Net assets" }, { "Value": "594.16" }, { "Value": "759.56" }, { "Value": "-21.8%" } ] } ] }, { "RowType": "Section", "Title": "Income", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Number of invoices issued" }, { "Value": "1" }, { "Value": "0" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Average value of invoices" }, { "Value": "40.00" }, { "Value": "0.00" }, { "Value": "0.0%" } ] } ] }, { "RowType": "Section", "Title": "Performance", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Gross profit margin" }, { "Value": "100.0%" }, { "Value": "" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Net profit margin" }, { "Value": "-413.5%" }, { "Value": "" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Return on investment (p.a.)" }, { "Value": "-334.1%" }, { "Value": "0.0%" }, { "Value": "0.0%" } ] } ] }, { "RowType": "Section", "Title": "Position", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Average debtors days" }, { "Value": "442.50" }, { "Value": "0" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Average creditors days" }, { "Value": "-6.426484907497565725413826680" }, { "Value": "0" }, { "Value": "0.0%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Short term cash forecast" }, { "Value": "634.00" }, { "Value": "594.00" }, { "Value": "6.7%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Current assets to liabilities" }, { "Value": "4.0729764675459012154124644427" }, { "Value": "-62.034024896265560165975103734" }, { "Value": "106.6%" } ] }, { "RowType": "Row", "Cells": [ { "Value": "Term assets to liabilities" }, { "Value": "" }, { "Value": "" }, { "Value": "0.0%" } ] } ] } ] } ] }' '/Reports': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportsList summary: Retrieves a list of the organistaions unique reports that require a uuid to fetch responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' '/Reports/ProfitAndLoss': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportProfitAndLoss summary: Retrieves report for profit and loss parameters: - $ref: '#/components/parameters/FromDate' - $ref: '#/components/parameters/ToDate' - in: query name: periods description: The number of periods to compare (integer between 1 and 12) example: 3 schema: type: integer - in: query name: timeframe description: The period size to compare to (MONTH, QUARTER, YEAR) example: "MONTH" schema: type: string enum: - MONTH - QUARTER - YEAR - in: query name: trackingCategoryID x-snake: tracking_category_id description: The trackingCategory 1 for the ProfitAndLoss report example: "00000000-0000-0000-0000-000000000000" schema: type: string - in: query name: trackingCategoryID2 x-snake: tracking_category_id_2 description: The trackingCategory 2 for the ProfitAndLoss report example: "00000000-0000-0000-0000-000000000000" schema: type: string - in: query name: trackingOptionID x-snake: tracking_option_id description: The tracking option 1 for the ProfitAndLoss report example: "00000000-0000-0000-0000-000000000000" schema: type: string - in: query name: trackingOptionID2 x-snake: tracking_option_id_2 description: The tracking option 2 for the ProfitAndLoss report example: "00000000-0000-0000-0000-000000000000" schema: type: string - in: query name: standardLayout x-snake: standard_layout description: Return the standard layout for the ProfitAndLoss report example: "true" x-example-python: "True" schema: type: boolean - in: query name: paymentsOnly x-snake: payments_only description: Return cash only basis for the ProfitAndLoss report example: "false" x-example-python: "False" schema: type: boolean responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' '/Reports/TrialBalance': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.reports.read] tags: - Accounting operationId: getReportTrialBalance summary: Retrieves report for trial balance parameters: - in: query name: date description: The date for the Trial Balance report e.g. 2018-03-31 example: "2019-10-31" schema: type: string format: date - in: query name: paymentsOnly x-snake: payments_only description: Return cash only basis for the Trial Balance report example: "true" x-example-python: "True" schema: type: boolean responses: '200': description: Success - return response of type ReportWithRows content: application/json: schema: $ref: '#/components/schemas/ReportWithRows' example: '{ "Id": "0b3ee35e-b97c-4b3c-b7e2-9a465233e329", "Status": "OK", "ProviderName": "Java Public Example", "DateTimeUTC": "\/Date(1556129558740)\/", "Reports": [ { "ReportName": "Trial Balance", "ReportType": "TrialBalance", "ReportTitles": [ "Trial Balance", "Dev Evangelist - Sid Test 1 (US-2016-06)", "As at 24 April 2019" ], "ReportDate": "24 April 2019", "UpdatedDateUTC": "\/Date(1556129558724)\/", "Fields": [], "Rows": [ { "RowType": "Header", "Cells": [ { "Value": "Account" }, { "Value": "Debit" }, { "Value": "Credit" }, { "Value": "YTD Debit" }, { "Value": "YTD Credit" } ] }, { "RowType": "Section", "Title": "Revenue", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Big Expense (002)", "Attributes": [ { "Value": "da962997-a8bd-4dff-9616-01cdc199283f", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "da962997-a8bd-4dff-9616-01cdc199283f", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "da962997-a8bd-4dff-9616-01cdc199283f", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "da962997-a8bd-4dff-9616-01cdc199283f", "Id": "account" } ] }, { "Value": "80.00", "Attributes": [ { "Value": "da962997-a8bd-4dff-9616-01cdc199283f", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Sales (400)", "Attributes": [ { "Value": "02439bca-5fdc-4b62-b281-0bdf9f16fd5b", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "02439bca-5fdc-4b62-b281-0bdf9f16fd5b", "Id": "account" } ] }, { "Value": "200.00", "Attributes": [ { "Value": "02439bca-5fdc-4b62-b281-0bdf9f16fd5b", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "02439bca-5fdc-4b62-b281-0bdf9f16fd5b", "Id": "account" } ] }, { "Value": "1020.22", "Attributes": [ { "Value": "02439bca-5fdc-4b62-b281-0bdf9f16fd5b", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Sales-35325 (1302)", "Attributes": [ { "Value": "3f50db14-1fe6-450b-bfe8-b2d894f18c62", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "3f50db14-1fe6-450b-bfe8-b2d894f18c62", "Id": "account" } ] }, { "Value": "1000.00", "Attributes": [ { "Value": "3f50db14-1fe6-450b-bfe8-b2d894f18c62", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "3f50db14-1fe6-450b-bfe8-b2d894f18c62", "Id": "account" } ] }, { "Value": "1000.00", "Attributes": [ { "Value": "3f50db14-1fe6-450b-bfe8-b2d894f18c62", "Id": "account" } ] } ] } ] }, { "RowType": "Section", "Title": "Expenses", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Foobar14043 (123)", "Attributes": [ { "Value": "d1602f69-f900-4616-8d34-90af393fa368", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "d1602f69-f900-4616-8d34-90af393fa368", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "d1602f69-f900-4616-8d34-90af393fa368", "Id": "account" } ] }, { "Value": "40.00", "Attributes": [ { "Value": "d1602f69-f900-4616-8d34-90af393fa368", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "d1602f69-f900-4616-8d34-90af393fa368", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "MyExp51937 (1231239)", "Attributes": [ { "Value": "90f10e0a-a043-46fe-b87e-630e9a951dae", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "90f10e0a-a043-46fe-b87e-630e9a951dae", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "90f10e0a-a043-46fe-b87e-630e9a951dae", "Id": "account" } ] }, { "Value": "80.00", "Attributes": [ { "Value": "90f10e0a-a043-46fe-b87e-630e9a951dae", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "90f10e0a-a043-46fe-b87e-630e9a951dae", "Id": "account" } ] } ] } ] }, { "RowType": "Section", "Title": "Assets", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Accounts Receivable (120)", "Attributes": [ { "Value": "31ae5bb4-611c-4f89-a369-86e4d56e90b6", "Id": "account" } ] }, { "Value": "1190.00", "Attributes": [ { "Value": "31ae5bb4-611c-4f89-a369-86e4d56e90b6", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "31ae5bb4-611c-4f89-a369-86e4d56e90b6", "Id": "account" } ] }, { "Value": "36555.04", "Attributes": [ { "Value": "31ae5bb4-611c-4f89-a369-86e4d56e90b6", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "31ae5bb4-611c-4f89-a369-86e4d56e90b6", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Business Wells Fargo (088)", "Attributes": [ { "Value": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Id": "account" } ] }, { "Value": "7639.04", "Attributes": [ { "Value": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "6f7594f2-f059-4d56-9e67-47ac9733bfe9", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Generic Cash Clearing (8003)", "Attributes": [ { "Value": "f4be973a-25fc-48d0-a7df-7f719f239729", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "f4be973a-25fc-48d0-a7df-7f719f239729", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "f4be973a-25fc-48d0-a7df-7f719f239729", "Id": "account" } ] }, { "Value": "1443.00", "Attributes": [ { "Value": "f4be973a-25fc-48d0-a7df-7f719f239729", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "f4be973a-25fc-48d0-a7df-7f719f239729", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Generic Credit Card Clearing (8002)", "Attributes": [ { "Value": "a10867ac-0bc4-4aa5-af00-b9e5b207c6c3", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "a10867ac-0bc4-4aa5-af00-b9e5b207c6c3", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "a10867ac-0bc4-4aa5-af00-b9e5b207c6c3", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "a10867ac-0bc4-4aa5-af00-b9e5b207c6c3", "Id": "account" } ] }, { "Value": "96.49", "Attributes": [ { "Value": "a10867ac-0bc4-4aa5-af00-b9e5b207c6c3", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Generic Inventory (1400)", "Attributes": [ { "Value": "7422f1b6-619f-488c-89e1-91bdde20216c", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "7422f1b6-619f-488c-89e1-91bdde20216c", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "7422f1b6-619f-488c-89e1-91bdde20216c", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "7422f1b6-619f-488c-89e1-91bdde20216c", "Id": "account" } ] }, { "Value": "160.00", "Attributes": [ { "Value": "7422f1b6-619f-488c-89e1-91bdde20216c", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "My Savings (090)", "Attributes": [ { "Value": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Id": "account" } ] }, { "Value": "219.92", "Attributes": [ { "Value": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "7e5e243b-9fcd-4aef-8e3a-c70be1e39bfa", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Payment Wall Clearing Account (8001)", "Attributes": [ { "Value": "bc06840c-12c5-4e22-bb57-fef4d64bac10", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "bc06840c-12c5-4e22-bb57-fef4d64bac10", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "bc06840c-12c5-4e22-bb57-fef4d64bac10", "Id": "account" } ] }, { "Value": "1.00", "Attributes": [ { "Value": "bc06840c-12c5-4e22-bb57-fef4d64bac10", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "bc06840c-12c5-4e22-bb57-fef4d64bac10", "Id": "account" } ] } ] } ] }, { "RowType": "Section", "Title": "Liabilities", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Accounts Payable (200)", "Attributes": [ { "Value": "e9132ee7-4dcf-4fad-b76c-86e212af645a", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "e9132ee7-4dcf-4fad-b76c-86e212af645a", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "e9132ee7-4dcf-4fad-b76c-86e212af645a", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "e9132ee7-4dcf-4fad-b76c-86e212af645a", "Id": "account" } ] }, { "Value": "9223.00", "Attributes": [ { "Value": "e9132ee7-4dcf-4fad-b76c-86e212af645a", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Deferred Revenue (2300)", "Attributes": [ { "Value": "f22cd74e-f59d-4f38-a08d-07e14df28c24", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "f22cd74e-f59d-4f38-a08d-07e14df28c24", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "f22cd74e-f59d-4f38-a08d-07e14df28c24", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "f22cd74e-f59d-4f38-a08d-07e14df28c24", "Id": "account" } ] }, { "Value": "1854.24", "Attributes": [ { "Value": "f22cd74e-f59d-4f38-a08d-07e14df28c24", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Rounding (260)", "Attributes": [ { "Value": "f0072999-8f7c-4b01-bce9-bd9352f98e02", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "f0072999-8f7c-4b01-bce9-bd9352f98e02", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "f0072999-8f7c-4b01-bce9-bd9352f98e02", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "f0072999-8f7c-4b01-bce9-bd9352f98e02", "Id": "account" } ] }, { "Value": "0.01", "Attributes": [ { "Value": "f0072999-8f7c-4b01-bce9-bd9352f98e02", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Sales Tax (220)", "Attributes": [ { "Value": "af0be362-45fe-4730-a8af-634c2fb93f4d", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "af0be362-45fe-4730-a8af-634c2fb93f4d", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "af0be362-45fe-4730-a8af-634c2fb93f4d", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "af0be362-45fe-4730-a8af-634c2fb93f4d", "Id": "account" } ] }, { "Value": "1578.35", "Attributes": [ { "Value": "af0be362-45fe-4730-a8af-634c2fb93f4d", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Suspense (250)", "Attributes": [ { "Value": "5ec2f302-cd60-4f8b-a915-9229dd45e6fa", "Id": "account" } ] }, { "Value": "10.00", "Attributes": [ { "Value": "5ec2f302-cd60-4f8b-a915-9229dd45e6fa", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "5ec2f302-cd60-4f8b-a915-9229dd45e6fa", "Id": "account" } ] }, { "Value": "41.00", "Attributes": [ { "Value": "5ec2f302-cd60-4f8b-a915-9229dd45e6fa", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "5ec2f302-cd60-4f8b-a915-9229dd45e6fa", "Id": "account" } ] } ] }, { "RowType": "Row", "Cells": [ { "Value": "Unpaid Expense Claims (210)", "Attributes": [ { "Value": "38e6967d-4da1-4a93-85f1-ea3c93b61041", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "38e6967d-4da1-4a93-85f1-ea3c93b61041", "Id": "account" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "38e6967d-4da1-4a93-85f1-ea3c93b61041", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "38e6967d-4da1-4a93-85f1-ea3c93b61041", "Id": "account" } ] }, { "Value": "135.00", "Attributes": [ { "Value": "38e6967d-4da1-4a93-85f1-ea3c93b61041", "Id": "account" } ] } ] } ] }, { "RowType": "Section", "Title": "Equity", "Rows": [ { "RowType": "Row", "Cells": [ { "Value": "Retained Earnings (320)", "Attributes": [ { "Value": "6ef53919-b47d-4341-b11a-735a3f8a6515", "Id": "account" } ] }, { "Value": "", "Attributes": [ { "Value": "6ef53919-b47d-4341-b11a-735a3f8a6515", "Id": "account" }, { "Value": "", "Id": "fromDate" }, { "Value": "12/31/2018", "Id": "toDate" } ] }, { "Value": "0.00", "Attributes": [ { "Value": "6ef53919-b47d-4341-b11a-735a3f8a6515", "Id": "account" }, { "Value": "", "Id": "fromDate" }, { "Value": "12/31/2018", "Id": "toDate" } ] }, { "Value": "", "Attributes": [ { "Value": "6ef53919-b47d-4341-b11a-735a3f8a6515", "Id": "account" }, { "Value": "", "Id": "fromDate" }, { "Value": "12/31/2018", "Id": "toDate" } ] }, { "Value": "30871.69", "Attributes": [ { "Value": "6ef53919-b47d-4341-b11a-735a3f8a6515", "Id": "account" }, { "Value": "", "Id": "fromDate" }, { "Value": "12/31/2018", "Id": "toDate" } ] } ] } ] }, { "RowType": "Section", "Title": "", "Rows": [ { "RowType": "SummaryRow", "Cells": [ { "Value": "Total" }, { "Value": "1200.00" }, { "Value": "1200.00" }, { "Value": "46019.00" }, { "Value": "46019.00" } ] } ] } ] } ] }' /Setup: parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: postSetup summary: Sets the chart of accounts, the conversion date and conversion balances parameters: - $ref: '#/components/parameters/idempotencyKey' x-example: - account: is_object: true key: account keyPascal: Account - code: key: code keyPascal: Code default: 123 object: account - name: key: name keyPascal: Name default: Business supplies object: account - type: is_last: true key: type keyPascal: Type default: EXPENSE nonString: true php: XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE node: AccountType.EXPENSE ruby: XeroRuby::Accounting::AccountType::EXPENSE python: AccountType.EXPENSE java: com.xero.models.accounting.AccountType.EXPENSE csharp: AccountType.EXPENSE object: account - accounts: is_list: true key: accounts keyPascal: Account - add_accounts: is_last: true is_list_add: true key: accounts keyPascal: Accounts object: account - conversionDate: is_object: true key: conversionDate keyPascal: ConversionDate keySnake: conversion_date - month: nonString: true key: month keyPascal: Month default: 10 object: conversionDate - year: is_last: true nonString: true key: year keyPascal: Year default: 2020 object: conversionDate - conversionBalances: is_list: true key: conversionBalances keyPascal: ConversionBalances keySnake: conversion_balances - Setup: is_object: true key: setup keyPascal: Setup - set_accounts: is_variable: true nonString: true key: accounts keyPascal: Accounts default: accounts object: setup - set_conversionDate: is_variable: true nonString: true key: conversionDate keyPascal: ConversionDate keySnake: conversion_date default: conversionDate python: conversion_date ruby: conversion_date object: setup - set_conversionBalances: is_last: true is_variable: true nonString: true key: conversionBalances keyPascal: ConversionBalances keySnake: conversion_balances default: conversionBalances python: conversion_balances ruby: conversion_balances object: setup responses: '200': description: Success - returns a summary of the chart of accounts updates content: application/json: schema: $ref: '#/components/schemas/ImportSummaryObject' example: '{ "Id": "80dcb65b-4d14-4350-84e6-1438a809244a", "Status": "OK", "ProviderName": "Java Public Example", "DateTimeUTC": "/Date(1604457589645)/", "ImportSummary": { "Accounts": { "Total": 17, "New": 0, "Updated": 8, "Deleted": 0, "Locked": 0, "System": 9, "Errored": 0, "Present": true, "NewOrUpdated": 8 }, "Organisation": { "Present": false } } }' requestBody: required: true description: Object including an accounts array, a conversion balances array and a conversion date object in body of request content: application/json: schema: $ref: '#/components/schemas/Setup' example: '{ "ConversionDate": {}, "ConversionBalances": [], "Accounts": [ { "Code": "200", "Name": "Sales", "Type": "SALES", "ReportingCode": "REV.TRA.GOO" }, { "Code": "400", "Name": "Advertising", "Type": "OVERHEADS", "ReportingCode": "EXP" }, { "Code": "610", "Name": "Accounts Receivable", "Type": "CURRENT", "SystemAccount": "DEBTORS", "ReportingCode": "ASS.CUR.REC.TRA" }, { "Code": "800", "Name": "Accounts Payable", "Type": "CURRLIAB", "SystemAccount": "CREDITORS", "ReportingCode": "LIA.CUR.PAY" } ] }' /TaxRates: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getTaxRates summary: Retrieves tax rates parameters: - in: query name: where description: Filter by an any element example: Status=="ACTIVE" x-example-csharp: Status==\"ACTIVE\" x-example-java: Status=="' + TaxRate.StatusEnum.ACTIVE + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\TaxRate::STATUS_ACTIVE . '" x-example-ruby: Status==#{XeroRuby::Accounting::TaxRate::ACTIVE} schema: type: string - in: query name: order description: Order by an any element example: "Name ASC" schema: type: string responses: '200': description: Success - return response of type TaxRates array with TaxRates content: application/json: schema: $ref: '#/components/schemas/TaxRates' example: '{ "Id": "455d494d-9706-465b-b584-7086ca406b27", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555086839841)\/", "TaxRates": [ { "Name": "15% GST on Expenses", "TaxType": "INPUT2", "ReportTaxType": "INPUT", "CanApplyToAssets": true, "CanApplyToEquity": true, "CanApplyToExpenses": true, "CanApplyToLiabilities": true, "CanApplyToRevenue": false, "DisplayTaxRate": 15.0000, "EffectiveRate": 15.0000, "Status": "ACTIVE", "TaxComponents": [ { "Name": "GST", "Rate": 15.0000, "IsCompound": false, "IsNonRecoverable": false } ] }, { "Name": "15% GST on Income", "TaxType": "OUTPUT2", "ReportTaxType": "OUTPUT", "CanApplyToAssets": true, "CanApplyToEquity": true, "CanApplyToExpenses": false, "CanApplyToLiabilities": true, "CanApplyToRevenue": true, "DisplayTaxRate": 15.0000, "EffectiveRate": 15.0000, "Status": "ACTIVE", "TaxComponents": [ { "Name": "GST", "Rate": 15.0000, "IsCompound": false, "IsNonRecoverable": false } ] }, { "Name": "GST on Imports", "TaxType": "GSTONIMPORTS", "ReportTaxType": "GSTONIMPORTS", "CanApplyToAssets": false, "CanApplyToEquity": false, "CanApplyToExpenses": false, "CanApplyToLiabilities": true, "CanApplyToRevenue": false, "DisplayTaxRate": 0.0000, "EffectiveRate": 0.0000, "Status": "ACTIVE", "TaxComponents": [ { "Name": "GST", "Rate": 0.0000, "IsCompound": false, "IsNonRecoverable": false } ] }, { "Name": "No GST", "TaxType": "NONE", "ReportTaxType": "NONE", "CanApplyToAssets": true, "CanApplyToEquity": true, "CanApplyToExpenses": true, "CanApplyToLiabilities": true, "CanApplyToRevenue": true, "DisplayTaxRate": 0.0000, "EffectiveRate": 0.0000, "Status": "ACTIVE", "TaxComponents": [ { "Name": "GST", "Rate": 0.0000, "IsCompound": false, "IsNonRecoverable": false } ] }, { "Name": "Zero Rated", "TaxType": "ZERORATED", "ReportTaxType": "OUTPUT", "CanApplyToAssets": false, "CanApplyToEquity": false, "CanApplyToExpenses": false, "CanApplyToLiabilities": true, "CanApplyToRevenue": true, "DisplayTaxRate": 0.0000, "EffectiveRate": 0.0000, "Status": "ACTIVE", "TaxComponents": [ { "Name": "GST", "Rate": 0.0000, "IsCompound": false, "IsNonRecoverable": false } ] } ] }' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createTaxRates summary: Creates one or more tax rates parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - taxComponent: is_object: true key: taxComponent keyPascal: TaxComponent keySnake: tax_component - name: key: name keyPascal: Name default: State Tax object: taxComponent - rate: is_last: true nonString: true key: rate keyPascal: Rate default: 2.25 is_money: true object: taxComponent - taxComponents: is_list: true key: taxComponent keyPascal: TaxComponent csharp: TaxComponent - add_taxComponent: is_last: true is_list_add: true key: taxComponents keyPascal: TaxComponents keySnake: tax_components java: TaxComponents python: tax_component ruby: tax_component csharp: TaxComponent object: taxComponent - taxRate: is_object: true key: taxRate keyPascal: TaxRate keySnake: tax_rate - name: key: name keyPascal: Name default: CA State Tax object: taxRate - set_taxComponents: is_variable: true nonString: true key: taxComponents keyPascal: TaxComponents object: taxRate default: taxComponents - taxRates: is_object: true key: taxRates keyPascal: TaxRates - add_taxRate: is_last: true is_array_add: true key: taxRates keyPascal: TaxRates keySnake: tax_rates java: TaxRates python: tax_rate ruby: tax_rate csharp: TaxRate object: taxRate responses: '200': description: Success - return response of type TaxRates array newly created TaxRate content: application/json: schema: $ref: '#/components/schemas/TaxRates' example: '{ "Id": "9d2c5e56-fab4-450b-a5ff-d47409508eab", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555086839080)\/", "TaxRates": [ { "Name": "SDKTax29067", "TaxType": "TAX002", "ReportTaxType": "INPUT", "CanApplyToAssets": true, "CanApplyToEquity": true, "CanApplyToExpenses": true, "CanApplyToLiabilities": true, "CanApplyToRevenue": false, "DisplayTaxRate": 2.2500, "EffectiveRate": 2.2500, "Status": "ACTIVE", "TaxComponents": [ { "Name": "State Tax", "Rate": 2.2500, "IsCompound": false, "IsNonRecoverable": false } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: TaxRates array with TaxRate object in body of request content: application/json: schema: $ref: '#/components/schemas/TaxRates' example: '{ "TaxRates": [ { "Name": "CA State Tax", "TaxComponents": [ { "Name": "State Tax", "Rate": 2.25 } ] } ] }' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: updateTaxRate summary: Updates tax rates parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - taxComponent: is_object: true key: taxComponent keyPascal: TaxComponent keySnake: tax_component - name: key: name keyPascal: Name default: State Tax object: taxComponent - rate: is_last: true nonString: true key: rate keyPascal: Rate default: 2.25 is_money: true object: taxComponent - taxComponents: is_list: true key: taxComponents keyPascal: TaxComponents csharp: TaxComponent - add_taxComponent: is_last: true is_list_add: true key: taxComponents keyPascal: TaxComponents keySnake: tax_components java: TaxComponents python: tax_component ruby: tax_component csharp: TaxComponent object: taxComponent - taxRate: is_object: true key: taxRate keyPascal: TaxRate keySnake: tax_rate - name: key: name keyPascal: Name default: CA State Tax object: taxRate - set_taxComponents: is_variable: true nonString: true key: taxComponents keyPascal: TaxComponents object: taxRate default: taxComponents - taxRates: is_object: true key: taxRates keyPascal: TaxRates - add_taxRate: is_last: true is_array_add: true key: taxRates keyPascal: TaxRates keySnake: tax_rates java: TaxRates python: tax_rate ruby: tax_rate csharp: TaxRate object: taxRate responses: '200': description: Success - return response of type TaxRates array updated TaxRate content: application/json: schema: $ref: '#/components/schemas/TaxRates' example: '{ "Id": "12f4c453-2e25-41aa-a52f-6faaf6c05832", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555086839658)\/", "TaxRates": [ { "Name": "SDKTax29067", "TaxType": "TAX002", "ReportTaxType": "INPUT", "CanApplyToAssets": true, "CanApplyToEquity": true, "CanApplyToExpenses": true, "CanApplyToLiabilities": true, "CanApplyToRevenue": false, "DisplayTaxRate": 2.2500, "EffectiveRate": 2.2500, "Status": "DELETED", "TaxComponents": [ { "Name": "State Tax", "Rate": 2.2500, "IsCompound": false, "IsNonRecoverable": false } ] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TaxRates' example: '{ "TaxRates": [ { "Name": "State Tax NY", "TaxComponents": [ { "Name": "State Tax", "Rate": 2.25 } ], "Status": "DELETED", "ReportTaxType": "INPUT" } ] }' "/TaxRates/{TaxType}": parameters: - $ref: "#/components/parameters/requiredHeader" get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getTaxRateByTaxType summary: Retrieves a specific tax rate according to given TaxType code parameters: - $ref: "#/components/parameters/TaxType" responses: "200": description: Success - return response of type TaxRates array with one TaxRate content: application/json: schema: $ref: "#/components/schemas/TaxRates" example: '{ "Id": "455d494d-9706-465b-b584-7086ca406b27", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550797359081)\/", "TaxRates": [ { "Name": "15% GST on Expenses", "TaxType": "INPUT2", "ReportTaxType": "INPUT", "CanApplyToAssets": true, "CanApplyToEquity": true, "CanApplyToExpenses": true, "CanApplyToLiabilities": true, "CanApplyToRevenue": false, "DisplayTaxRate": 15.0000, "EffectiveRate": 15.0000, "Status": "ACTIVE", "TaxComponents": [ { "Name": "GST", "Rate": 15.0000, "IsCompound": false, "IsNonRecoverable": false } ] } ] }' /TrackingCategories: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getTrackingCategories summary: Retrieves tracking categories and options parameters: - in: query name: where description: Filter by an any element example: Status=="ACTIVE" x-example-csharp: Status==\"ACTIVE\" x-example-java: Status=="' + TrackingCategory.StatusEnum.ACTIVE + '" x-example-php: Status=="' . \XeroAPI\XeroPHP\Models\Accounting\TrackingCategory::STATUS_ACTIVE . '" x-example-ruby: Status==#{XeroRuby::Accounting::TrackingCategory::ACTIVE} schema: type: string - in: query name: order description: Order by an any element example: "Name ASC" schema: type: string - in: query name: includeArchived x-snake: include_archived description: e.g. includeArchived=true - Categories and options with a status of ARCHIVED will be included in the response example: true x-example-python: "True" schema: type: boolean responses: '200': description: Success - return response of type TrackingCategories array of TrackingCategory content: application/json: schema: $ref: '#/components/schemas/TrackingCategories' example: '{ "Id": "cec55068-8061-48e5-ac83-c77e7c54cf3d", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555085855047)\/", "TrackingCategories": [ { "Name": "BarFoo", "Status": "ACTIVE", "TrackingCategoryID": "22f10184-0deb-44ae-a312-b1f6ea70e51f", "Options": [] }, { "Name": "HelloWorld", "Status": "ACTIVE", "TrackingCategoryID": "0c9fce3e-a111-4d99-803a-62cf3f40e633", "Options": [] } ] }' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createTrackingCategory summary: Create tracking categories parameters: - $ref: '#/components/parameters/idempotencyKey' x-hasAccountingValidationError: true x-example: - trackingCategory: is_object: true key: trackingCategory keyPascal: TrackingCategory - name: is_last: true key: name keyPascal: Name default: Foobar object: trackingCategory responses: '200': description: Success - return response of type TrackingCategories array of newly created TrackingCategory content: application/json: schema: $ref: '#/components/schemas/TrackingCategories' example: '{ "Id": "1a9f8e03-9916-4a42-93a9-e8fa4902d49c", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555085855988)\/", "TrackingCategories": [ { "Name": "FooBar", "Status": "ACTIVE", "TrackingCategoryID": "b1df776b-b093-4730-b6ea-590cca40e723", "Options": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: TrackingCategory object in body of request content: application/json: schema: $ref: '#/components/schemas/TrackingCategory' example: '{ name: "FooBar" }' '/TrackingCategories/{TrackingCategoryID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getTrackingCategory summary: Retrieves specific tracking categories and options using a unique tracking category Id parameters: - $ref: '#/components/parameters/TrackingCategoryID' responses: '200': description: Success - return response of type TrackingCategories array of specified TrackingCategory content: application/json: schema: $ref: '#/components/schemas/TrackingCategories' example: '{ "Id": "b75b8862-39c0-45a8-82b8-30ab4831996b", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555085855442)\/", "TrackingCategories": [ { "Name": "Foo41157", "Status": "DELETED", "TrackingCategoryID": "22f10184-0deb-44ae-a312-b1f6ea70e51f", "Options": [] } ] }' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: updateTrackingCategory summary: Updates a specific tracking category x-hasAccountingValidationError: true x-example: - trackingCategory: is_object: true key: trackingCategory keyPascal: TrackingCategory - name: is_last: true key: name keyPascal: Name default: Foobar object: trackingCategory parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/TrackingCategoryID' responses: '200': description: Success - return response of type TrackingCategories array of updated TrackingCategory content: application/json: schema: $ref: '#/components/schemas/TrackingCategories' example: '{ "Id": "55438774-f87d-4731-b586-799cf0f914ed", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555085856275)\/", "TrackingCategories": [ { "Name": "BarFoo", "Status": "ACTIVE", "TrackingCategoryID": "b1df776b-b093-4730-b6ea-590cca40e723", "Options": [] } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TrackingCategory' example: '{ "Name": "Avengers" }' delete: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: deleteTrackingCategory summary: Deletes a specific tracking category parameters: - $ref: '#/components/parameters/TrackingCategoryID' responses: '200': description: Success - return response of type TrackingCategories array of deleted TrackingCategory content: application/json: schema: $ref: '#/components/schemas/TrackingCategories' example: '{ "Id": "ca7f8145-c8a5-4366-a2fb-784edc0cfbb7", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555086457922)\/", "TrackingCategories": [ { "Name": "Foo46189", "Status": "DELETED", "TrackingCategoryID": "0390bdfd-94f2-49d6-b7a0-4a38c46ebf03", "Options": [] } ] }' '400': $ref: '#/components/responses/400Error' '/TrackingCategories/{TrackingCategoryID}/Options': parameters: - $ref: '#/components/parameters/requiredHeader' put: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: createTrackingOptions summary: Creates options for a specific tracking category x-hasAccountingValidationError: true x-example: - trackingOption: is_object: true key: trackingOption keyPascal: TrackingOption - name: is_last: true key: name keyPascal: Name default: Foobar object: trackingOption parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/TrackingCategoryID' responses: '200': description: Success - return response of type TrackingOptions array of options for a specified category content: application/json: schema: $ref: '#/components/schemas/TrackingOptions' example: '{ "Id": "923be702-d124-4f5c-a568-760906538d8e", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555085857061)\/", "Options": [ { "TrackingOptionID": "34669548-b989-487a-979f-0787d04568a2", "Name": "Bar40423", "Status": "ACTIVE", "HasValidationErrors": false, "IsDeleted": false, "IsArchived": false, "IsActive": true } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true description: TrackingOption object in body of request content: application/json: schema: $ref: '#/components/schemas/TrackingOption' example: '{ name: " Bar" }' '/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}': parameters: - $ref: '#/components/parameters/requiredHeader' post: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: updateTrackingOptions summary: Updates a specific option for a specific tracking category x-hasAccountingValidationError: true x-example: - trackingOption: is_object: true key: trackingOption keyPascal: TrackingOption - name: is_last: true key: name keyPascal: Name default: Foobar object: trackingOption parameters: - $ref: '#/components/parameters/idempotencyKey' - $ref: '#/components/parameters/TrackingCategoryID' - $ref: '#/components/parameters/TrackingOptionID' responses: '200': description: Success - return response of type TrackingOptions array of options for a specified category content: application/json: schema: $ref: '#/components/schemas/TrackingOptions' example: '{ "Id": "923be702-d124-4f5c-a568-760906538d8e", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555085857061)\/", "Options": [ { "TrackingOptionID": "34669548-b989-487a-979f-0787d04568a2", "Name": "Bar40423", "Status": "ACTIVE", "HasValidationErrors": false, "IsDeleted": false, "IsArchived": false, "IsActive": true } ] }' '400': $ref: '#/components/responses/400Error' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TrackingOption' example: '{ name: "Vision" }' delete: security: - OAuth2: [accounting.settings] tags: - Accounting operationId: deleteTrackingOptions summary: Deletes a specific option for a specific tracking category parameters: - $ref: '#/components/parameters/TrackingCategoryID' - $ref: '#/components/parameters/TrackingOptionID' responses: '200': description: Success - return response of type TrackingOptions array of remaining options for a specified category content: application/json: schema: $ref: '#/components/schemas/TrackingOptions' example: '{ "Id": "d985866e-0831-418f-a07c-4d843ff66d25", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1555085857338)\/", "Options": [ { "TrackingOptionID": "34669548-b989-487a-979f-0787d04568a2", "Name": "Bar40423", "Status": "DELETED", "HasValidationErrors": false, "IsDeleted": true, "IsArchived": false, "IsActive": false } ] }' '400': $ref: '#/components/responses/400Error' /Users: parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getUsers summary: Retrieves users parameters: - $ref: '#/components/parameters/ifModifiedSince' - in: query name: where description: Filter by an any element example: IsSubscriber==true schema: type: string - in: query name: order description: Order by an any element example: "LastName ASC" schema: type: string responses: '200': description: Success - return response of type Users array of all User content: application/json: schema: $ref: '#/components/schemas/Users' example: '{ "Id": "17932a4e-4948-4d50-8672-4ef0e1dd90c5", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553880796393)\/", "Users": [ { "UserID": "3c37ef1d-cd49-4589-9787-3c418ed8b6ac", "EmailAddress": "test@email.com", "FirstName": "Test", "LastName": "Xero", "UpdatedDateUTC": "\/Date(1508523261613+0000)\/", "IsSubscriber": false, "OrganisationRole": "FINANCIALADVISER" }, { "UserID": "d1164823-0ac1-41ad-987b-b4e30fe0b273", "EmailAddress": "api@xero.com", "FirstName": "API ", "LastName": "Team", "UpdatedDateUTC": "\/Date(1511957179217+0000)\/", "IsSubscriber": true, "OrganisationRole": "FINANCIALADVISER" } ] }' '/Users/{UserID}': parameters: - $ref: '#/components/parameters/requiredHeader' get: security: - OAuth2: [accounting.settings, accounting.settings.read] tags: - Accounting operationId: getUser summary: Retrieves a specific user parameters: - $ref: '#/components/parameters/UserID' responses: '200': description: Success - return response of type Users array of specified User content: application/json: schema: $ref: '#/components/schemas/Users' example: '{ "Id": "51250ce8-1b35-4ba4-b404-dc94ff75bd87", "Status": "OK", "ProviderName": "Provider Name Example", "DateTimeUTC": "\/Date(1553880796732)\/", "Users": [ { "UserID": "3c37ef1d-cd49-4589-9787-3c418ed8b6ac", "EmailAddress": "test@email.com", "FirstName": "Test", "LastName": "Xero", "UpdatedDateUTC": "\/Date(1508523261613+0000)\/", "IsSubscriber": false, "OrganisationRole": "FINANCIALADVISER" } ] }' components: securitySchemes: OAuth2: type: oauth2 description: For more information flows: authorizationCode: authorizationUrl: 'https://login.xero.com/identity/connect/authorize' tokenUrl: 'https://identity.xero.com/connect/token' scopes: email: Grant read-only access to your email openid: Grant read-only access to your open id profile: your profile information accounting.attachments: Grant read-write access to attachments accounting.attachments.read: Grant read-only access to attachments accounting.contacts: Grant read-write access to contacts and contact groups accounting.contacts.read: Grant read-only access to contacts and contact groups accounting.journals.read: Grant read-only access to journals accounting.reports.read: Grant read-only access to accounting reports accounting.reports.tenninetynine.read: Grant read-only access to 1099 reports accounting.settings: Grant read-write access to organisation and account settings accounting.settings.read: Grant read-only access to organisation and account settings accounting.transactions: Grant read-write access to bank transactions, credit notes, invoices, repeating invoices accounting.transactions.read: Grant read-only access to invoices paymentservices: Grant read-write access to payment services requestBodies: historyRecords: required: true description: HistoryRecords containing an array of HistoryRecord objects in body of request content: application/json: schema: $ref: '#/components/schemas/HistoryRecords' example: '{ "HistoryRecords": [ { "Details": "Hello World" } ] }' parameters: requiredHeader: in: header name: xero-tenant-id x-snake: xero_tenant_id description: Xero identifier for Tenant example: YOUR_XERO_TENANT_ID schema: type: string required: true summarizeErrors: in: query name: summarizeErrors x-snake: summarize_errors description: If false return 200 OK and mix of successfully created objects and any with validation errors example: true x-example-python: "True" schema: type: boolean default: false unitdp: in: query name: unitdp description: e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts example: 4 schema: type: integer ifModifiedSince: in: header name: If-Modified-Since x-snake: if_modified_since description: Only records created or modified since this timestamp will be returned example: "2020-02-06T12:17:43.202-08:00" schema: type: string format: date-time idempotencyKey: in: header name: Idempotency-Key x-snake: idempotency_key description: This allows you to safely retry requests without the risk of duplicate processing. 128 character max. example: "KEY_VALUE" schema: type: string includeOnline: in: query name: IncludeOnline x-snake: include_online description: Allows an attachment to be seen by the end customer within their online invoice example: true x-example-python: "True" schema: type: boolean default: false summaryOnly: in: query name: summaryOnly x-snake: summary_only description: Use summaryOnly=true in GET Contacts and Invoices endpoint to retrieve a smaller version of the response object. This returns only lightweight fields, excluding computation-heavy fields from the response, making the API calls quick and efficient. example: true x-example-python: "True" schema: type: boolean default: false FromDate: in: query name: fromDate x-snake: from_date description: filter by the from date of the report e.g. 2021-02-01 example: "2019-10-31" schema: type: string format: date ToDate: in: query name: toDate x-snake: to_date description: filter by the to date of the report e.g. 2021-02-28 example: "2019-10-31" schema: type: string format: date AccountID: required: true in: path name: AccountID x-snake: account_id description: Unique identifier for Account object example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid AllocationID: required: true in: path name: AllocationID x-snake: allocation_id description: Unique identifier for Allocation object example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid AttachmentID: required: true in: path name: AttachmentID x-snake: attachment_id description: Unique identifier for Attachment object example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid ContentType: required: true in: header name: contentType x-snake: content_type description: The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf example: image/jpg schema: type: string FileName: required: true in: path name: FileName x-snake: file_name description: Name of the attachment example: "xero-dev.jpg" schema: type: string BatchPaymentID: required: true in: path name: BatchPaymentID x-snake: batch_payment_id description: Unique identifier for BatchPayment example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid BankTransactionID: required: true in: path name: BankTransactionID x-snake: bank_transaction_id description: Xero generated unique identifier for a bank transaction example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid BankTransferID: required: true in: path name: BankTransferID x-snake: bank_transfer_id description: Xero generated unique identifier for a bank transfer example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid BrandingThemeID: required: true in: path name: BrandingThemeID x-snake: branding_theme_id description: Unique identifier for a Branding Theme example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid BudgetID: required: true in: path name: BudgetID x-snake: budget_id description: Unique identifier for Budgets example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid ContactID: required: true in: path name: ContactID x-snake: contact_id description: Unique identifier for a Contact example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid ContactGroupID: required: true in: path name: ContactGroupID x-snake: contact_group_id description: Unique identifier for a Contact Group example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid CreditNoteID: required: true in: path name: CreditNoteID x-snake: credit_note_id description: Unique identifier for a Credit Note example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid EmployeeID: required: true in: path name: EmployeeID x-snake: employee_id description: Unique identifier for a Employee example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid ExpenseClaimID: required: true in: path name: ExpenseClaimID x-snake: expense_claim_id description: Unique identifier for a ExpenseClaim example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid InvoiceID: required: true in: path name: InvoiceID x-snake: invoice_id description: Unique identifier for an Invoice example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid ItemID: required: true in: path name: ItemID x-snake: item_id description: Unique identifier for an Item example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid JournalID: required: true in: path name: JournalID x-snake: journal_id description: Unique identifier for a Journal example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid JournalNumber: required: true in: path name: JournalNumber x-snake: journal_number description: Number of a Journal example: 1000 schema: type: integer LinkedTransactionID: required: true in: path name: LinkedTransactionID x-snake: linked_transaction_id description: Unique identifier for a LinkedTransaction example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid ManualJournalID: required: true in: path name: ManualJournalID x-snake: manual_journal_id description: Unique identifier for a ManualJournal example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid OrganisationID: required: true in: path name: OrganisationID x-snake: organisation_id description: The unique Xero identifier for an organisation example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid OverpaymentID: required: true in: path name: OverpaymentID x-snake: overpayment_id description: Unique identifier for a Overpayment example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid PaymentID: required: true in: path name: PaymentID x-snake: payment_id description: Unique identifier for a Payment example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid PrepaymentID: required: true in: path name: PrepaymentID x-snake: prepayment_id description: Unique identifier for a PrePayment example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid PurchaseOrderID: required: true in: path name: PurchaseOrderID x-snake: purchase_order_id description: Unique identifier for an Purchase Order example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid QuoteID: required: true in: path name: QuoteID x-snake: quote_id description: Unique identifier for an Quote example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid ReceiptID: required: true in: path name: ReceiptID x-snake: receipt_id description: Unique identifier for a Receipt example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid RepeatingInvoiceID: required: true in: path name: RepeatingInvoiceID x-snake: repeating_invoice_id description: Unique identifier for a Repeating Invoice example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid TrackingCategoryID: required: true in: path name: TrackingCategoryID x-snake: tracking_category_id description: Unique identifier for a TrackingCategory example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid TrackingOptionID: required: true in: path name: TrackingOptionID x-snake: tracking_option_id description: Unique identifier for a Tracking Option example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid UserID: required: true in: path name: UserID x-snake: user_id description: Unique identifier for a User example: "00000000-0000-0000-0000-000000000000" schema: type: string format: uuid TaxType: required: true in: path name: TaxType description: A valid TaxType code example: "INPUT2" schema: type: string responses: 400Error: description: A failed request due to validation error content: application/json: schema: $ref: '#/components/schemas/Error' HistoryRecordCreated: description: Success - return response of type HistoryRecords array of HistoryRecord objects content: application/json: schema: $ref: '#/components/schemas/HistoryRecords' example: '{ "Id": "d7525479-3392-44c0-bb37-ff4a0b5df5bd", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1550899400362)\/", "HistoryRecords": [ { "DateUTCString": "2019-02-23T05:23:20", "DateUTC": "\/Date(1550899400362)\/", "Details": "Hello World", "ValidationErrors": [] } ] }' HistoryRetrieved: description: Success - return response of HistoryRecords array of 0 to N HistoryRecord content: application/json: schema: $ref: '#/components/schemas/HistoryRecords' example: '{ "Id": "cd54cc7b-b721-4207-b11d-7d13c7902f91", "Status": "OK", "ProviderName": "Xero API Partner", "DateTimeUTC": "\/Date(1551311321819)\/", "HistoryRecords": [ { "Changes": "Attached a file", "DateUTCString": "2018-11-08T15:01:21", "DateUTC": "\/Date(1541689281470+0000)\/", "User": "System Generated", "Details": "Attached the file sample2.jpg through the Xero API using Xero API Partner" }, { "Changes": "Credit Applied", "DateUTCString": "2016-10-17T20:46:01", "DateUTC": "\/Date(1476737161173+0000)\/", "User": "System Generated", "Details": "Bank transfer from Business Wells Fargo to My Savings on November 12, 2016 for 20.00." } ] }' schemas: AddressForOrganisation: externalDocs: url: 'http://developer.xero.com/documentation/api/types' properties: AddressType: description: define the type of address type: string enum: - POBOX - STREET - DELIVERY AddressLine1: description: max length = 500 maxLength: 500 type: string AddressLine2: description: max length = 500 maxLength: 500 type: string AddressLine3: description: max length = 500 maxLength: 500 type: string AddressLine4: description: max length = 500 maxLength: 500 type: string City: description: max length = 255 maxLength: 255 type: string Region: description: max length = 255 maxLength: 255 type: string PostalCode: description: max length = 50 maxLength: 50 type: string Country: description: 'max length = 50, [A-Z], [a-z] only' maxLength: 50 type: string AttentionTo: description: max length = 255 maxLength: 255 type: string type: object Address: externalDocs: url: 'http://developer.xero.com/documentation/api/types' properties: AddressType: description: define the type of address type: string enum: - POBOX - STREET AddressLine1: description: max length = 500 maxLength: 500 type: string AddressLine2: description: max length = 500 maxLength: 500 type: string AddressLine3: description: max length = 500 maxLength: 500 type: string AddressLine4: description: max length = 500 maxLength: 500 type: string City: description: max length = 255 maxLength: 255 type: string Region: description: max length = 255 maxLength: 255 type: string PostalCode: description: max length = 50 maxLength: 50 type: string Country: description: 'max length = 50, [A-Z], [a-z] only' maxLength: 50 type: string AttentionTo: description: max length = 255 maxLength: 255 type: string type: object Phone: externalDocs: url: 'http://developer.xero.com/documentation/api/types' properties: PhoneType: type: string enum: - DEFAULT - DDI - MOBILE - FAX - OFFICE PhoneNumber: description: max length = 50 maxLength: 50 type: string PhoneAreaCode: description: max length = 10 maxLength: 10 type: string PhoneCountryCode: description: max length = 20 maxLength: 20 type: string type: object Accounts: type: object x-isObjectArray: true properties: Accounts: type: array items: $ref: '#/components/schemas/Account' Account: type: object externalDocs: url: 'http://developer.xero.com/documentation/api/accounts/' properties: Code: description: Customer defined alpha numeric account code e.g 200 or SALES (max length = 10) type: string example: 4400 Name: description: Name of account (max length = 150) maxLength: 150 type: string example: Food Sales AccountID: description: The Xero identifier for an account – specified as a string following the endpoint name e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9 type: string format: uuid example: 00000000-0000-0000-0000-000000000000 Type: $ref: '#/components/schemas/AccountType' type: string BankAccountNumber: description: For bank accounts only (Account Type BANK) type: string Status: description: Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes type: string enum: - ACTIVE - ARCHIVED - DELETED Description: description: Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000) type: string BankAccountType: description: For bank accounts only. See Bank Account types type: string enum: - BANK - CREDITCARD - PAYPAL - NONE - '' CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string TaxType: description: The tax type from taxRates type: string EnablePaymentsToAccount: description: Boolean – describes whether account can have payments applied to it type: boolean ShowInExpenseClaims: description: Boolean – describes whether account code is available for use with expense claims type: boolean Class: description: See Account Class Types readOnly: true type: string enum: - ASSET - EQUITY - EXPENSE - LIABILITY - REVENUE SystemAccount: description: If this is a system account then this element is returned. See System Account types. Note that non-system accounts may have this element set as either “” or null. readOnly: true type: string enum: - DEBTORS - CREDITORS - BANKCURRENCYGAIN - GST - GSTONIMPORTS - HISTORICAL - REALISEDCURRENCYGAIN - RETAINEDEARNINGS - ROUNDING - TRACKINGTRANSFERS - UNPAIDEXPCLM - UNREALISEDCURRENCYGAIN - WAGEPAYABLES - CISASSETS - CISASSET - CISLABOUR - CISLABOUREXPENSE - CISLABOURINCOME - CISLIABILITY - CISMATERIALS - '' ReportingCode: description: Shown if set type: string ReportingCodeName: description: Shown if set readOnly: true type: string HasAttachments: description: boolean to indicate if an account has an attachment (read only) readOnly: true type: boolean default: "false" example: "false" UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true AddToWatchlist: description: Boolean – describes whether the account is shown in the watchlist widget on the dashboard type: boolean ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' AccountType: description: See Account Types type: string enum: - BANK - CURRENT - CURRLIAB - DEPRECIATN - DIRECTCOSTS - EQUITY - EXPENSE - FIXED - INVENTORY - LIABILITY - NONCURRENT - OTHERINCOME - OVERHEADS - PREPAYMENT - REVENUE - SALES - TERMLIAB - PAYG Attachments: type: object x-isObjectArray: true properties: Attachments: type: array items: $ref: '#/components/schemas/Attachment' Attachment: type: object externalDocs: url: 'http://developer.xero.com/documentation/api/attachments/' properties: AttachmentID: description: Unique ID for the file type: string format: uuid example: "00000000-0000-0000-0000-000000000000" FileName: description: Name of the file type: string example: xero-dev.jpg Url: description: URL to the file on xero.com type: string example: "https://api.xero.com/api.xro/2.0/Accounts/da962997-a8bd-4dff-9616-01cdc199283f/Attachments/sample5.jpg" MimeType: description: Type of file type: string example: "image/jpg" ContentLength: description: Length of the file content type: integer IncludeOnline: description: Include the file with the online invoice type: boolean BankTransactions: type: object x-isObjectArray: true properties: BankTransactions: type: array items: $ref: '#/components/schemas/BankTransaction' BankTransaction: externalDocs: url: 'http://developer.xero.com/documentation/api/banktransactions/' properties: Type: description: See Bank Transaction Types type: string enum: - RECEIVE - RECEIVE-OVERPAYMENT - RECEIVE-PREPAYMENT - SPEND - SPEND-OVERPAYMENT - SPEND-PREPAYMENT - RECEIVE-TRANSFER - SPEND-TRANSFER Contact: $ref: '#/components/schemas/Contact' LineItems: description: See LineItems type: array items: $ref: '#/components/schemas/LineItem' BankAccount: $ref: '#/components/schemas/Account' IsReconciled: description: Boolean to show if transaction is reconciled type: boolean Date: description: Date of transaction – YYYY-MM-DD type: string x-is-msdate: true Reference: description: Reference for the transaction. Only supported for SPEND and RECEIVE transactions. type: string CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string CurrencyRate: description: Exchange rate to base currency when money is spent or received. e.g.0.7500 Only used for bank transactions in non base currency. If this isn’t specified for non base currency accounts then either the user-defined rate (preference) or the XE.com day rate will be used. Setting currency is only supported on overpayments. type: number format: double x-is-money: true Url: description: URL link to a source document – shown as “Go to App Name” type: string Status: description: See Bank Transaction Status Codes type: string enum: - AUTHORISED - DELETED - VOIDED LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string SubTotal: description: Total of bank transaction excluding taxes type: number format: double x-is-money: true TotalTax: description: Total tax on bank transaction type: number format: double x-is-money: true Total: description: Total of bank transaction tax inclusive type: number format: double x-is-money: true BankTransactionID: description: Xero generated unique identifier for bank transaction type: string format: uuid example: "00000000-0000-0000-0000-000000000000" PrepaymentID: description: Xero generated unique identifier for a Prepayment. This will be returned on BankTransactions with a Type of SPEND-PREPAYMENT or RECEIVE-PREPAYMENT readOnly: true type: string format: uuid example: "00000000-0000-0000-0000-000000000000" OverpaymentID: description: Xero generated unique identifier for an Overpayment. This will be returned on BankTransactions with a Type of SPEND-OVERPAYMENT or RECEIVE-OVERPAYMENT readOnly: true type: string format: uuid example: "00000000-0000-0000-0000-000000000000" UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true HasAttachments: description: Boolean to indicate if a bank transaction has an attachment readOnly: true type: boolean default: "false" example: "false" StatusAttributeString: description: A string to indicate if a invoice status type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' required: - Type - LineItems - BankAccount type: object LineAmountTypes: description: Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types type: string enum: - Exclusive - Inclusive - NoTax LineItem: externalDocs: url: 'https://developer.xero.com/documentation/api/invoices#post' properties: LineItemID: description: LineItem unique ID type: string format: uuid example: "00000000-0000-0000-0000-000000000000" Description: description: Description needs to be at least 1 char long. A line item with just a description (i.e no unit amount or quantity) can be created by specifying just a element that contains at least 1 character type: string Quantity: description: LineItem Quantity type: number format: double x-is-money: true UnitAmount: description: LineItem Unit Amount type: number format: double x-is-money: true ItemCode: description: See Items type: string AccountCode: description: See Accounts type: string AccountID: description: The associated account ID related to this line item type: string format: uuid example: "00000000-0000-0000-0000-000000000000" TaxType: description: The tax type from TaxRates type: string TaxAmount: description: The tax amount is auto calculated as a percentage of the line amount (see below) based on the tax rate. This value can be overriden if the calculated is not correct. type: number format: double x-is-money: true Item: $ref: '#/components/schemas/LineItemItem' LineAmount: description: If you wish to omit either the Quantity or UnitAmount you can provide a LineAmount and Xero will calculate the missing amount for you. The line amount reflects the discounted price if either a DiscountRate or DiscountAmount has been used i.e. LineAmount = Quantity * Unit Amount * ((100 - DiscountRate)/100) or LineAmount = (Quantity * UnitAmount) - DiscountAmount type: number format: double x-is-money: true Tracking: description: Optional Tracking Category – see Tracking. Any LineItem can have a maximum of 2 elements. type: array items: $ref: '#/components/schemas/LineItemTracking' DiscountRate: description: Percentage discount being applied to a line item (only supported on ACCREC invoices – ACC PAY invoices and credit notes in Xero do not support discounts type: number format: double x-is-money: true DiscountAmount: description: Discount amount being applied to a line item. Only supported on ACCREC invoices and quotes. ACCPAY invoices and credit notes in Xero do not support discounts. type: number format: double x-is-money: true RepeatingInvoiceID: description: The Xero identifier for a Repeating Invoice example: "00000000-0000-0000-0000-000000000000" type: string format: uuid type: object LineItemItem: properties: Code: description: User defined item code (max length = 30) maxLength: 30 type: string Name: description: The name of the item (max length = 50) maxLength: 50 type: string ItemID: description: The Xero identifier for an Item type: string format: uuid LineItemTracking: externalDocs: url: 'https://developer.xero.com/documentation/api/invoices#post' properties: TrackingCategoryID: description: The Xero identifier for a tracking category type: string format: uuid example: "00000000-0000-0000-0000-000000000000" TrackingOptionID: description: The Xero identifier for a tracking category option type: string format: uuid example: "00000000-0000-0000-0000-000000000000" Name: description: The name of the tracking category maxLength: 100 type: string example: Region Option: description: See Tracking Options type: string example: North type: object BankTransfers: type: object x-isObjectArray: true properties: BankTransfers: type: array items: $ref: '#/components/schemas/BankTransfer' BankTransfer: externalDocs: url: 'http://developer.xero.com/documentation/api/bank-transfers/' properties: FromBankAccount: $ref: '#/components/schemas/Account' ToBankAccount: $ref: '#/components/schemas/Account' Amount: description: 'amount of the transaction' type: number format: double x-is-money: true Date: description: The date of the Transfer YYYY-MM-DD type: string x-is-msdate: true BankTransferID: description: The identifier of the Bank Transfer readOnly: true type: string format: uuid CurrencyRate: description: The currency rate readOnly: true type: number format: double x-is-money: true FromBankTransactionID: description: The Bank Transaction ID for the source account readOnly: true type: string format: uuid ToBankTransactionID: description: The Bank Transaction ID for the destination account readOnly: true type: string format: uuid FromIsReconciled: description: The Bank Transaction boolean to show if it is reconciled for the source account type: boolean default: "false" example: "false" ToIsReconciled: description: The Bank Transaction boolean to show if it is reconciled for the destination account type: boolean default: "false" example: "false" Reference: description: Reference for the transactions. type: string HasAttachments: description: Boolean to indicate if a Bank Transfer has an attachment readOnly: true type: boolean default: "false" example: "false" CreatedDateUTC: description: UTC timestamp of creation date of bank transfer type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' required: - FromBankAccount - ToBankAccount - Amount type: object BatchPayments: type: object x-isObjectArray: true properties: BatchPayments: type: array items: $ref: '#/components/schemas/BatchPayment' BatchPayment: externalDocs: url: 'http://developer.xero.com/documentation/api/BatchPayments/' properties: Account: $ref: '#/components/schemas/Account' Reference: description: (NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero. type: string maxLength: 255 Particulars: description: (NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero. type: string maxLength: 12 Code: description: (NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero. type: string maxLength: 12 Details: description: (Non-NZ Only) These details are sent to the org’s bank as a reference for the batch payment transaction. They will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement imported into Xero. Maximum field length = 18 type: string Narrative: description: (UK Only) Only shows on the statement line in Xero. Max length =18 type: string maxLength: 18 BatchPaymentID: description: The Xero generated unique identifier for the bank transaction (read-only) readOnly: true type: string format: uuid DateString: description: Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06 type: string Date: description: Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06 type: string x-is-msdate: true Amount: description: The amount of the payment. Must be less than or equal to the outstanding amount owing on the invoice e.g. 200.00 type: number format: double x-is-money: true Payments: description: An array of payments type: array items: $ref: '#/components/schemas/Payment' Type: description: PAYBATCH for bill payments or RECBATCH for sales invoice payments (read-only) readOnly: true type: string enum: - PAYBATCH - RECBATCH Status: description: AUTHORISED or DELETED (read-only). New batch payments will have a status of AUTHORISED. It is not possible to delete batch payments via the API. readOnly: true type: string enum: - AUTHORISED - DELETED TotalAmount: description: The total of the payments that make up the batch (read-only) type: number format: double x-is-money: true readOnly: true UpdatedDateUTC: description: UTC timestamp of last update to the payment type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true IsReconciled: description: Booelan that tells you if the batch payment has been reconciled (read-only) readOnly: true type: boolean ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' type: object BatchPaymentDetails: description: Bank details for use on a batch payment stored with each contact externalDocs: url: 'http://developer.xero.com/documentation/api/Contact/' properties: BankAccountNumber: description: Bank account number for use with Batch Payments type: string example: 123-456-1111111 BankAccountName: description: Name of bank for use with Batch Payments type: string example: "ACME Bank" Details: description: (Non-NZ Only) These details are sent to the org’s bank as a reference for the batch payment transaction. They will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement imported into Xero. Maximum field length = 18 type: string example: Hello World Code: description: (NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero. type: string maxLength: 12 example: "ABC" Reference: description: (NZ Only) Optional references for the batch payment transaction. It will also show with the batch payment transaction in the bank reconciliation Find & Match screen. Depending on your individual bank, the detail may also show on the bank statement you import into Xero. type: string maxLength: 12 example: "Foobar" BatchPaymentDelete: externalDocs: url: 'http://developer.xero.com/documentation/api/accounting/batchpayments' properties: BatchPaymentID: description: The Xero generated unique identifier for the bank transaction (read-only) type: string format: uuid Status: description: The status of the batch payment. type: string default: "DELETED" required: - Status - BatchPaymentID type: object BatchPaymentDeleteByUrlParam: externalDocs: url: 'http://developer.xero.com/documentation/api/accounting/batchpayments' properties: Status: description: The status of the batch payment. type: string default: "DELETED" required: - Status type: object BrandingThemes: type: object x-isObjectArray: true properties: BrandingThemes: type: array items: $ref: '#/components/schemas/BrandingTheme' BrandingTheme: externalDocs: url: 'http://developer.xero.com/documentation/api/branding-themes/' properties: BrandingThemeID: description: Xero identifier type: string format: uuid Name: description: Name of branding theme type: string LogoUrl: description: The location of the image file used as the logo on this branding theme type: string Type: description: Always INVOICE type: string enum: - INVOICE SortOrder: description: Integer – ranked order of branding theme. The default branding theme has a value of 0 type: integer CreatedDateUTC: description: UTC timestamp of creation date of branding theme type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true type: object PaymentServices: type: object x-isObjectArray: true properties: PaymentServices: type: array items: $ref: '#/components/schemas/PaymentService' PaymentService: externalDocs: url: 'http://developer.xero.com/documentation/api/branding-themes/' properties: PaymentServiceID: description: Xero identifier type: string format: uuid PaymentServiceName: description: Name of payment service type: string PaymentServiceUrl: description: The custom payment URL type: string PayNowText: description: The text displayed on the Pay Now button in Xero Online Invoicing. If this is not set it will default to Pay by credit card type: string PaymentServiceType: description: This will always be CUSTOM for payment services created via the API. type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Contacts: type: object x-isObjectArray: true properties: Contacts: type: array items: $ref: '#/components/schemas/Contact' Contact: externalDocs: url: 'http://developer.xero.com/documentation/api/contacts/' properties: ContactID: description: Xero identifier type: string format: uuid MergedToContactID: description: ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber. type: string format: uuid ContactNumber: description: This can be updated via the API only i.e. This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). If the Contact Number is used, this is displayed as Contact Code in the Contacts UI in Xero. maxLength: 50 type: string AccountNumber: description: A user defined account number. This can be updated via the API and the Xero UI (max length = 50) maxLength: 50 type: string ContactStatus: description: Current status of a contact – see contact status types type: string enum: - ACTIVE - ARCHIVED - GDPRREQUEST Name: description: Full name of contact/organisation (max length = 255) maxLength: 255 type: string FirstName: description: First name of contact person (max length = 255) maxLength: 255 type: string LastName: description: Last name of contact person (max length = 255) maxLength: 255 type: string CompanyNumber: description: Company registration number (max length = 50) maxLength: 50 type: string EmailAddress: description: Email address of contact person (umlauts not supported) (max length = 255) maxLength: 255 type: string ContactPersons: description: See contact persons type: array items: $ref: '#/components/schemas/ContactPerson' BankAccountDetails: description: Bank account number of contact type: string TaxNumber: description: Tax number of contact – this is also known as the ABN (Australia), GST Number (New Zealand), VAT Number (UK) or Tax ID Number (US and global) in the Xero UI depending on which regionalized version of Xero you are using (max length = 50) maxLength: 50 type: string AccountsReceivableTaxType: description: The tax type from TaxRates type: string AccountsPayableTaxType: description: The tax type from TaxRates type: string Addresses: description: Store certain address types for a contact – see address types type: array items: $ref: '#/components/schemas/Address' Phones: description: Store certain phone types for a contact – see phone types type: array items: $ref: '#/components/schemas/Phone' IsSupplier: description: true or false – Boolean that describes if a contact that has any AP invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts payable invoice is generated against this contact. type: boolean IsCustomer: description: true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact. type: boolean SalesDefaultLineAmountType: description: The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. type: string enum: - INCLUSIVE - EXCLUSIVE - NONE PurchasesDefaultLineAmountType: description: The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. type: string enum: - INCLUSIVE - EXCLUSIVE - NONE DefaultCurrency: $ref: '#/components/schemas/CurrencyCode' type: string XeroNetworkKey: description: Store XeroNetworkKey for contacts. type: string SalesDefaultAccountCode: description: The default sales account code for contacts type: string PurchasesDefaultAccountCode: description: The default purchases account code for contacts type: string SalesTrackingCategories: description: The default sales tracking categories for contacts type: array items: $ref: '#/components/schemas/SalesTrackingCategory' PurchasesTrackingCategories: description: The default purchases tracking categories for contacts type: array items: $ref: '#/components/schemas/SalesTrackingCategory' TrackingCategoryName: description: The name of the Tracking Category assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories type: string TrackingCategoryOption: description: The name of the Tracking Option assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories type: string PaymentTerms: $ref: '#/components/schemas/PaymentTerm' UpdatedDateUTC: description: UTC timestamp of last update to contact type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true ContactGroups: description: Displays which contact groups a contact is included in type: array items: $ref: '#/components/schemas/ContactGroup' Website: description: Website address for contact (read only) readOnly: true type: string BrandingTheme: $ref: '#/components/schemas/BrandingTheme' BatchPayments: $ref: '#/components/schemas/BatchPaymentDetails' Discount: description: The default discount rate for the contact (read only) readOnly: true type: number format: double x-is-money: true Balances: $ref: '#/components/schemas/Balances' Attachments: description: Displays array of attachments from the API type: array items: $ref: '#/components/schemas/Attachment' HasAttachments: description: A boolean to indicate if a contact has an attachment type: boolean default: "false" example: "false" ValidationErrors: description: Displays validation errors returned from the API type: array items: $ref: '#/components/schemas/ValidationError' HasValidationErrors: description: A boolean to indicate if a contact has an validation errors type: boolean default: "false" example: "false" StatusAttributeString: description: Status of object type: string type: object Budgets: type: object x-isObjectArray: true properties: Budgets: type: array items: $ref: '#/components/schemas/Budget' Budget: type: object externalDocs: url: 'http://developer.xero.com/documentation/api/budgets/' properties: BudgetID: description: Xero identifier type: string format: uuid Type: description: Type of Budget. OVERALL or TRACKING type: string enum: - OVERALL - TRACKING Description: description: The Budget description maxLength: 255 type: string UpdatedDateUTC: description: UTC timestamp of last update to budget type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true BudgetLines: type: array items: $ref: '#/components/schemas/BudgetLine' Tracking: type: array items: $ref: '#/components/schemas/TrackingCategory' BudgetLine: type: object externalDocs: url: 'http://developer.xero.com/documentation/api/budgets/' properties: AccountID: description: See Accounts type: string format: uuid AccountCode: description: See Accounts type: string example: 090 BudgetBalances: type: array items: $ref: '#/components/schemas/BudgetBalance' BudgetBalance: type: object properties: Period: description: Period the amount applies to (e.g. “2019-08”) type: string x-is-msdate: true Amount: description: LineItem Quantity type: number format: double x-is-money: true UnitAmount: description: Budgeted amount type: number format: double x-is-money: true Notes: description: Any footnotes associated with this balance maxLength: 255 type: string Balances: type: object description: The raw AccountsReceivable(sales invoices) and AccountsPayable(bills) outstanding and overdue amounts, not converted to base currency (read only) properties: AccountsReceivable: $ref: '#/components/schemas/AccountsReceivable' AccountsPayable: $ref: '#/components/schemas/AccountsPayable' AccountsReceivable: type: object properties: Outstanding: type: number format: double x-is-money: true Overdue: type: number format: double x-is-money: true AccountsPayable: type: object properties: Outstanding: type: number format: double x-is-money: true Overdue: type: number format: double x-is-money: true CISSettings: type: object x-isObjectArray: true properties: CISSettings: type: array items: $ref: '#/components/schemas/CISSetting' CISSetting: externalDocs: url: 'http://developer.xero.com/documentation/api/contacts/' properties: CISEnabled: description: Boolean that describes if the contact is a CIS Subcontractor type: boolean Rate: description: CIS Deduction rate for the contact if he is a subcontractor. If the contact is not CISEnabled, then the rate is not returned type: number format: double readOnly: true x-is-money: true CISOrgSettings: type: object x-isObjectArray: true properties: CISSettings: type: array items: $ref: '#/components/schemas/CISOrgSetting' CISOrgSetting: externalDocs: url: 'https://developer.xero.com/documentation/api/organisation' properties: CISContractorEnabled: description: true or false - Boolean that describes if the organisation is a CIS Contractor type: boolean CISSubContractorEnabled: description: true or false - Boolean that describes if the organisation is a CIS SubContractor type: boolean Rate: description: CIS Deduction rate for the organisation type: number format: double readOnly: true x-is-money: true ContactPerson: externalDocs: url: 'http://developer.xero.com/documentation/api/contacts/' properties: FirstName: description: First name of person type: string LastName: description: Last name of person type: string EmailAddress: description: Email address of person type: string IncludeInEmails: description: boolean to indicate whether contact should be included on emails with invoices etc. type: boolean type: object ContactGroups: type: object x-isObjectArray: true properties: ContactGroups: type: array items: $ref: '#/components/schemas/ContactGroup' ContactGroup: externalDocs: url: 'http://developer.xero.com/documentation/api/contactgroups/' properties: Name: description: The Name of the contact group. Required when creating a new contact group type: string Status: description: The Status of a contact group. To delete a contact group update the status to DELETED. Only contact groups with a status of ACTIVE are returned on GETs. type: string enum: - ACTIVE - DELETED ContactGroupID: description: The Xero identifier for an contact group – specified as a string following the endpoint name. e.g. /297c2dc5-cc47-4afd-8ec8-74990b8761e9 type: string format: uuid Contacts: description: The ContactID and Name of Contacts in a contact group. Returned on GETs when the ContactGroupID is supplied in the URL. type: array items: $ref: '#/components/schemas/Contact' type: object RequestEmpty: externalDocs: url: 'http://developer.xero.com/documentation/api/invoice/' properties: Status: description: Need at least one field to create an empty JSON payload type: string type: object CreditNotes: type: object x-isObjectArray: true properties: CreditNotes: type: array items: $ref: '#/components/schemas/CreditNote' CreditNote: externalDocs: url: 'http://developer.xero.com/documentation/api/credit-notes/' properties: Type: description: See Credit Note Types type: string enum: - ACCPAYCREDIT - ACCRECCREDIT Contact: $ref: '#/components/schemas/Contact' Date: description: The date the credit note is issued YYYY-MM-DD. If the Date element is not specified then it will default to the current date based on the timezone setting of the organisation type: string x-is-msdate: true DueDate: description: Date invoice is due – YYYY-MM-DD type: string x-is-msdate: true Status: description: See Credit Note Status Codes type: string enum: - DRAFT - SUBMITTED - DELETED - AUTHORISED - PAID - VOIDED LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string LineItems: description: See Invoice Line Items type: array items: $ref: '#/components/schemas/LineItem' SubTotal: description: The subtotal of the credit note excluding taxes type: number format: double x-is-money: true TotalTax: description: The total tax on the credit note type: number format: double x-is-money: true Total: description: The total of the Credit Note(subtotal + total tax) type: number format: double x-is-money: true CISDeduction: description: CIS deduction for UK contractors readOnly: true type: number format: double x-is-money: true CISRate: description: CIS Deduction rate for the organisation type: number format: double readOnly: true x-is-money: true UpdatedDateUTC: description: UTC timestamp of last update to the credit note type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true CurrencyCode: description: The specified currency code $ref: '#/components/schemas/CurrencyCode' type: string FullyPaidOnDate: description: Date when credit note was fully paid(UTC format) type: string x-is-msdate: true CreditNoteID: description: Xero generated unique identifier type: string format: uuid CreditNoteNumber: description: ACCRECCREDIT – Unique alpha numeric code identifying credit note (when missing will auto-generate from your Organisation Invoice Settings) type: string Reference: description: ACCRECCREDIT only – additional reference number type: string SentToContact: description: boolean to indicate if a credit note has been sent to a contact via the Xero app (currently read only) readOnly: true type: boolean CurrencyRate: description: The currency rate for a multicurrency invoice. If no rate is specified, the XE.com day rate is used type: number format: double x-is-money: true RemainingCredit: description: The remaining credit balance on the Credit Note type: number format: double x-is-money: true Allocations: description: See Allocations type: array items: $ref: '#/components/schemas/Allocation' AppliedAmount: description: The amount of applied to an invoice type: number format: double example: 2.00 x-is-money: true Payments: description: See Payments type: array items: $ref: '#/components/schemas/Payment' BrandingThemeID: description: See BrandingThemes type: string format: uuid StatusAttributeString: description: A string to indicate if a invoice status type: string HasAttachments: description: boolean to indicate if a credit note has an attachment type: boolean default: "false" example: "false" HasErrors: description: A boolean to indicate if a credit note has an validation errors type: boolean default: "false" example: "false" ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Warnings: description: Displays array of warning messages from the API type: array items: $ref: '#/components/schemas/ValidationError' type: object Allocations: type: object x-isObjectArray: true properties: Allocations: type: array items: $ref: '#/components/schemas/Allocation' Allocation: externalDocs: url: 'http://developer.xero.com/documentation/api/prepayments/' properties: AllocationID: description: Xero generated unique identifier type: string format: uuid Invoice: $ref: '#/components/schemas/Invoice' Overpayment: $ref: '#/components/schemas/Overpayment' Prepayment: $ref: '#/components/schemas/Prepayment' CreditNote: $ref: '#/components/schemas/CreditNote' Amount: description: the amount being applied to the invoice type: number format: double x-is-money: true Date: description: the date the allocation is applied YYYY-MM-DD. type: string x-is-msdate: true IsDeleted: description: A flag that returns true when the allocation is succesfully deleted type: boolean readOnly: true StatusAttributeString: description: A string to indicate if a invoice status type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' required: - Amount - Invoice - Date type: object Currencies: type: object x-isObjectArray: true properties: Currencies: type: array items: $ref: '#/components/schemas/Currency' Currency: externalDocs: url: 'http://developer.xero.com/documentation/api/currencies/' properties: Code: $ref: '#/components/schemas/CurrencyCode' type: string Description: description: Name of Currency type: string type: object CurrencyCode: description: 3 letter alpha code for the currency – see list of currency codes type: string x-enum-varnames: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BRL - BSD - BTN - BWP - BYN - BYR - BZD - CAD - CDF - CHF - CLF - CLP - CNY - COP - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EEK - EGP - ERN - ETB - EUR - FJD - FKP - GBP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LTL - LVL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRO - MRU - MUR - MVR - MWK - MXN - MXV - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SHP - SKK - SLE - SLL - SOS - SRD - STN - STD - SVC - SYP - SZL - THB - TJS - TMT - TND - TOP - TRY_LIRA - TTD - TWD - TZS - UAH - UGX - USD - UYU - UZS - VEF - VES - VND - VUV - WST - XAF - XCD - XOF - XPF - YER - ZAR - ZMW - ZMK - ZWD - EMPTY_CURRENCY enum: - AED - AFN - ALL - AMD - ANG - AOA - ARS - AUD - AWG - AZN - BAM - BBD - BDT - BGN - BHD - BIF - BMD - BND - BOB - BRL - BSD - BTN - BWP - BYN - BYR - BZD - CAD - CDF - CHF - CLF - CLP - CNY - COP - CRC - CUC - CUP - CVE - CZK - DJF - DKK - DOP - DZD - EEK - EGP - ERN - ETB - EUR - FJD - FKP - GBP - GEL - GHS - GIP - GMD - GNF - GTQ - GYD - HKD - HNL - HRK - HTG - HUF - IDR - ILS - INR - IQD - IRR - ISK - JMD - JOD - JPY - KES - KGS - KHR - KMF - KPW - KRW - KWD - KYD - KZT - LAK - LBP - LKR - LRD - LSL - LTL - LVL - LYD - MAD - MDL - MGA - MKD - MMK - MNT - MOP - MRO - MRU - MUR - MVR - MWK - MXN - MXV - MYR - MZN - NAD - NGN - NIO - NOK - NPR - NZD - OMR - PAB - PEN - PGK - PHP - PKR - PLN - PYG - QAR - RON - RSD - RUB - RWF - SAR - SBD - SCR - SDG - SEK - SGD - SHP - SKK - SLE - SLL - SOS - SRD - STD - STN - SVC - SYP - SZL - THB - TJS - TMT - TND - TOP - TRY - TTD - TWD - TZS - UAH - UGX - USD - UYU - UZS - VEF - VES - VND - VUV - WST - XAF - XCD - XOF - XPF - YER - ZAR - ZMW - ZMK - ZWD Employees: type: object x-isObjectArray: true properties: Employees: type: array items: $ref: '#/components/schemas/Employee' Employee: externalDocs: url: 'http://developer.xero.com/documentation/api/employees/' properties: EmployeeID: description: The Xero identifier for an employee e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9 type: string format: uuid Status: description: Current status of an employee – see contact status types type: string enum: - ACTIVE - ARCHIVED - GDPRREQUEST - DELETED FirstName: description: First name of an employee (max length = 255) maxLength: 255 type: string LastName: description: Last name of an employee (max length = 255) maxLength: 255 type: string ExternalLink: $ref: '#/components/schemas/ExternalLink' UpdatedDateUTC: type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true StatusAttributeString: description: A string to indicate if a invoice status type: string example: ERROR ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' type: object ExpenseClaims: type: object x-isObjectArray: true properties: ExpenseClaims: type: array items: $ref: '#/components/schemas/ExpenseClaim' ExpenseClaim: externalDocs: url: 'http://developer.xero.com/documentation/api/expense-claims/' properties: ExpenseClaimID: description: Xero generated unique identifier for an expense claim type: string format: uuid Status: description: Current status of an expense claim – see status types type: string enum: - SUBMITTED - AUTHORISED - PAID - VOIDED - DELETED Payments: description: See Payments type: array items: $ref: '#/components/schemas/Payment' User: $ref: '#/components/schemas/User' Receipts: type: array items: $ref: '#/components/schemas/Receipt' UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true Total: description: The total of an expense claim being paid readOnly: true type: number format: double x-is-money: true AmountDue: description: The amount due to be paid for an expense claim readOnly: true type: number format: double x-is-money: true AmountPaid: description: The amount still to pay for an expense claim readOnly: true type: number format: double x-is-money: true PaymentDueDate: description: The date when the expense claim is due to be paid YYYY-MM-DD readOnly: true type: string x-is-msdate: true ReportingDate: description: The date the expense claim will be reported in Xero YYYY-MM-DD readOnly: true type: string x-is-msdate: true ReceiptID: description: The Xero identifier for the Receipt e.g. e59a2c7f-1306-4078-a0f3-73537afcbba9 type: string format: uuid type: object HistoryRecords: type: object x-isObjectArray: true properties: HistoryRecords: type: array items: $ref: '#/components/schemas/HistoryRecord' HistoryRecord: externalDocs: url: 'https://developer.xero.com/documentation/api/history-and-notes' properties: Details: description: details type: string Changes: description: Name of branding theme type: string User: description: has a value of 0 type: string DateUTC: description: UTC timestamp of creation date of branding theme type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true type: object Invoices: type: object x-isObjectArray: true properties: Invoices: type: array items: $ref: '#/components/schemas/Invoice' Invoice: externalDocs: url: 'http://developer.xero.com/documentation/api/invoices/' properties: Type: description: See Invoice Types type: string enum: - ACCPAY - ACCPAYCREDIT - APOVERPAYMENT - APPREPAYMENT - ACCREC - ACCRECCREDIT - AROVERPAYMENT - ARPREPAYMENT Contact: $ref: '#/components/schemas/Contact' LineItems: description: See LineItems type: array items: $ref: '#/components/schemas/LineItem' Date: description: Date invoice was issued – YYYY-MM-DD. If the Date element is not specified it will default to the current date based on the timezone setting of the organisation type: string x-is-msdate: true DueDate: description: Date invoice is due – YYYY-MM-DD type: string x-is-msdate: true LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string InvoiceNumber: description: ACCREC – Unique alpha numeric code identifying invoice (when missing will auto-generate from your Organisation Invoice Settings) (max length = 255) maxLength: 255 type: string Reference: description: ACCREC only – additional reference number type: string BrandingThemeID: description: See BrandingThemes type: string format: uuid Url: description: URL link to a source document – shown as “Go to [appName]” in the Xero app type: string CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string CurrencyRate: description: The currency rate for a multicurrency invoice. If no rate is specified, the XE.com day rate is used. (max length = [18].[6]) type: number format: double x-is-money: true Status: description: See Invoice Status Codes type: string enum: - DRAFT - SUBMITTED - DELETED - AUTHORISED - PAID - VOIDED SentToContact: description: Boolean to set whether the invoice in the Xero app should be marked as “sent”. This can be set only on invoices that have been approved type: boolean ExpectedPaymentDate: description: Shown on sales invoices (Accounts Receivable) when this has been set type: string x-is-msdate: true PlannedPaymentDate: description: Shown on bills (Accounts Payable) when this has been set type: string x-is-msdate: true CISDeduction: description: CIS deduction for UK contractors readOnly: true type: number format: double x-is-money: true CISRate: description: CIS Deduction rate for the organisation type: number format: double readOnly: true x-is-money: true SubTotal: description: Total of invoice excluding taxes readOnly: true type: number format: double x-is-money: true TotalTax: description: Total tax on invoice readOnly: true type: number format: double x-is-money: true Total: description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn’t equal the sum of the LineAmounts readOnly: true type: number format: double x-is-money: true TotalDiscount: description: Total of discounts applied on the invoice line items readOnly: true type: number format: double x-is-money: true InvoiceID: description: Xero generated unique identifier for invoice type: string format: uuid RepeatingInvoiceID: description: Xero generated unique identifier for repeating invoices type: string format: uuid HasAttachments: description: boolean to indicate if an invoice has an attachment readOnly: true type: boolean default: "false" example: "false" IsDiscounted: description: boolean to indicate if an invoice has a discount readOnly: true type: boolean Payments: description: See Payments readOnly: true type: array items: $ref: '#/components/schemas/Payment' Prepayments: description: See Prepayments readOnly: true type: array items: $ref: '#/components/schemas/Prepayment' Overpayments: description: See Overpayments readOnly: true type: array items: $ref: '#/components/schemas/Overpayment' AmountDue: description: Amount remaining to be paid on invoice readOnly: true type: number format: double x-is-money: true AmountPaid: description: Sum of payments received for invoice readOnly: true type: number format: double x-is-money: true FullyPaidOnDate: description: The date the invoice was fully paid. Only returned on fully paid invoices readOnly: true type: string x-is-msdate: true AmountCredited: description: Sum of all credit notes, over-payments and pre-payments applied to invoice readOnly: true type: number format: double x-is-money: true UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true CreditNotes: description: Details of credit notes that have been applied to an invoice readOnly: true type: array items: $ref: '#/components/schemas/CreditNote' Attachments: description: Displays array of attachments from the API type: array items: $ref: '#/components/schemas/Attachment' HasErrors: description: A boolean to indicate if a invoice has an validation errors type: boolean default: "false" example: "false" StatusAttributeString: description: A string to indicate if a invoice status type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Warnings: description: Displays array of warning messages from the API type: array items: $ref: '#/components/schemas/ValidationError' type: object OnlineInvoices: type: object x-isObjectArray: true properties: OnlineInvoices: type: array items: $ref: '#/components/schemas/OnlineInvoice' OnlineInvoice: externalDocs: url: 'http://developer.xero.com/documentation/api/invoices/' properties: OnlineInvoiceUrl: description: the URL to an online invoice type: string type: object InvoiceReminders: type: object x-isObjectArray: true properties: InvoiceReminders: type: array items: $ref: '#/components/schemas/InvoiceReminder' InvoiceReminder: externalDocs: url: 'http://developer.xero.com/documentation/api/invoice-reminders/' properties: Enabled: description: setting for on or off type: boolean type: object Items: type: object x-isObjectArray: true properties: Items: type: array items: $ref: '#/components/schemas/Item' Item: externalDocs: url: 'http://developer.xero.com/documentation/api/items/' properties: Code: description: User defined item code (max length = 30) maxLength: 30 type: string InventoryAssetAccountCode: description: The inventory asset account for the item. The account must be of type INVENTORY. The COGSAccountCode in PurchaseDetails is also required to create a tracked item type: string Name: description: The name of the item (max length = 50) maxLength: 50 type: string IsSold: description: Boolean value, defaults to true. When IsSold is true the item will be available on sales transactions in the Xero UI. If IsSold is updated to false then Description and SalesDetails values will be nulled. type: boolean IsPurchased: description: Boolean value, defaults to true. When IsPurchased is true the item is available for purchase transactions in the Xero UI. If IsPurchased is updated to false then PurchaseDescription and PurchaseDetails values will be nulled. type: boolean Description: description: The sales description of the item (max length = 4000) maxLength: 4000 type: string PurchaseDescription: description: The purchase description of the item (max length = 4000) maxLength: 4000 type: string PurchaseDetails: $ref: '#/components/schemas/Purchase' SalesDetails: $ref: '#/components/schemas/Purchase' IsTrackedAsInventory: description: True for items that are tracked as inventory. An item will be tracked as inventory if the InventoryAssetAccountCode and COGSAccountCode are set. type: boolean TotalCostPool: description: The value of the item on hand. Calculated using average cost accounting. type: number format: double x-is-money: true QuantityOnHand: description: The quantity of the item on hand type: number format: double x-is-money: true UpdatedDateUTC: description: Last modified date in UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true ItemID: description: The Xero identifier for an Item type: string format: uuid StatusAttributeString: description: Status of object type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' required: - Code type: object Purchase: externalDocs: url: 'http://developer.xero.com/documentation/api/items/' properties: UnitPrice: description: Unit Price of the item. By default UnitPrice is rounded to two decimal places. You can use 4 decimal places by adding the unitdp=4 querystring parameter to your request. type: number format: double x-is-money: true AccountCode: description: Default account code to be used for purchased/sale. Not applicable to the purchase details of tracked items type: string COGSAccountCode: description: Cost of goods sold account. Only applicable to the purchase details of tracked items. type: string TaxType: description: The tax type from TaxRates type: string type: object Journals: type: object x-isObjectArray: true properties: Journals: type: array items: $ref: '#/components/schemas/Journal' Journal: externalDocs: url: 'http://developer.xero.com/documentation/api/journals/' properties: JournalID: description: Xero identifier type: string format: uuid JournalDate: description: Date the journal was posted type: string x-is-msdate: true JournalNumber: description: Xero generated journal number type: integer CreatedDateUTC: description: Created date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true Reference: description: reference field for additional indetifying information type: string SourceID: description: The identifier for the source transaction (e.g. InvoiceID) type: string format: uuid SourceType: description: The journal source type. The type of transaction that created the journal type: string enum: - ACCREC - ACCPAY - ACCRECCREDIT - ACCPAYCREDIT - ACCRECPAYMENT - ACCPAYPAYMENT - ARCREDITPAYMENT - APCREDITPAYMENT - CASHREC - CASHPAID - TRANSFER - ARPREPAYMENT - APPREPAYMENT - AROVERPAYMENT - APOVERPAYMENT - EXPCLAIM - EXPPAYMENT - MANJOURNAL - PAYSLIP - WAGEPAYABLE - INTEGRATEDPAYROLLPE - INTEGRATEDPAYROLLPT - EXTERNALSPENDMONEY - INTEGRATEDPAYROLLPTPAYMENT - INTEGRATEDPAYROLLCN JournalLines: description: See JournalLines type: array items: $ref: '#/components/schemas/JournalLine' type: object JournalLine: externalDocs: url: 'https://developer.xero.com/documentation/api/journals#JournalLines' properties: JournalLineID: description: Xero identifier for Journal type: string format: uuid example: 7be9db36-3598-4755-ba5c-c2dbc8c4a7a2 AccountID: description: See Accounts type: string format: uuid example: ceef66a5-a545-413b-9312-78a53caadbc4 AccountCode: description: See Accounts type: string example: 090 AccountType: $ref: '#/components/schemas/AccountType' type: string AccountName: description: See AccountCodes type: string example: Checking Account Description: description: The description from the source transaction line item. Only returned if populated. type: string example: My business checking account NetAmount: description: Net amount of journal line. This will be a positive value for a debit and negative for a credit type: number format: double x-is-money: true example: 4130.98 GrossAmount: description: Gross amount of journal line (NetAmount + TaxAmount). type: number format: double x-is-money: true example: 4130.98 TaxAmount: description: Total tax on a journal line type: number format: double x-is-money: true readOnly: true example: 0.00 TaxType: description: The tax type from taxRates type: string TaxName: description: see TaxRates type: string example: Tax Exempt TrackingCategories: description: Optional Tracking Category – see Tracking. Any JournalLine can have a maximum of 2 elements. type: array items: $ref: '#/components/schemas/TrackingCategory' type: object LinkedTransactions: type: object x-isObjectArray: true properties: LinkedTransactions: type: array items: $ref: '#/components/schemas/LinkedTransaction' LinkedTransaction: externalDocs: url: 'http://developer.xero.com/documentation/api/linked-transactions/' properties: SourceTransactionID: description: Filter by the SourceTransactionID. Get all the linked transactions created from a particular ACCPAY invoice type: string format: uuid SourceLineItemID: description: The line item identifier from the source transaction. type: string format: uuid ContactID: description: Filter by the combination of ContactID and Status. Get all the linked transactions that have been assigned to a particular customer and have a particular status e.g. GET /LinkedTransactions?ContactID=4bb34b03-3378-4bb2-a0ed-6345abf3224e&Status=APPROVED. type: string format: uuid TargetTransactionID: description: Filter by the TargetTransactionID. Get all the linked transactions allocated to a particular ACCREC invoice type: string format: uuid TargetLineItemID: description: The line item identifier from the target transaction. It is possible to link multiple billable expenses to the same TargetLineItemID. type: string format: uuid LinkedTransactionID: description: The Xero identifier for an Linked Transaction e.g./LinkedTransactions/297c2dc5-cc47-4afd-8ec8-74990b8761e9 type: string format: uuid Status: description: Filter by the combination of ContactID and Status. Get all the linked transactions that have been assigned to a particular customer and have a particular status e.g. GET /LinkedTransactions?ContactID=4bb34b03-3378-4bb2-a0ed-6345abf3224e&Status=APPROVED. type: string enum: - APPROVED - DRAFT - ONDRAFT - BILLED - VOIDED Type: description: This will always be BILLABLEEXPENSE. More types may be added in future. type: string enum: - BILLABLEEXPENSE UpdatedDateUTC: description: The last modified date in UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true SourceTransactionTypeCode: description: The Type of the source tranasction. This will be ACCPAY if the linked transaction was created from an invoice and SPEND if it was created from a bank transaction. type: string enum: - ACCPAY - SPEND ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' type: object ManualJournals: type: object x-isObjectArray: true properties: ManualJournals: type: array items: $ref: '#/components/schemas/ManualJournal' ManualJournal: externalDocs: url: 'http://developer.xero.com/documentation/api/manual-journals/' properties: Narration: description: Description of journal being posted type: string JournalLines: description: See JournalLines type: array items: $ref: '#/components/schemas/ManualJournalLine' Date: description: Date journal was posted – YYYY-MM-DD type: string x-is-msdate: true LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string Status: description: See Manual Journal Status Codes type: string enum: - DRAFT - POSTED - DELETED - VOIDED - ARCHIVED Url: description: Url link to a source document – shown as “Go to [appName]” in the Xero app type: string ShowOnCashBasisReports: description: Boolean – default is true if not specified type: boolean HasAttachments: description: Boolean to indicate if a manual journal has an attachment readOnly: true type: boolean default: "false" example: "false" UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true ManualJournalID: description: The Xero identifier for a Manual Journal type: string format: uuid StatusAttributeString: description: A string to indicate if a invoice status type: string example: ERROR Warnings: description: Displays array of warning messages from the API type: array items: $ref: '#/components/schemas/ValidationError' ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Attachments: description: Displays array of attachments from the API type: array items: $ref: '#/components/schemas/Attachment' required: - Narration type: object ManualJournalLine: externalDocs: url: 'http://developer.xero.com/documentation/api/manual-journals/' properties: LineAmount: description: 'total for line. Debits are positive, credits are negative value' type: number format: double x-is-money: true example: -2569.00 AccountCode: description: See Accounts type: string example: 720 AccountID: description: See Accounts type: string format: uuid Description: description: Description for journal line type: string example: Coded incorrectly Office Equipment should be Computer Equipment TaxType: description: The tax type from TaxRates type: string Tracking: description: Optional Tracking Category – see Tracking. Any JournalLine can have a maximum of 2 elements. type: array items: $ref: '#/components/schemas/TrackingCategory' TaxAmount: description: The calculated tax amount based on the TaxType and LineAmount type: number format: double x-is-money: true example: 0.00 IsBlank: description: is the line blank type: boolean example: false type: object Actions: type: object x-isObjectArray: true properties: Actions: type: array items: $ref: '#/components/schemas/Action' Action: externalDocs: url: 'http://developer.xero.com/documentation/api/organisation/' properties: Name: description: Name of the actions for this organisation type: string example: UseMulticurrency Status: description: Status of the action for this organisation type: string enum: - ALLOWED - NOT-ALLOWED Organisations: type: object x-isObjectArray: true properties: Organisations: type: array items: $ref: '#/components/schemas/Organisation' Organisation: externalDocs: url: 'http://developer.xero.com/documentation/api/organisation/' properties: OrganisationID: description: Unique Xero identifier type: string format: uuid example: 8be9db36-3598-4755-ba5c-c2dbc8c4a7a2 APIKey: description: Display a unique key used for Xero-to-Xero transactions type: string Name: description: Display name of organisation shown in Xero type: string LegalName: description: Organisation name shown on Reports type: string PaysTax: description: Boolean to describe if organisation is registered with a local tax authority i.e. true, false type: boolean Version: description: See Version Types type: string enum: - AU - NZ - GLOBAL - UK - US - AUONRAMP - NZONRAMP - GLOBALONRAMP - UKONRAMP - USONRAMP OrganisationType: description: Organisation Type type: string enum: - ACCOUNTING_PRACTICE - COMPANY - CHARITY - CLUB_OR_SOCIETY - INDIVIDUAL - LOOK_THROUGH_COMPANY - NOT_FOR_PROFIT - PARTNERSHIP - S_CORPORATION - SELF_MANAGED_SUPERANNUATION_FUND - SOLE_TRADER - SUPERANNUATION_FUND - TRUST BaseCurrency: $ref: '#/components/schemas/CurrencyCode' type: string CountryCode: $ref: '#/components/schemas/CountryCode' type: string IsDemoCompany: description: Boolean to describe if organisation is a demo company. type: boolean OrganisationStatus: description: Will be set to ACTIVE if you can connect to organisation via the Xero API type: string RegistrationNumber: description: Shows for New Zealand, Australian and UK organisations type: string EmployerIdentificationNumber: description: Shown if set. US Only. type: string TaxNumber: description: Shown if set. Displays in the Xero UI as Tax File Number (AU), GST Number (NZ), VAT Number (UK) and Tax ID Number (US & Global). type: string FinancialYearEndDay: description: Calendar day e.g. 0-31 type: integer FinancialYearEndMonth: description: Calendar Month e.g. 1-12 type: integer SalesTaxBasis: description: The accounting basis used for tax returns. See Sales Tax Basis type: string enum: - PAYMENTS - INVOICE - NONE - CASH - ACCRUAL - FLATRATECASH - FLATRATEACCRUAL - ACCRUALS SalesTaxPeriod: description: The frequency with which tax returns are processed. See Sales Tax Period type: string enum: - MONTHLY - QUARTERLY1 - QUARTERLY2 - QUARTERLY3 - ANNUALLY - ONEMONTHS - TWOMONTHS - SIXMONTHS - 1MONTHLY - 2MONTHLY - 3MONTHLY - 6MONTHLY - QUARTERLY - YEARLY - NONE DefaultSalesTax: description: The default for LineAmountTypes on sales transactions type: string DefaultPurchasesTax: description: The default for LineAmountTypes on purchase transactions type: string PeriodLockDate: description: Shown if set. See lock dates type: string x-is-msdate: true EndOfYearLockDate: description: Shown if set. See lock dates type: string x-is-msdate: true CreatedDateUTC: description: Timestamp when the organisation was created in Xero type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true Timezone: $ref: '#/components/schemas/TimeZone' type: string OrganisationEntityType: description: Organisation Entity Type type: string enum: - ACCOUNTING_PRACTICE - COMPANY - CHARITY - CLUB_OR_SOCIETY - INDIVIDUAL - LOOK_THROUGH_COMPANY - NOT_FOR_PROFIT - PARTNERSHIP - S_CORPORATION - SELF_MANAGED_SUPERANNUATION_FUND - SOLE_TRADER - SUPERANNUATION_FUND - TRUST ShortCode: description: A unique identifier for the organisation. Potential uses. type: string Class: description: Organisation Classes describe which plan the Xero organisation is on (e.g. DEMO, TRIAL, PREMIUM) type: string enum: - DEMO - TRIAL - STARTER - STANDARD - PREMIUM - PREMIUM_20 - PREMIUM_50 - PREMIUM_100 - LEDGER - GST_CASHBOOK - NON_GST_CASHBOOK - ULTIMATE - LITE Edition: description: BUSINESS or PARTNER. Partner edition organisations are sold exclusively through accounting partners and have restricted functionality (e.g. no access to invoicing) type: string enum: - BUSINESS - PARTNER LineOfBusiness: description: Description of business type as defined in Organisation settings type: string Addresses: description: Address details for organisation – see Addresses type: array items: $ref: '#/components/schemas/AddressForOrganisation' Phones: description: Phones details for organisation – see Phones type: array items: $ref: '#/components/schemas/Phone' ExternalLinks: description: Organisation profile links for popular services such as Facebook,Twitter, GooglePlus and LinkedIn. You can also add link to your website here. Shown if Organisation settings is updated in Xero. See ExternalLinks below type: array items: $ref: '#/components/schemas/ExternalLink' PaymentTerms: $ref: '#/components/schemas/PaymentTerm' type: object CountryCode: type: string enum: - AD - AE - AF - AG - AI - AL - AM - AN - AO - AQ - AR - AS - AT - AU - AW - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BR - BS - BT - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CR - CU - CV - CW - CX - CY - CZ - DE - DJ - DK - DM - DO - DZ - EC - EE - EG - EH - ER - ES - ET - FI - FJ - FK - FM - FO - FR - GA - GB - GD - GE - GG - GH - GI - GL - GM - GN - GQ - GR - GT - GU - GW - GY - HK - HN - HR - HT - HU - ID - IE - IL - IM - IN - IO - IQ - IR - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KP - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - LY - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NG - NI - NL - "NO" - NP - NR - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SD - SE - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - SS - ST - SV - SX - SY - SZ - TC - TD - TG - TH - TJ - TK - TL - TM - TN - TO - TR - TT - TV - TW - TZ - UA - UG - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - XK - YE - YT - ZA - ZM - ZW TimeZone: description: Timezone specifications type: string enum: - AFGHANISTANSTANDARDTIME - ALASKANSTANDARDTIME - ALEUTIANSTANDARDTIME - ALTAISTANDARDTIME - ARABIANSTANDARDTIME - ARABICSTANDARDTIME - ARABSTANDARDTIME - ARGENTINASTANDARDTIME - ASTRAKHANSTANDARDTIME - ATLANTICSTANDARDTIME - AUSCENTRALSTANDARDTIME - AUSCENTRALWSTANDARDTIME - AUSEASTERNSTANDARDTIME - AZERBAIJANSTANDARDTIME - AZORESSTANDARDTIME - BAHIASTANDARDTIME - BANGLADESHSTANDARDTIME - BELARUSSTANDARDTIME - BOUGAINVILLESTANDARDTIME - CANADACENTRALSTANDARDTIME - CAPEVERDESTANDARDTIME - CAUCASUSSTANDARDTIME - CENAUSTRALIASTANDARDTIME - CENTRALAMERICASTANDARDTIME - CENTRALASIASTANDARDTIME - CENTRALBRAZILIANSTANDARDTIME - CENTRALEUROPEANSTANDARDTIME - CENTRALEUROPESTANDARDTIME - CENTRALPACIFICSTANDARDTIME - CENTRALSTANDARDTIME - CENTRALSTANDARDTIME(MEXICO) - CHATHAMISLANDSSTANDARDTIME - CHINASTANDARDTIME - CUBASTANDARDTIME - DATELINESTANDARDTIME - EAFRICASTANDARDTIME - EASTERISLANDSTANDARDTIME - EASTERNSTANDARDTIME - EASTERNSTANDARDTIME(MEXICO) - EAUSTRALIASTANDARDTIME - EEUROPESTANDARDTIME - EGYPTSTANDARDTIME - EKATERINBURGSTANDARDTIME - ESOUTHAMERICASTANDARDTIME - FIJISTANDARDTIME - FLESTANDARDTIME - GEORGIANSTANDARDTIME - GMTSTANDARDTIME - GREENLANDSTANDARDTIME - GREENWICHSTANDARDTIME - GTBSTANDARDTIME - HAITISTANDARDTIME - HAWAIIANSTANDARDTIME - INDIASTANDARDTIME - IRANSTANDARDTIME - ISRAELSTANDARDTIME - JORDANSTANDARDTIME - KALININGRADSTANDARDTIME - KAMCHATKASTANDARDTIME - KOREASTANDARDTIME - LIBYASTANDARDTIME - LINEISLANDSSTANDARDTIME - LORDHOWESTANDARDTIME - MAGADANSTANDARDTIME - MAGALLANESSTANDARDTIME - MARQUESASSTANDARDTIME - MAURITIUSSTANDARDTIME - MIDATLANTICSTANDARDTIME - MIDDLEEASTSTANDARDTIME - MONTEVIDEOSTANDARDTIME - MOROCCOSTANDARDTIME - MOUNTAINSTANDARDTIME - MOUNTAINSTANDARDTIME(MEXICO) - MYANMARSTANDARDTIME - NAMIBIASTANDARDTIME - NCENTRALASIASTANDARDTIME - NEPALSTANDARDTIME - NEWFOUNDLANDSTANDARDTIME - NEWZEALANDSTANDARDTIME - NORFOLKSTANDARDTIME - NORTHASIAEASTSTANDARDTIME - NORTHASIASTANDARDTIME - NORTHKOREASTANDARDTIME - OMSKSTANDARDTIME - PACIFICSASTANDARDTIME - PACIFICSTANDARDTIME - PACIFICSTANDARDTIME(MEXICO) - PAKISTANSTANDARDTIME - PARAGUAYSTANDARDTIME - QYZYLORDASTANDARDTIME - ROMANCESTANDARDTIME - RUSSIANSTANDARDTIME - RUSSIATIMEZONE10 - RUSSIATIMEZONE11 - RUSSIATIMEZONE3 - SAEASTERNSTANDARDTIME - SAINTPIERRESTANDARDTIME - SAKHALINSTANDARDTIME - SAMOASTANDARDTIME - SAOTOMESTANDARDTIME - SAPACIFICSTANDARDTIME - SARATOVSTANDARDTIME - SAWESTERNSTANDARDTIME - SEASIASTANDARDTIME - SINGAPORESTANDARDTIME - SOUTHAFRICASTANDARDTIME - SOUTHSUDANSTANDARDTIME - SRILANKASTANDARDTIME - SUDANSTANDARDTIME - SYRIASTANDARDTIME - TAIPEISTANDARDTIME - TASMANIASTANDARDTIME - TOCANTINSSTANDARDTIME - TOKYOSTANDARDTIME - TOMSKSTANDARDTIME - TONGASTANDARDTIME - TRANSBAIKALSTANDARDTIME - TURKEYSTANDARDTIME - TURKSANDCAICOSSTANDARDTIME - ULAANBAATARSTANDARDTIME - USEASTERNSTANDARDTIME - USMOUNTAINSTANDARDTIME - UTC - UTC+12 - UTC+13 - UTC02 - UTC08 - UTC09 - UTC11 - VENEZUELASTANDARDTIME - VLADIVOSTOKSTANDARDTIME - VOLGOGRADSTANDARDTIME - WAUSTRALIASTANDARDTIME - WCENTRALAFRICASTANDARDTIME - WESTASIASTANDARDTIME - WESTBANKSTANDARDTIME - WESTPACIFICSTANDARDTIME - WEUROPESTANDARDTIME - WMONGOLIASTANDARDTIME - YAKUTSKSTANDARDTIME - YUKONSTANDARDTIME PaymentTerm: externalDocs: url: 'http://developer.xero.com/documentation/api/organisation/' properties: Bills: $ref: '#/components/schemas/Bill' Sales: $ref: '#/components/schemas/Bill' type: object PaymentTermType: type: string enum: - DAYSAFTERBILLDATE - DAYSAFTERBILLMONTH - OFCURRENTMONTH - OFFOLLOWINGMONTH ExternalLink: externalDocs: url: 'http://developer.xero.com/documentation/api/organisation/' properties: LinkType: description: See External link types type: string enum: - Facebook - GooglePlus - LinkedIn - Twitter - Website Url: description: 'URL for service e.g. http://twitter.com/xeroapi' type: string Description: type: string type: object Bill: externalDocs: url: 'http://developer.xero.com/documentation/api/organisation/' properties: Day: description: Day of Month (0-31) type: integer Type: $ref: '#/components/schemas/PaymentTermType' type: object Overpayments: type: object x-isObjectArray: true properties: Overpayments: type: array items: $ref: '#/components/schemas/Overpayment' Overpayment: externalDocs: url: 'http://developer.xero.com/documentation/api/overpayments/' properties: Type: description: See Overpayment Types type: string enum: - RECEIVE-OVERPAYMENT - SPEND-OVERPAYMENT - AROVERPAYMENT Contact: $ref: '#/components/schemas/Contact' Date: description: The date the overpayment is created YYYY-MM-DD type: string x-is-msdate: true Status: description: See Overpayment Status Codes type: string enum: - AUTHORISED - PAID - VOIDED LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string LineItems: description: See Overpayment Line Items type: array items: $ref: '#/components/schemas/LineItem' SubTotal: description: The subtotal of the overpayment excluding taxes type: number format: double x-is-money: true TotalTax: description: The total tax on the overpayment type: number format: double x-is-money: true Total: description: The total of the overpayment (subtotal + total tax) type: number format: double x-is-money: true UpdatedDateUTC: description: UTC timestamp of last update to the overpayment type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string OverpaymentID: description: Xero generated unique identifier type: string format: uuid CurrencyRate: description: The currency rate for a multicurrency overpayment. If no rate is specified, the XE.com day rate is used type: number format: double x-is-money: true RemainingCredit: description: The remaining credit balance on the overpayment type: number format: double x-is-money: true Allocations: description: See Allocations type: array items: $ref: '#/components/schemas/Allocation' AppliedAmount: description: The amount of applied to an invoice type: number format: double example: 2.00 Payments: description: See Payments type: array items: $ref: '#/components/schemas/Payment' HasAttachments: description: boolean to indicate if a overpayment has an attachment readOnly: true type: boolean default: "false" example: "false" Attachments: description: See Attachments type: array items: $ref: '#/components/schemas/Attachment' type: object Payments: type: object x-isObjectArray: true properties: Payments: type: array items: $ref: '#/components/schemas/Payment' PaymentDelete: externalDocs: url: 'http://developer.xero.com/documentation/api/payments/' properties: Status: description: The status of the payment. type: string default: "DELETED" required: - Status type: object Payment: externalDocs: url: 'http://developer.xero.com/documentation/api/payments/' properties: Invoice: $ref: '#/components/schemas/Invoice' CreditNote: $ref: '#/components/schemas/CreditNote' Prepayment: $ref: '#/components/schemas/Prepayment' Overpayment: $ref: '#/components/schemas/Overpayment' InvoiceNumber: description: Number of invoice or credit note you are applying payment to e.g.INV-4003 type: string CreditNoteNumber: description: Number of invoice or credit note you are applying payment to e.g. INV-4003 type: string BatchPayment: $ref: '#/components/schemas/BatchPayment' Account: $ref: '#/components/schemas/Account' Code: description: Code of account you are using to make the payment e.g. 001 (note- not all accounts have a code value) type: string Date: description: Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06 type: string x-is-msdate: true CurrencyRate: description: Exchange rate when payment is received. Only used for non base currency invoices and credit notes e.g. 0.7500 type: number format: double x-is-money: true Amount: description: The amount of the payment. Must be less than or equal to the outstanding amount owing on the invoice e.g. 200.00 type: number format: double x-is-money: true BankAmount: description: The amount of the payment in the currency of the bank account. type: number format: double x-is-money: true Reference: description: An optional description for the payment e.g. Direct Debit type: string IsReconciled: description: An optional parameter for the payment. A boolean indicating whether you would like the payment to be created as reconciled when using PUT, or whether a payment has been reconciled when using GET type: boolean Status: description: The status of the payment. type: string enum: - AUTHORISED - DELETED PaymentType: description: See Payment Types. readOnly: true type: string enum: - ACCRECPAYMENT - ACCPAYPAYMENT - ARCREDITPAYMENT - APCREDITPAYMENT - AROVERPAYMENTPAYMENT - ARPREPAYMENTPAYMENT - APPREPAYMENTPAYMENT - APOVERPAYMENTPAYMENT UpdatedDateUTC: description: UTC timestamp of last update to the payment type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true PaymentID: description: The Xero identifier for an Payment e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9 type: string format: uuid example: 00000000-0000-0000-0000-000000000000 BatchPaymentID: description: Present if the payment was created as part of a batch. type: string format: uuid example: 00000000-0000-0000-0000-000000000000 BankAccountNumber: description: The suppliers bank account number the payment is being made to type: string Particulars: description: The suppliers bank account number the payment is being made to type: string Details: description: The information to appear on the supplier's bank account type: string HasAccount: description: A boolean to indicate if a contact has an validation errors type: boolean default: "false" example: "false" HasValidationErrors: description: A boolean to indicate if a contact has an validation errors type: boolean default: "false" example: "false" StatusAttributeString: description: A string to indicate if a invoice status type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Warnings: description: Displays array of warning messages from the API type: array items: $ref: '#/components/schemas/ValidationError' type: object Prepayments: type: object x-isObjectArray: true properties: Prepayments: type: array items: $ref: '#/components/schemas/Prepayment' Prepayment: externalDocs: url: 'http://developer.xero.com/documentation/api/prepayments/' properties: Type: description: See Prepayment Types type: string enum: - RECEIVE-PREPAYMENT - SPEND-PREPAYMENT - ARPREPAYMENT - APPREPAYMENT Contact: $ref: '#/components/schemas/Contact' Date: description: The date the prepayment is created YYYY-MM-DD type: string x-is-msdate: true Status: description: See Prepayment Status Codes type: string enum: - AUTHORISED - PAID - VOIDED LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string LineItems: description: See Prepayment Line Items type: array items: $ref: '#/components/schemas/LineItem' SubTotal: description: The subtotal of the prepayment excluding taxes type: number format: double x-is-money: true TotalTax: description: The total tax on the prepayment type: number format: double x-is-money: true Total: description: The total of the prepayment(subtotal + total tax) type: number format: double x-is-money: true Reference: description: Returns Invoice number field. Reference field isn't available. type: string readOnly: true UpdatedDateUTC: description: UTC timestamp of last update to the prepayment type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string PrepaymentID: description: Xero generated unique identifier type: string format: uuid CurrencyRate: description: The currency rate for a multicurrency prepayment. If no rate is specified, the XE.com day rate is used type: number format: double x-is-money: true RemainingCredit: description: The remaining credit balance on the prepayment type: number format: double x-is-money: true Allocations: description: See Allocations type: array items: $ref: '#/components/schemas/Allocation' Payments: description: See Payments type: array items: $ref: '#/components/schemas/Payment' AppliedAmount: description: The amount of applied to an invoice type: number format: double example: 2.00 HasAttachments: description: boolean to indicate if a prepayment has an attachment readOnly: true type: boolean default: "false" example: "false" Attachments: description: See Attachments type: array items: $ref: '#/components/schemas/Attachment' type: object PurchaseOrders: type: object x-isObjectArray: true properties: PurchaseOrders: type: array items: $ref: '#/components/schemas/PurchaseOrder' PurchaseOrder: externalDocs: url: 'http://developer.xero.com/documentation/api/purchase-orders/' properties: Contact: $ref: '#/components/schemas/Contact' LineItems: description: See LineItems type: array items: $ref: '#/components/schemas/LineItem' Date: description: Date purchase order was issued – YYYY-MM-DD. If the Date element is not specified then it will default to the current date based on the timezone setting of the organisation type: string x-is-msdate: true DeliveryDate: description: Date the goods are to be delivered – YYYY-MM-DD type: string x-is-msdate: true LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string PurchaseOrderNumber: description: Unique alpha numeric code identifying purchase order (when missing will auto-generate from your Organisation Invoice Settings) type: string Reference: description: Additional reference number type: string BrandingThemeID: description: See BrandingThemes type: string format: uuid CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string Status: description: See Purchase Order Status Codes type: string enum: - DRAFT - SUBMITTED - AUTHORISED - BILLED - DELETED SentToContact: description: Boolean to set whether the purchase order should be marked as “sent”. This can be set only on purchase orders that have been approved or billed type: boolean DeliveryAddress: description: The address the goods are to be delivered to type: string AttentionTo: description: The person that the delivery is going to type: string Telephone: description: The phone number for the person accepting the delivery type: string DeliveryInstructions: description: A free text feild for instructions (500 characters max) type: string ExpectedArrivalDate: description: The date the goods are expected to arrive. type: string x-is-msdate: true PurchaseOrderID: description: Xero generated unique identifier for purchase order type: string format: uuid CurrencyRate: description: The currency rate for a multicurrency purchase order. If no rate is specified, the XE.com day rate is used. type: number format: double x-is-money: true SubTotal: description: Total of purchase order excluding taxes readOnly: true type: number format: double x-is-money: true TotalTax: description: Total tax on purchase order readOnly: true type: number format: double x-is-money: true Total: description: Total of Purchase Order tax inclusive (i.e. SubTotal + TotalTax) readOnly: true type: number format: double x-is-money: true TotalDiscount: description: Total of discounts applied on the purchase order line items readOnly: true type: number format: double x-is-money: true HasAttachments: description: boolean to indicate if a purchase order has an attachment readOnly: true type: boolean default: "false" example: "false" UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true StatusAttributeString: description: A string to indicate if a invoice status type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Warnings: description: Displays array of warning messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Attachments: description: Displays array of attachments from the API type: array items: $ref: '#/components/schemas/Attachment' type: object Quotes: type: object x-isObjectArray: true properties: Quotes: type: array items: $ref: '#/components/schemas/Quote' Quote: externalDocs: url: 'http://developer.xero.com/documentation/api/Quotes/' properties: QuoteID: description: QuoteID GUID is automatically generated and is returned after create or GET. type: string format: uuid QuoteNumber: description: Unique alpha numeric code identifying a quote (Max Length = 255) maxLength: 255 type: string Reference: description: Additional reference number maxLength: 4000 type: string Terms: description: Terms of the quote maxLength: 4000 type: string Contact: $ref: '#/components/schemas/Contact' type: string LineItems: description: See LineItems type: array items: $ref: '#/components/schemas/LineItem' Date: description: Date quote was issued – YYYY-MM-DD. If the Date element is not specified it will default to the current date based on the timezone setting of the organisation type: string x-is-msdate: true DateString: description: Date the quote was issued (YYYY-MM-DD) type: string ExpiryDate: description: Date the quote expires – YYYY-MM-DD. type: string x-is-msdate: true ExpiryDateString: description: Date the quote expires – YYYY-MM-DD. type: string Status: $ref: '#/components/schemas/QuoteStatusCodes' type: string CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string CurrencyRate: description: The currency rate for a multicurrency quote type: number format: double SubTotal: description: Total of quote excluding taxes. readOnly: true type: number format: double x-is-money: true TotalTax: description: Total tax on quote readOnly: true type: number format: double x-is-money: true Total: description: Total of Quote tax inclusive (i.e. SubTotal + TotalTax). This will be ignored if it doesn’t equal the sum of the LineAmounts readOnly: true type: number format: double x-is-money: true TotalDiscount: description: Total of discounts applied on the quote line items readOnly: true type: number format: double x-is-money: true Title: description: Title text for the quote type: string maxLength: 100 Summary: description: Summary text for the quote type: string maxLength: 3000 BrandingThemeID: description: See BrandingThemes type: string format: uuid UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true LineAmountTypes: $ref: '#/components/schemas/QuoteLineAmountTypes' type: string description: See Quote Line Amount Types StatusAttributeString: description: A string to indicate if a invoice status type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' type: object QuoteLineAmountTypes: description: Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types type: string enum: - EXCLUSIVE - INCLUSIVE - NOTAX QuoteStatusCodes: description: The status of the quote. type: string enum: - DRAFT - SENT - DECLINED - ACCEPTED - INVOICED - DELETED Receipts: type: object x-isObjectArray: true properties: Receipts: type: array items: $ref: '#/components/schemas/Receipt' Receipt: externalDocs: url: 'http://developer.xero.com/documentation/api/receipts/' properties: Date: description: Date of receipt – YYYY-MM-DD type: string x-is-msdate: true Contact: $ref: '#/components/schemas/Contact' LineItems: type: array items: $ref: '#/components/schemas/LineItem' User: $ref: '#/components/schemas/User' Reference: description: Additional reference number type: string LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string SubTotal: description: Total of receipt excluding taxes type: number format: double x-is-money: true TotalTax: description: Total tax on receipt type: number format: double x-is-money: true Total: description: Total of receipt tax inclusive (i.e. SubTotal + TotalTax) type: number format: double x-is-money: true ReceiptID: description: Xero generated unique identifier for receipt type: string format: uuid Status: description: Current status of receipt – see status types type: string enum: - DRAFT - SUBMITTED - AUTHORISED - DECLINED - VOIDED ReceiptNumber: description: Xero generated sequence number for receipt in current claim for a given user readOnly: true type: string UpdatedDateUTC: description: Last modified date UTC format type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true HasAttachments: description: boolean to indicate if a receipt has an attachment readOnly: true type: boolean default: "false" example: "false" Url: description: URL link to a source document – shown as “Go to [appName]” in the Xero app readOnly: true type: string ValidationErrors: description: Displays array of validation error messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Warnings: description: Displays array of warning messages from the API type: array items: $ref: '#/components/schemas/ValidationError' Attachments: description: Displays array of attachments from the API type: array items: $ref: '#/components/schemas/Attachment' type: object RepeatingInvoices: type: object x-isObjectArray: true properties: RepeatingInvoices: type: array items: $ref: '#/components/schemas/RepeatingInvoice' RepeatingInvoice: externalDocs: url: 'http://developer.xero.com/documentation/api/repeating-invoices/' properties: Type: description: See Invoice Types type: string enum: - ACCPAY - ACCREC Contact: $ref: '#/components/schemas/Contact' Schedule: $ref: '#/components/schemas/Schedule' LineItems: description: See LineItems type: array items: $ref: '#/components/schemas/LineItem' LineAmountTypes: $ref: '#/components/schemas/LineAmountTypes' type: string Reference: description: ACCREC only – additional reference number type: string BrandingThemeID: description: See BrandingThemes type: string format: uuid CurrencyCode: $ref: '#/components/schemas/CurrencyCode' type: string Status: description: One of the following - DRAFT or AUTHORISED – See Invoice Status Codes type: string enum: - DRAFT - AUTHORISED - DELETED SubTotal: description: Total of invoice excluding taxes type: number format: double x-is-money: true TotalTax: description: Total tax on invoice type: number format: double x-is-money: true Total: description: Total of Invoice tax inclusive (i.e. SubTotal + TotalTax) type: number format: double x-is-money: true RepeatingInvoiceID: description: Xero generated unique identifier for repeating invoice template type: string format: uuid ID: description: Xero generated unique identifier for repeating invoice template type: string format: uuid HasAttachments: description: Boolean to indicate if an invoice has an attachment readOnly: true type: boolean default: "false" example: "false" Attachments: description: Displays array of attachments from the API type: array items: $ref: '#/components/schemas/Attachment' ApprovedForSending: description: Boolean to indicate whether the invoice has been approved for sending type: boolean default: "false" example: "false" SendCopy: description: Boolean to indicate whether a copy is sent to sender's email type: boolean default: "false" example: "false" MarkAsSent: description: Boolean to indicate whether the invoice in the Xero app displays as "sent" type: boolean default: "false" example: "false" IncludePDF: description: Boolean to indicate whether to include PDF attachment type: boolean default: "false" example: "false" type: object ReportWithRows: type: object properties: Reports: type: array items: $ref: '#/components/schemas/ReportWithRow' ReportWithRow: externalDocs: url: 'http://developer.xero.com/documentation/api/reports/' properties: ReportID: description: ID of the Report type: string ReportName: description: Name of the report type: string ReportTitle: description: Title of the report type: string ReportType: description: The type of report (BalanceSheet,ProfitLoss, etc) type: string ReportTitles: description: Report titles array (3 to 4 strings with the report name, orgnisation name and time frame of report) type: array items: type: string ReportDate: description: Date of report type: string Rows: type: array items: $ref: '#/components/schemas/ReportRows' UpdatedDateUTC: description: Updated Date type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true Fields: type: array items: $ref: '#/components/schemas/ReportFields' ReportRows: type: object properties: RowType: $ref: '#/components/schemas/RowType' Title: type: string Cells: type: array items: $ref: '#/components/schemas/ReportCell' Rows: type: array items: $ref: '#/components/schemas/ReportRow' RowType: type: string enum: - Header - Section - Row - SummaryRow ReportRow: type: object properties: RowType: $ref: '#/components/schemas/RowType' Title: type: string Cells: type: array items: $ref: '#/components/schemas/ReportCell' ReportCell: type: object properties: Value: type: string Attributes: type: array items: $ref: '#/components/schemas/ReportAttribute' ReportAttribute: externalDocs: url: 'http://developer.xero.com/documentation/api/reports/' properties: Id: type: string Value: type: string ReportFields: type: object properties: FieldID: type: string Description: type: string Value: type: string Reports: type: object x-isObjectArray: true properties: Reports: type: array items: $ref: '#/components/schemas/Report' Report: externalDocs: url: 'http://developer.xero.com/documentation/api/reports/' properties: ReportName: description: See Prepayment Types type: string ReportType: description: See Prepayment Types type: string enum: - AgedPayablesByContact ReportTitle: description: See Prepayment Types type: string ReportDate: description: Date of report type: string UpdatedDateUTC: description: Updated Date type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true Contacts: type: array items: $ref: '#/components/schemas/TenNinetyNineContact' TenNinetyNineContact: properties: Box1: description: Box 1 on 1099 Form type: number format: double x-is-money: true Box2: description: Box 2 on 1099 Form type: number format: double x-is-money: true Box3: description: Box 3 on 1099 Form type: number format: double x-is-money: true Box4: description: Box 4 on 1099 Form type: number format: double x-is-money: true Box5: description: Box 5 on 1099 Form type: number format: double x-is-money: true Box6: description: Box 6 on 1099 Form type: number format: double x-is-money: true Box7: description: Box 7 on 1099 Form type: number format: double x-is-money: true Box8: description: Box 8 on 1099 Form type: number format: double x-is-money: true Box9: description: Box 9 on 1099 Form type: number format: double x-is-money: true Box10: description: Box 10 on 1099 Form type: number format: double x-is-money: true Box11: description: Box 11 on 1099 Form type: number format: double x-is-money: true Box13: description: Box 13 on 1099 Form type: number format: double x-is-money: true Box14: description: Box 14 on 1099 Form type: number format: double x-is-money: true Name: description: Contact name on 1099 Form type: string FederalTaxIDType: description: Contact Fed Tax ID type type: string City: description: Contact city on 1099 Form type: string Zip: description: Contact zip on 1099 Form type: string State: description: Contact State on 1099 Form type: string Email: description: Contact email on 1099 Form type: string StreetAddress: description: Contact address on 1099 Form type: string TaxID: description: Contact tax id on 1099 Form type: string ContactId: description: Contact contact id type: string format: uuid LegalName: description: Contact legal name type: string BusinessName: description: Contact business name type: string FederalTaxClassification: description: Contact federal tax classification type: string enum: - SOLE_PROPRIETOR - PARTNERSHIP - TRUST_OR_ESTATE - NONPROFIT - C_CORP - S_CORP - OTHER Schedule: externalDocs: url: 'http://developer.xero.com/documentation/api/repeating-invoices/' properties: Period: description: Integer used with the unit e.g. 1 (every 1 week), 2 (every 2 months) type: integer Unit: description: One of the following - WEEKLY or MONTHLY type: string enum: - WEEKLY - MONTHLY DueDate: description: Integer used with due date type e.g 20 (of following month), 31 (of current month) type: integer DueDateType: description: the payment terms type: string enum: - DAYSAFTERBILLDATE - DAYSAFTERBILLMONTH - DAYSAFTERINVOICEDATE - DAYSAFTERINVOICEMONTH - OFCURRENTMONTH - OFFOLLOWINGMONTH StartDate: description: Date the first invoice of the current version of the repeating schedule was generated (changes when repeating invoice is edited) type: string x-is-msdate: true NextScheduledDate: description: The calendar date of the next invoice in the schedule to be generated type: string x-is-msdate: true EndDate: description: Invoice end date – only returned if the template has an end date set type: string x-is-msdate: true type: object TaxRates: type: object x-isObjectArray: true properties: TaxRates: type: array items: $ref: '#/components/schemas/TaxRate' TaxType: description: See Tax Types – can only be used on update calls type: string enum: - OUTPUT - INPUT - CAPEXINPUT - EXEMPTEXPORT - EXEMPTEXPENSES - EXEMPTCAPITAL - EXEMPTOUTPUT - INPUTTAXED - BASEXCLUDED - GSTONCAPIMPORTS - GSTONIMPORTS - NONE - INPUT2 - ZERORATED - OUTPUT2 - CAPEXINPUT2 - CAPEXOUTPUT - CAPEXOUTPUT2 - CAPEXSRINPUT - CAPEXSROUTPUT - ECACQUISITIONS - ECZRINPUT - ECZROUTPUT - ECZROUTPUTSERVICES - EXEMPTINPUT - REVERSECHARGES - RRINPUT - RROUTPUT - SRINPUT - SROUTPUT - ZERORATEDINPUT - ZERORATEDOUTPUT - BLINPUT - DSOUTPUT - EPINPUT - ES33OUTPUT - ESN33OUTPUT - IGDSINPUT2 - IMINPUT2 - MEINPUT - NRINPUT - OPINPUT - OSOUTPUT - TXESSINPUT - TXN33INPUT - TXPETINPUT - TXREINPUT - INPUT3 - INPUT4 - OUTPUT3 - OUTPUT4 - SROUTPUT2 - TXCA - SRCAS - BLINPUT2 - DRCHARGESUPPLY20 - DRCHARGE20 - DRCHARGESUPPLY5 - DRCHARGE5 - BADDEBTRELIEF - IGDSINPUT3 - SROVR - TOURISTREFUND - TXRCN33 - TXRCRE - TXRCESS - TXRCTS - OUTPUTY23 - DSOUTPUTY23 - INPUTY23 - IMINPUT2Y23 - IGDSINPUT2Y23 - TXPETINPUTY23 - TXESSINPUTY23 - TXN33INPUTY23 - TXREINPUTY23 - TXCAY23 - BADDEBTRELIEFY23 - IGDSINPUT3Y23 - SROVRRSY23 - SROVRLVGY23 - SRLVGY23 - TXRCN33Y23 - TXRCREY23 - TXRCESSY23 - TXRCTSY23 - IM - IMY23 - IMESS - IMESSY23 - IMN33 - IMN33Y23 - IMRE - IMREY23 - BADDEBTRECOVERY - BADDEBTRECOVERYY23 - OUTPUTY24 - DSOUTPUTY24 - INPUTY24 - IGDSINPUT2Y24 - TXPETINPUTY24 - TXESSINPUTY24 - TXN33INPUTY24 - TXREINPUTY24 - TXCAY24 - BADDEBTRELIEFY24 - IGDSINPUT3Y24 - SROVRRSY24 - SROVRLVGY24 - SRLVGY24 - TXRCTSY24 - TXRCESSY24 - TXRCN33Y24 - TXRCREY24 - IMY24 - IMESSY24 - IMN33Y24 - IMREY24 - BADDEBTRECOVERYY24 - OSOUTPUT2 Setup: externalDocs: url: 'https://developer.xero.com/documentation/api-guides/conversions' properties: ConversionDate: $ref: '#/components/schemas/ConversionDate' ConversionBalances: description: Balance supplied for each account that has a value as at the conversion date. type: array items: $ref: '#/components/schemas/ConversionBalances' Accounts: type: array items: $ref: '#/components/schemas/Account' ConversionDate: description: The date when the organisation starts using Xero type: object properties: Month: description: The month the organisation starts using Xero. Value is an integer between 1 and 12 type: integer example: 1 Year: description: The year the organisation starts using Xero. Value is an integer greater than 2006 type: integer example: 2020 ConversionBalances: description: Balance supplied for each account that has a value as at the conversion date. properties: AccountCode: description: The account code for a account type: string Balance: description: The opening balances of the account. Debits are positive, credits are negative values type: number format: double BalanceDetails: type: array items: $ref: '#/components/schemas/BalanceDetails' type: object BalanceDetails: description: An array to specify multiple currency balances of an account properties: Balance: description: The opening balances of the account. Debits are positive, credits are negative values type: number format: double CurrencyCode: description: The currency of the balance (Not required for base currency) type: string CurrencyRate: description: (Optional) Exchange rate to base currency when money is spent or received. If not specified, XE rate for the day is applied type: number format: double x-is-money: true type: object ImportSummaryObject: externalDocs: url: 'https://developer.xero.com/documentation/api-guides/conversions' properties: ImportSummary: $ref: '#/components/schemas/ImportSummary' ImportSummary: externalDocs: url: 'https://developer.xero.com/documentation/api-guides/conversions' description: A summary of the import from setup endpoint type: object properties: Accounts: $ref: '#/components/schemas/ImportSummaryAccounts' Organisation: $ref: '#/components/schemas/ImportSummaryOrganisation' ImportSummaryAccounts: description: A summary of the accounts changes type: object properties: Total: description: The total number of accounts in the org type: integer format: int32 New: description: The number of new accounts created type: integer format: int32 Updated: description: The number of accounts updated type: integer format: int32 Deleted: description: The number of accounts deleted type: integer format: int32 Locked: description: The number of locked accounts type: integer format: int32 System: description: The number of system accounts type: integer format: int32 Errored: description: The number of accounts that had an error type: integer format: int32 Present: type: boolean NewOrUpdated: description: The number of new or updated accounts type: integer format: int32 ImportSummaryOrganisation: type: object properties: Present: type: boolean TaxRate: externalDocs: url: 'http://developer.xero.com/documentation/api/tax-rates/' properties: Name: description: Name of tax rate type: string TaxType: description: The tax type type: string TaxComponents: description: See TaxComponents type: array items: $ref: '#/components/schemas/TaxComponent' Status: description: See Status Codes type: string enum: - ACTIVE - DELETED - ARCHIVED - PENDING ReportTaxType: description: See ReportTaxTypes type: string enum: - AVALARA - BASEXCLUDED - CAPITALSALESOUTPUT - CAPITALEXPENSESINPUT - ECOUTPUT - ECOUTPUTSERVICES - ECINPUT - ECACQUISITIONS - EXEMPTEXPENSES - EXEMPTINPUT - EXEMPTOUTPUT - GSTONIMPORTS - INPUT - INPUTTAXED - MOSSSALES - NONE - NONEOUTPUT - OUTPUT - PURCHASESINPUT - SALESOUTPUT - EXEMPTCAPITAL - EXEMPTEXPORT - CAPITALEXINPUT - GSTONCAPIMPORTS - GSTONCAPITALIMPORTS - REVERSECHARGES - PAYMENTS - INVOICE - CASH - ACCRUAL - FLATRATECASH - FLATRATEACCRUAL - ACCRUALS - TXCA - SRCAS - DSOUTPUT - BLINPUT2 - EPINPUT - IMINPUT2 - MEINPUT - IGDSINPUT2 - ESN33OUTPUT - OPINPUT - OSOUTPUT - TXN33INPUT - TXESSINPUT - TXREINPUT - TXPETINPUT - NRINPUT - ES33OUTPUT - ZERORATEDINPUT - ZERORATEDOUTPUT - DRCHARGESUPPLY - DRCHARGE - CAPINPUT - CAPIMPORTS - IMINPUT - INPUT2 - CIUINPUT - SRINPUT - OUTPUT2 - SROUTPUT - CAPOUTPUT - SROUTPUT2 - CIUOUTPUT - ZROUTPUT - ZREXPORT - ACC28PLUS - ACCUPTO28 - OTHEROUTPUT - SHOUTPUT - ZRINPUT - BADDEBT - OTHERINPUT - BADDEBTRELIEF - IGDSINPUT3 - SROVR - TOURISTREFUND - TXRCN33 - TXRCRE - TXRCESS - TXRCTS - CAPEXINPUT - UNDEFINED - CAPEXOUTPUT - ZEROEXPOUTPUT - GOODSIMPORT - NONEINPUT - NOTREPORTED - SROVRRS - SROVRLVG - SRLVG - IM - IMESS - IMN33 - IMRE - BADDEBTRECOVERY - USSALESTAX CanApplyToAssets: description: Boolean to describe if tax rate can be used for asset accounts i.e. true,false readOnly: true type: boolean CanApplyToEquity: description: Boolean to describe if tax rate can be used for equity accounts i.e true,false readOnly: true type: boolean CanApplyToExpenses: description: Boolean to describe if tax rate can be used for expense accounts i.e. true,false readOnly: true type: boolean CanApplyToLiabilities: description: Boolean to describe if tax rate can be used for liability accounts i.e. true,false readOnly: true type: boolean CanApplyToRevenue: description: Boolean to describe if tax rate can be used for revenue accounts i.e. true,false readOnly: true type: boolean DisplayTaxRate: description: Tax Rate (decimal to 4dp) e.g 12.5000 readOnly: true type: number format: double x-is-money: true EffectiveRate: description: Effective Tax Rate (decimal to 4dp) e.g 12.5000 readOnly: true type: number format: double x-is-money: true type: object TaxComponent: externalDocs: url: 'http://developer.xero.com/documentation/api/tax-rates/' properties: Name: description: Name of Tax Component type: string Rate: description: Tax Rate (up to 4dp) type: number format: double x-is-money: true IsCompound: description: Boolean to describe if Tax rate is compounded. type: boolean IsNonRecoverable: description: Boolean to describe if tax rate is non-recoverable. Non-recoverable rates are only applicable to Canadian organisations type: boolean type: object TrackingCategories: type: object x-isObjectArray: true properties: TrackingCategories: type: array items: $ref: '#/components/schemas/TrackingCategory' TrackingCategory: externalDocs: url: 'http://developer.xero.com/documentation/api/tracking-categories/' properties: TrackingCategoryID: description: The Xero identifier for a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9 type: string format: uuid TrackingOptionID: description: The Xero identifier for a tracking option e.g. dc54c220-0140-495a-b925-3246adc0075f type: string format: uuid Name: description: The name of the tracking category e.g. Department, Region (max length = 100) maxLength: 100 type: string Option: description: The option name of the tracking option e.g. East, West (max length = 100) maxLength: 100 type: string Status: description: The status of a tracking category type: string enum: - ACTIVE - ARCHIVED - DELETED Options: description: See Tracking Options type: array items: $ref: '#/components/schemas/TrackingOption' type: object TrackingOptions: type: object x-isObjectArray: true properties: Options: type: array items: $ref: '#/components/schemas/TrackingOption' TrackingOption: externalDocs: url: 'http://developer.xero.com/documentation/api/tracking-categories/' properties: TrackingOptionID: description: The Xero identifier for a tracking option e.g. ae777a87-5ef3-4fa0-a4f0-d10e1f13073a type: string format: uuid Name: description: The name of the tracking option e.g. Marketing, East (max length = 100) maxLength: 100 type: string Status: description: The status of a tracking option type: string enum: - ACTIVE - ARCHIVED - DELETED TrackingCategoryID: description: Filter by a tracking category e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9 type: string format: uuid type: object SalesTrackingCategory: externalDocs: url: 'http://developer.xero.com/documentation/api/tracking-categories/' properties: TrackingCategoryName: description: The default sales tracking category name for contacts type: string TrackingOptionName: description: The default purchase tracking category name for contacts type: string type: object Users: type: object x-isObjectArray: true properties: Users: type: array items: $ref: '#/components/schemas/User' User: externalDocs: url: 'http://developer.xero.com/documentation/api/users/' properties: UserID: description: Xero identifier type: string format: uuid EmailAddress: description: Email address of user type: string FirstName: description: First name of user type: string LastName: description: Last name of user type: string UpdatedDateUTC: description: Timestamp of last change to user type: string x-is-msdate-time: true example: "/Date(1573755038314)/" readOnly: true IsSubscriber: description: Boolean to indicate if user is the subscriber type: boolean OrganisationRole: description: User role that defines permissions in Xero and via API (READONLY, INVOICEONLY, STANDARD, FINANCIALADVISER, etc) type: string enum: - READONLY - INVOICEONLY - STANDARD - FINANCIALADVISER - MANAGEDCLIENT - CASHBOOKCLIENT - UNKNOWN type: object Error: externalDocs: url: 'https://developer.xero.com/documentation/api/http-response-codes' properties: ErrorNumber: description: Exception number type: integer Type: description: Exception type type: string Message: description: Exception message type: string Elements: description: Array of Elements of validation Errors type: array items: $ref: '#/components/schemas/Element' type: object Element: externalDocs: url: 'https://developer.xero.com/documentation/api/http-response-codes' properties: ValidationErrors: description: Array of Validation Error message type: array items: $ref: '#/components/schemas/ValidationError' BatchPaymentID: description: Unique ID for batch payment object with validation error type: string format: uuid BankTransactionID: type: string format: uuid CreditNoteID: type: string format: uuid ContactID: type: string format: uuid InvoiceID: type: string format: uuid ItemID: type: string format: uuid PurchaseOrderID: type: string format: uuid type: object ValidationError: externalDocs: url: 'https://developer.xero.com/documentation/api/http-response-codes' properties: Message: description: Validation error message type: string type: object