/home/desid573/olivercann.tk/xero-php-oauth2-master/docs/v2/accounting
Edit: /home/desid573/olivercann.tk/xero-php-oauth2-master/docs/v2/accounting/index.html (2065537B)
Xero Accounting API
xero-php-oauth2 Accounting SDK Docs
Accounting
createAccount
Creates a new chart of accounts
/Accounts
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$account = new XeroAPI\XeroPHP\Models\Accounting\Account;
$account->setCode('123456');
$account->setName('FooBar');
$account->setType(XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE);
$account->setDescription('Hello World');
try {
$result = $apiInstance->createAccount($xeroTenantId, $account);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createAccount: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
account *
Account
Account object in body of request
Required
createAccountAttachmentByFileName
Creates an attachment on a specific account
/Accounts/{AccountID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createAccountAttachmentByFileName($xeroTenantId, $accountID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createAccountAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createBankTransactionAttachmentByFileName
Creates an attachment for a specific bank transaction by filename
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createBankTransactionAttachmentByFileName($xeroTenantId, $bankTransactionID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBankTransactionAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createBankTransactionHistoryRecord
Creates a history record for a specific bank transactions
/BankTransactions/{BankTransactionID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createBankTransactionHistoryRecord($xeroTenantId, $bankTransactionID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBankTransactionHistoryRecord: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createBankTransactions
Creates one or more spent or received money transaction
/BankTransactions
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$bankAccount = new XeroAPI\XeroPHP\Models\Accounting\Account;
$bankAccount->setAccountID('00000000-0000-0000-0000-000000000000');
$bankTransaction = new XeroAPI\XeroPHP\Models\Accounting\BankTransaction;
$bankTransaction->setType(XeroAPI\XeroPHP\Models\Accounting\BankTransaction::TYPE_RECEIVE);
$bankTransaction->setContact($contact);
$bankTransaction->setLineItems($lineItems);
$bankTransaction->setBankAccount($bankAccount);
$bankTransactions = new XeroAPI\XeroPHP\Models\Accounting\BankTransactions;
$arr_bank_transactions = [];
array_push($arr_bank_transactions, $bankTransaction);
$bankTransactions->setBankTransactions($arr_bank_transactions);
try {
$result = $apiInstance->createBankTransactions($xeroTenantId, $bankTransactions, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBankTransactions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
bankTransactions *
BankTransactions
BankTransactions with an array of BankTransaction objects in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
createBankTransfer
Creates a bank transfer
/BankTransfers
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$fromBankAccount = new XeroAPI\XeroPHP\Models\Accounting\Account;
$fromBankAccount->setAccountID('00000000-0000-0000-0000-000000000000');
$toBankAccount = new XeroAPI\XeroPHP\Models\Accounting\Account;
$toBankAccount->setAccountID('00000000-0000-0000-0000-000000000000');
$bankTransfer = new XeroAPI\XeroPHP\Models\Accounting\BankTransfer;
$bankTransfer->setFromBankAccount($fromBankAccount);
$bankTransfer->setToBankAccount($toBankAccount);
$bankTransfer->setAmount(1.0);
$bankTransfers = new XeroAPI\XeroPHP\Models\Accounting\BankTransfers;
$arr_bank_transfers = [];
array_push($arr_bank_transfers, $bankTransfer);
$bankTransfers->setBankTransfers($arr_bank_transfers);
try {
$result = $apiInstance->createBankTransfer($xeroTenantId, $bankTransfers);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBankTransfer: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
bankTransfers *
BankTransfers
BankTransfers with array of BankTransfer objects in request body
Required
createBankTransferAttachmentByFileName
/BankTransfers/{BankTransferID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createBankTransferAttachmentByFileName($xeroTenantId, $bankTransferID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBankTransferAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createBankTransferHistoryRecord
Creates a history record for a specific bank transfer
/BankTransfers/{BankTransferID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createBankTransferHistoryRecord($xeroTenantId, $bankTransferID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBankTransferHistoryRecord: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createBatchPayment
Creates one or many batch payments for invoices
/BatchPayments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$currDate = new DateTime('2020-12-10');
$paymentAccount = new XeroAPI\XeroPHP\Models\Accounting\Account;
$paymentAccount->setAccountID('00000000-0000-0000-0000-000000000000');
$bankAccount = new XeroAPI\XeroPHP\Models\Accounting\Account;
$bankAccount->setAccountID('00000000-0000-0000-0000-000000000000');
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setInvoiceID('00000000-0000-0000-0000-000000000000');
$payment = new XeroAPI\XeroPHP\Models\Accounting\Payment;
$payment->setAccount($bankAccount);
$payment->setDate($currDate);
$payment->setAmount(1.0);
$payment->setInvoice($invoice);
$payments = [];
array_push($payments, $payment);
$batchPayment = new XeroAPI\XeroPHP\Models\Accounting\BatchPayment;
$batchPayment->setAccount($paymentAccount);
$batchPayment->setReference('hello foobar');
$batchPayment->setDate($currDate);
$batchPayment->setPayments($payments);
$batchPayments = new XeroAPI\XeroPHP\Models\Accounting\BatchPayments;
$arr_batch_payments = [];
array_push($arr_batch_payments, $batchPayment);
$batchPayments->setBatchPayments($arr_batch_payments);
try {
$result = $apiInstance->createBatchPayment($xeroTenantId, $batchPayments, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBatchPayment: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
batchPayments *
BatchPayments
BatchPayments with an array of Payments in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createBatchPaymentHistoryRecord
Creates a history record for a specific batch payment
/BatchPayments/{BatchPaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$batchPaymentID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createBatchPaymentHistoryRecord($xeroTenantId, $batchPaymentID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBatchPaymentHistoryRecord: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
BatchPaymentID*
UUID
(uuid)
Unique identifier for BatchPayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createBrandingThemePaymentServices
Creates a new custom payment service for a specific branding theme
/BrandingThemes/{BrandingThemeID}/PaymentServices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$brandingThemeID = "00000000-0000-0000-0000-000000000000";
$paymentService = new XeroAPI\XeroPHP\Models\Accounting\PaymentService;
$paymentService->setPaymentServiceID('00000000-0000-0000-0000-000000000000');
$paymentService->setPaymentServiceName('ACME Payments');
$paymentService->setPaymentServiceUrl('https://www.payupnow.com/');
$paymentService->setPayNowText('Pay Now');
try {
$result = $apiInstance->createBrandingThemePaymentServices($xeroTenantId, $brandingThemeID, $paymentService);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createBrandingThemePaymentServices: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
paymentservices
Grant read-write access to payment services
Parameters
Path parameters
Name
Description
BrandingThemeID*
UUID
(uuid)
Unique identifier for a Branding Theme
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
paymentService *
PaymentService
PaymentService object in body of request
Required
createContactHistory
Creates a new history record for a specific contact
/Contacts/{ContactID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$contactID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createContactHistory($xeroTenantId, $contactID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createContactHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.contacts
Grant read-write access to contacts and contact groups
Parameters
Path parameters
Name
Description
ContactID*
UUID
(uuid)
Unique identifier for a Contact
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createCreditNoteAllocation
Creates allocation for a specific credit note
/CreditNotes/{CreditNoteID}/Allocations
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$summarizeErrors = true;
$currDate = new DateTime('2020-12-10');
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setInvoiceID('00000000-0000-0000-0000-000000000000');
$allocation = new XeroAPI\XeroPHP\Models\Accounting\Allocation;
$allocation->setAmount(1.0);
$allocation->setDate($currDate);
$allocation->setInvoice($invoice);
$allocations = new XeroAPI\XeroPHP\Models\Accounting\Allocations;
$arr_allocations = [];
array_push($arr_allocations, $allocation);
$allocations->setAllocations($arr_allocations);
try {
$result = $apiInstance->createCreditNoteAllocation($xeroTenantId, $creditNoteID, $allocations, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createCreditNoteAllocation: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
allocations *
Allocations
Allocations with array of Allocation object in body of request.
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createCreditNoteAttachmentByFileName
Creates an attachment for a specific credit note
/CreditNotes/{CreditNoteID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$includeOnline = true;
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createCreditNoteAttachmentByFileName($xeroTenantId, $creditNoteID, $fileName, $body, $includeOnline);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createCreditNoteAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
Query parameters
Name
Description
IncludeOnline
Boolean
Allows an attachment to be seen by the end customer within their online invoice
createCreditNoteHistory
Retrieves history records of a specific credit note
/CreditNotes/{CreditNoteID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createCreditNoteHistory($xeroTenantId, $creditNoteID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createCreditNoteHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createCreditNotes
Creates a new credit note
/CreditNotes
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$currDate = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$creditNote = new XeroAPI\XeroPHP\Models\Accounting\CreditNote;
$creditNote->setType(XeroAPI\XeroPHP\Models\Accounting\CreditNote::TYPE_ACCPAYCREDIT);
$creditNote->setContact($contact);
$creditNote->setDate($currDate);
$creditNote->setLineItems($lineItems);
$creditNotes = new XeroAPI\XeroPHP\Models\Accounting\CreditNotes;
$arr_credit_notes = [];
array_push($arr_credit_notes, $creditNote);
$creditNotes->setCreditNotes($arr_credit_notes);
try {
$result = $apiInstance->createCreditNotes($xeroTenantId, $creditNotes, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createCreditNotes: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
creditNotes *
CreditNotes
Credit Notes with array of CreditNote object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
createCurrency
Create a new currency for a Xero organisation
/Currencies
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$currency = new XeroAPI\XeroPHP\Models\Accounting\Currency;
$currency->setCode(XeroAPI\XeroPHP\Models\Accounting\CurrencyCode::USD);
$currency->setDescription('United States Dollar');
try {
$result = $apiInstance->createCurrency($xeroTenantId, $currency);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createCurrency: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
currency *
Currency
Currency object in the body of request
Required
createEmployees
Creates new employees used in Xero payrun
/Employees
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$employee = new XeroAPI\XeroPHP\Models\Accounting\Employee;
$employee->setFirstName('Nick');
$employee->setLastName('Fury');
$employees = new XeroAPI\XeroPHP\Models\Accounting\Employees;
$arr_employees = [];
array_push($arr_employees, $employee);
$employees->setEmployees($arr_employees);
try {
$result = $apiInstance->createEmployees($xeroTenantId, $employees, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createEmployees: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
employees *
Employees
Employees with array of Employee object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createExpenseClaimHistory
Creates a history record for a specific expense claim
/ExpenseClaims/{ExpenseClaimID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$expenseClaimID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createExpenseClaimHistory($xeroTenantId, $expenseClaimID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createExpenseClaimHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
ExpenseClaimID*
UUID
(uuid)
Unique identifier for a ExpenseClaim
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createExpenseClaims
Creates expense claims
/ExpenseClaims
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$currDate = new DateTime('2020-12-10');
$user = new XeroAPI\XeroPHP\Models\Accounting\User;
$user->setUserID('00000000-0000-0000-0000-000000000000');
$receipt = new XeroAPI\XeroPHP\Models\Accounting\Receipt;
$receipt->setReceiptID('00000000-0000-0000-0000-000000000000');
$receipt->setDate($currDate);
$receipts = [];
array_push($receipts, $receipt);
$expenseClaim = new XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim;
$expenseClaim->setStatus(XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim::STATUS_SUBMITTED);
$expenseClaim->setUser($user);
$expenseClaim->setReceipts($receipts);
$expenseClaims = new XeroAPI\XeroPHP\Models\Accounting\ExpenseClaims;
$arr_expense_claims = [];
array_push($arr_expense_claims, $expenseClaim);
$expenseClaims->setExpenseClaims($arr_expense_claims);
try {
$result = $apiInstance->createExpenseClaims($xeroTenantId, $expenseClaims);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createExpenseClaims: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
expenseClaims *
ExpenseClaims
ExpenseClaims with array of ExpenseClaim object in body of request
Required
createInvoiceAttachmentByFileName
Creates an attachment for a specific invoice or purchase bill by filename
/Invoices/{InvoiceID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$includeOnline = true;
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createInvoiceAttachmentByFileName($xeroTenantId, $invoiceID, $fileName, $body, $includeOnline);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createInvoiceAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
Query parameters
Name
Description
IncludeOnline
Boolean
Allows an attachment to be seen by the end customer within their online invoice
createInvoiceHistory
Creates a history record for a specific invoice
/Invoices/{InvoiceID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createInvoiceHistory($xeroTenantId, $invoiceID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createInvoiceHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createInvoices
Creates one or more sales invoices or purchase bills
/Invoices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$dateValue = new DateTime('2020-10-10');
$dueDateValue = new DateTime('2020-10-28');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItemTracking = new XeroAPI\XeroPHP\Models\Accounting\LineItemTracking;
$lineItemTracking->setTrackingCategoryID('00000000-0000-0000-0000-000000000000');
$lineItemTracking->setTrackingOptionID('00000000-0000-0000-0000-000000000000');
$lineItemTrackings = [];
array_push($lineItemTrackings, $lineItemTracking);
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItem->setTracking(lineItemTrackings);
$lineItems = [];
array_push($lineItems, $lineItem);
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setType(XeroAPI\XeroPHP\Models\Accounting\Invoice::TYPE_ACCREC);
$invoice->setContact($contact);
$invoice->setDate($dateValue);
$invoice->setDueDate($dueDateValue);
$invoice->setLineItems($lineItems);
$invoice->setReference('Website Design');
$invoice->setStatus(XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_DRAFT);
$invoices = new XeroAPI\XeroPHP\Models\Accounting\Invoices;
$arr_invoices = [];
array_push($arr_invoices, $invoice);
$invoices->setInvoices($arr_invoices);
try {
$result = $apiInstance->createInvoices($xeroTenantId, $invoices, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createInvoices: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
invoices *
Invoices
Invoices with an array of invoice objects in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
createItemHistory
Creates a history record for a specific item
/Items/{ItemID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$itemID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createItemHistory($xeroTenantId, $itemID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createItemHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
ItemID*
UUID
(uuid)
Unique identifier for an Item
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createItems
Creates one or more items
/Items
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$purchaseDetails = new XeroAPI\XeroPHP\Models\Accounting\Purchase;
$purchaseDetails->setCoGSAccountCode('500');
$item = new XeroAPI\XeroPHP\Models\Accounting\Item;
$item->setCode('abcXYZ123');
$item->setName('HelloWorld');
$item->setDescription('Foobar');
$item->setInventoryAssetAccountCode('140');
$item->setPurchaseDetails($purchaseDetails);
$items = new XeroAPI\XeroPHP\Models\Accounting\Items;
$arr_items = [];
array_push($arr_items, $item);
$items->setItems($arr_items);
try {
$result = $apiInstance->createItems($xeroTenantId, $items, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createItems: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
items *
Items
Items with an array of Item objects in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
createLinkedTransaction
Creates linked transactions (billable expenses)
/LinkedTransactions
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$linkedTransaction = new XeroAPI\XeroPHP\Models\Accounting\LinkedTransaction;
$linkedTransaction->setSourceTransactionID('00000000-0000-0000-0000-000000000000');
$linkedTransaction->setSourceLineItemID('00000000-0000-0000-0000-000000000000');
try {
$result = $apiInstance->createLinkedTransaction($xeroTenantId, $linkedTransaction);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createLinkedTransaction: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
linkedTransaction *
LinkedTransaction
LinkedTransaction object in body of request
Required
createManualJournalAttachmentByFileName
Creates a specific attachment for a specific manual journal by file name
/ManualJournals/{ManualJournalID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createManualJournalAttachmentByFileName($xeroTenantId, $manualJournalID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createManualJournalAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createManualJournalHistoryRecord
Creates a history record for a specific manual journal
/ManualJournals/{ManualJournalID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createManualJournalHistoryRecord($xeroTenantId, $manualJournalID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createManualJournalHistoryRecord: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createManualJournals
Creates one or more manual journals
/ManualJournals
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$dateValue = new DateTime('2019-10-10');
$manualJournalLines = [];
$credit = new XeroAPI\XeroPHP\Models\Accounting\ManualJournalLine;
$credit->setLineAmount(100.0);
$credit->setAccountCode('400');
$credit->setDescription('Hello there');
array_push($manualJournalLines, $credit);
$debit = new XeroAPI\XeroPHP\Models\Accounting\ManualJournalLine;
$debit->setLineAmount(-100.0);
$debit->setAccountCode('120');
$debit->setDescription('Hello there');
array_push($manualJournalLines, $debit);
$manualJournal = new XeroAPI\XeroPHP\Models\Accounting\ManualJournal;
$manualJournal->setNarration('Foobar');
$manualJournal->setDate($dateValue);
$manualJournal->setJournalLines($manualJournalLines);
$manualJournals = new XeroAPI\XeroPHP\Models\Accounting\ManualJournals;
$arr_manual_journals = [];
array_push($arr_manual_journals, $manualJournal);
$manualJournals->setManualJournals($arr_manual_journals);
try {
$result = $apiInstance->createManualJournals($xeroTenantId, $manualJournals, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createManualJournals: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
manualJournals *
ManualJournals
ManualJournals array with ManualJournal object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createOverpaymentAllocations
Creates a single allocation for a specific overpayment
/Overpayments/{OverpaymentID}/Allocations
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$overpaymentID = "00000000-0000-0000-0000-000000000000";
$summarizeErrors = true;
$currDate = new DateTime('2020-12-10');
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setInvoiceID('00000000-0000-0000-0000-000000000000');
$allocation = new XeroAPI\XeroPHP\Models\Accounting\Allocation;
$allocation->setAmount(1.0);
$allocation->setDate($currDate);
$allocation->setInvoice($invoice);
$allocations = new XeroAPI\XeroPHP\Models\Accounting\Allocations;
$arr_allocations = [];
array_push($arr_allocations, $allocation);
$allocations->setAllocations($arr_allocations);
try {
$result = $apiInstance->createOverpaymentAllocations($xeroTenantId, $overpaymentID, $allocations, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createOverpaymentAllocations: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
OverpaymentID*
UUID
(uuid)
Unique identifier for a Overpayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
allocations *
Allocations
Allocations array with Allocation object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createOverpaymentHistory
Creates a history record for a specific overpayment
/Overpayments/{OverpaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$overpaymentID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createOverpaymentHistory($xeroTenantId, $overpaymentID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createOverpaymentHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
OverpaymentID*
UUID
(uuid)
Unique identifier for a Overpayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createPayment
Creates a single payment for invoice or credit notes
/Payments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$dateValue = new DateTime('2020-10-10');
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setInvoiceID('00000000-0000-0000-0000-000000000000');
$account = new XeroAPI\XeroPHP\Models\Accounting\Account;
$account->setAccountID('00000000-0000-0000-0000-000000000000');
$payment = new XeroAPI\XeroPHP\Models\Accounting\Payment;
$payment->setInvoice($invoice);
$payment->setAccount($account);
$payment->setAmount(1.0);
$payment->setDate($dateValue);
$payments = new XeroAPI\XeroPHP\Models\Accounting\Payments;
$arr_payments = [];
array_push($arr_payments, $payment);
$payments->setPayments($arr_payments);
try {
$result = $apiInstance->createPayment($xeroTenantId, $payment);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPayment: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
payment *
Payment
Request body with a single Payment object
Required
createPaymentHistory
Creates a history record for a specific payment
/Payments/{PaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$paymentID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createPaymentHistory($xeroTenantId, $paymentID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPaymentHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
PaymentID*
UUID
(uuid)
Unique identifier for a Payment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createPaymentService
Creates a payment service
/PaymentServices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$paymentService = new XeroAPI\XeroPHP\Models\Accounting\PaymentService;
$paymentService->setPaymentServiceName('ACME Payments');
$paymentService->setPaymentServiceUrl('https://www.payupnow.com/');
$paymentService->setPayNowText('Pay Now');
$paymentServices = new XeroAPI\XeroPHP\Models\Accounting\PaymentServices;
$arr_paymentServices = [];
array_push($arr_paymentServices, $paymentService);
$paymentServices->setPaymentServices($arr_paymentServices);
try {
$result = $apiInstance->createPaymentService($xeroTenantId, $paymentServices);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPaymentService: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
paymentservices
Grant read-write access to payment services
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
paymentServices *
PaymentServices
PaymentServices array with PaymentService object in body of request
Required
createPayments
Creates multiple payments for invoices or credit notes
/Payments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$dateValue = new DateTime('2020-10-10');
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setInvoiceID('00000000-0000-0000-0000-000000000000');
$account = new XeroAPI\XeroPHP\Models\Accounting\Account;
$account->setAccountID('00000000-0000-0000-0000-000000000000');
$payment = new XeroAPI\XeroPHP\Models\Accounting\Payment;
$payment->setInvoice($invoice);
$payment->setAccount($account);
$payment->setAmount(1.0);
$payment->setDate($dateValue);
$payments = new XeroAPI\XeroPHP\Models\Accounting\Payments;
$arr_payments = [];
array_push($arr_payments, $payment);
$payments->setPayments($arr_payments);
try {
$result = $apiInstance->createPayments($xeroTenantId, $payments, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPayments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
payments *
Payments
Payments array with Payment object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createPrepaymentAllocations
Allows you to create an Allocation for prepayments
/Prepayments/{PrepaymentID}/Allocations
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$prepaymentID = "00000000-0000-0000-0000-000000000000";
$summarizeErrors = true;
$currDate = new DateTime('2020-12-10');
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setInvoiceID('00000000-0000-0000-0000-000000000000');
$allocation = new XeroAPI\XeroPHP\Models\Accounting\Allocation;
$allocation->setInvoice($invoice);
$allocation->setAmount(1.0);
$allocation->setDate($currDate);
$allocations = new XeroAPI\XeroPHP\Models\Accounting\Allocations;
$arr_allocations = [];
array_push($arr_allocations, $allocation);
$allocations->setAllocations($arr_allocations);
try {
$result = $apiInstance->createPrepaymentAllocations($xeroTenantId, $prepaymentID, $allocations, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPrepaymentAllocations: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
PrepaymentID*
UUID
(uuid)
Unique identifier for a PrePayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
allocations *
Allocations
Allocations with an array of Allocation object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createPrepaymentHistory
Creates a history record for a specific prepayment
/Prepayments/{PrepaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$prepaymentID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createPrepaymentHistory($xeroTenantId, $prepaymentID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPrepaymentHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
PrepaymentID*
UUID
(uuid)
Unique identifier for a PrePayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createPurchaseOrderAttachmentByFileName
Creates attachment for a specific purchase order
/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createPurchaseOrderAttachmentByFileName($xeroTenantId, $purchaseOrderID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPurchaseOrderAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createPurchaseOrderHistory
Creates a history record for a specific purchase orders
/PurchaseOrders/{PurchaseOrderID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createPurchaseOrderHistory($xeroTenantId, $purchaseOrderID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPurchaseOrderHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createPurchaseOrders
Creates one or more purchase orders
/PurchaseOrders
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$dateValue = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$purchaseOrder = new XeroAPI\XeroPHP\Models\Accounting\PurchaseOrder;
$purchaseOrder->setContact($contact);
$purchaseOrder->setLineItems($lineItems);
$purchaseOrder->setDate($dateValue);
$purchaseOrders = new XeroAPI\XeroPHP\Models\Accounting\PurchaseOrders;
$arr_purchase_orders = [];
array_push($arr_purchase_orders, $purchaseOrder);
$purchaseOrders->setPurchaseOrders($arr_purchase_orders);
try {
$result = $apiInstance->createPurchaseOrders($xeroTenantId, $purchaseOrders, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createPurchaseOrders: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
purchaseOrders *
PurchaseOrders
PurchaseOrders with an array of PurchaseOrder object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createQuoteAttachmentByFileName
Creates attachment for a specific quote
/Quotes/{QuoteID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createQuoteAttachmentByFileName($xeroTenantId, $quoteID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createQuoteAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createQuoteHistory
Creates a history record for a specific quote
/Quotes/{QuoteID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createQuoteHistory($xeroTenantId, $quoteID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createQuoteHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createQuotes
Create one or more quotes
/Quotes
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$dateValue = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$quote = new XeroAPI\XeroPHP\Models\Accounting\Quote;
$quote->setContact($contact);
$quote->setLineItems($lineItems);
$quote->setDate($dateValue);
$quotes = new XeroAPI\XeroPHP\Models\Accounting\Quotes;
$arr_quotes = [];
array_push($arr_quotes, $quote);
$quotes->setQuotes($arr_quotes);
try {
$result = $apiInstance->createQuotes($xeroTenantId, $quotes, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createQuotes: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
quotes *
Quotes
Quotes with an array of Quote object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
createReceipt
Creates draft expense claim receipts for any user
/Receipts
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$unitdp = 4;
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$user = new XeroAPI\XeroPHP\Models\Accounting\User;
$user->setUserID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$receipt = new XeroAPI\XeroPHP\Models\Accounting\Receipt;
$receipt->setContact($contact);
$receipt->setUser($user);
$receipt->setLineItems($lineItems);
$receipt->setLineAmountTypes(XeroAPI\XeroPHP\Models\Accounting\LineAmountTypes::INCLUSIVE);
$receipt->setStatus(XeroAPI\XeroPHP\Models\Accounting\Receipt::STATUS_DRAFT);
$receipts = new XeroAPI\XeroPHP\Models\Accounting\Receipts;
$arr_receipts = [];
array_push($arr_receipts, $receipt);
$receipts->setReceipts($arr_receipts);
try {
$result = $apiInstance->createReceipt($xeroTenantId, $receipts, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createReceipt: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
receipts *
Receipts
Receipts with an array of Receipt object in body of request
Required
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
createReceiptAttachmentByFileName
Creates an attachment on a specific expense claim receipts by file name
/Receipts/{ReceiptID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createReceiptAttachmentByFileName($xeroTenantId, $receiptID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createReceiptAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createReceiptHistory
Creates a history record for a specific receipt
/Receipts/{ReceiptID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createReceiptHistory($xeroTenantId, $receiptID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createReceiptHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createRepeatingInvoiceAttachmentByFileName
Creates an attachment from a specific repeating invoices by file name
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->createRepeatingInvoiceAttachmentByFileName($xeroTenantId, $repeatingInvoiceID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createRepeatingInvoiceAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
createRepeatingInvoiceHistory
Creates a history record for a specific repeating invoice
/RepeatingInvoices/{RepeatingInvoiceID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
$historyRecord = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecord;
$historyRecord->setDetails('Hello World');
$historyRecords = new XeroAPI\XeroPHP\Models\Accounting\HistoryRecords;
$arr_history_records = [];
array_push($arr_history_records, $historyRecord);
$historyRecords->setHistoryRecords($arr_history_records);
try {
$result = $apiInstance->createRepeatingInvoiceHistory($xeroTenantId, $repeatingInvoiceID, $historyRecords);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createRepeatingInvoiceHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
historyRecords *
HistoryRecords
HistoryRecords containing an array of HistoryRecord objects in body of request
Required
createTaxRates
Creates one or more tax rates
/TaxRates
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$taxComponent = new XeroAPI\XeroPHP\Models\Accounting\TaxComponent;
$taxComponent->setName('State Tax');
$taxComponent->setRate(2.25);
$taxComponent = [];
array_push($taxComponents, $taxComponent);
$taxRate = new XeroAPI\XeroPHP\Models\Accounting\TaxRate;
$taxRate->setName('CA State Tax');
$taxRate->setTaxComponents($taxComponents);
$taxRates = new XeroAPI\XeroPHP\Models\Accounting\TaxRates;
$arr_tax_rates = [];
array_push($arr_tax_rates, $taxRate);
$taxRates->setTaxRates($arr_tax_rates);
try {
$result = $apiInstance->createTaxRates($xeroTenantId, $taxRates);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createTaxRates: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
taxRates *
TaxRates
TaxRates array with TaxRate object in body of request
Required
createTrackingCategory
Create tracking categories
/TrackingCategories
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$trackingCategory = new XeroAPI\XeroPHP\Models\Accounting\TrackingCategory;
$trackingCategory->setName('Foobar');
try {
$result = $apiInstance->createTrackingCategory($xeroTenantId, $trackingCategory);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createTrackingCategory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
trackingCategory *
TrackingCategory
TrackingCategory object in body of request
Required
createTrackingOptions
Creates options for a specific tracking category
/TrackingCategories/{TrackingCategoryID}/Options
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$trackingCategoryID = "00000000-0000-0000-0000-000000000000";
$trackingOption = new XeroAPI\XeroPHP\Models\Accounting\TrackingOption;
$trackingOption->setName('Foobar');
try {
$result = $apiInstance->createTrackingOptions($xeroTenantId, $trackingCategoryID, $trackingOption);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->createTrackingOptions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
TrackingCategoryID*
UUID
(uuid)
Unique identifier for a TrackingCategory
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
trackingOption *
TrackingOption
TrackingOption object in body of request
Required
deleteAccount
Deletes a chart of accounts
/Accounts/{AccountID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->deleteAccount($xeroTenantId, $accountID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->deleteAccount: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
deleteItem
Deletes a specific item
/Items/{ItemID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$itemID = "00000000-0000-0000-0000-000000000000";
try {
$apiInstance->deleteItem($xeroTenantId, $itemID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->deleteItem: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
ItemID*
UUID
(uuid)
Unique identifier for an Item
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
deleteLinkedTransaction
Deletes a specific linked transactions (billable expenses)
/LinkedTransactions/{LinkedTransactionID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$linkedTransactionID = "00000000-0000-0000-0000-000000000000";
try {
$apiInstance->deleteLinkedTransaction($xeroTenantId, $linkedTransactionID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->deleteLinkedTransaction: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
LinkedTransactionID*
UUID
(uuid)
Unique identifier for a LinkedTransaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
deletePayment
Updates a specific payment for invoices and credit notes
/Payments/{PaymentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$paymentID = "00000000-0000-0000-0000-000000000000";
$paymentDelete = new XeroAPI\XeroPHP\Models\Accounting\PaymentDelete;
$paymentDelete->setStatus('DELETED');
try {
$result = $apiInstance->deletePayment($xeroTenantId, $paymentID, $paymentDelete);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->deletePayment: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
PaymentID*
UUID
(uuid)
Unique identifier for a Payment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
paymentDelete *
deleteTrackingCategory
Deletes a specific tracking category
/TrackingCategories/{TrackingCategoryID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$trackingCategoryID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->deleteTrackingCategory($xeroTenantId, $trackingCategoryID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->deleteTrackingCategory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
TrackingCategoryID*
UUID
(uuid)
Unique identifier for a TrackingCategory
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
deleteTrackingOptions
Deletes a specific option for a specific tracking category
/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$trackingCategoryID = "00000000-0000-0000-0000-000000000000";
$trackingOptionID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->deleteTrackingOptions($xeroTenantId, $trackingCategoryID, $trackingOptionID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->deleteTrackingOptions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
TrackingCategoryID*
UUID
(uuid)
Unique identifier for a TrackingCategory
Required
TrackingOptionID*
UUID
(uuid)
Unique identifier for a Tracking Option
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
emailInvoice
Sends a copy of a specific invoice to related contact via email
/Invoices/{InvoiceID}/Email
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$requestEmpty = new XeroAPI\XeroPHP\Models\Accounting\RequestEmpty;
try {
$apiInstance->emailInvoice($xeroTenantId, $invoiceID, $requestEmpty);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->emailInvoice: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
requestEmpty *
getAccount
Retrieves a single chart of accounts by using a unique account Id
/Accounts/{AccountID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getAccount($xeroTenantId, $accountID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getAccount: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getAccountAttachmentByFileName
Retrieves an attachment for a specific account by filename
/Accounts/{AccountID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getAccountAttachmentByFileName($xeroTenantId, $accountID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getAccountAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getAccountAttachmentById
Retrieves a specific attachment from a specific account using a unique attachment Id
/Accounts/{AccountID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getAccountAttachmentById($xeroTenantId, $accountID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getAccountAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getAccountAttachments
Retrieves attachments for a specific accounts by using a unique account Id
/Accounts/{AccountID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getAccountAttachments($xeroTenantId, $accountID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getAccountAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getAccounts
Retrieves the full chart of accounts
/Accounts
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Account::STATUS_ACTIVE . '"";
$order = "Name ASC";
try {
$result = $apiInstance->getAccounts($xeroTenantId, $ifModifiedSince, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getAccounts: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
getBankTransaction
Retrieves a single spent or received money transaction by using a unique bank transaction Id
/BankTransactions/{BankTransactionID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
try {
$result = $apiInstance->getBankTransaction($xeroTenantId, $bankTransactionID, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransaction: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getBankTransactionAttachmentByFileName
Retrieves a specific attachment from a specific bank transaction by filename
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getBankTransactionAttachmentByFileName($xeroTenantId, $bankTransactionID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransactionAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getBankTransactionAttachmentById
Retrieves specific attachments from a specific BankTransaction using a unique attachment Id
/BankTransactions/{BankTransactionID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getBankTransactionAttachmentById($xeroTenantId, $bankTransactionID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransactionAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getBankTransactionAttachments
Retrieves any attachments from a specific bank transactions
/BankTransactions/{BankTransactionID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBankTransactionAttachments($xeroTenantId, $bankTransactionID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransactionAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBankTransactions
Retrieves any spent or received money transactions
/BankTransactions
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . XeroAPI\XeroPHP\Models\Accounting\BankTransaction::STATUS_AUTHORISED . '"";
$order = "Type ASC";
$page = 1;
$unitdp = 4;
try {
$result = $apiInstance->getBankTransactions($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransactions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
page
Integer
Up to 100 bank transactions will be returned in a single API call with line items details
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getBankTransactionsHistory
Retrieves history from a specific bank transaction using a unique bank transaction Id
/BankTransactions/{BankTransactionID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBankTransactionsHistory($xeroTenantId, $bankTransactionID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransactionsHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBankTransfer
Retrieves specific bank transfers by using a unique bank transfer Id
/BankTransfers/{BankTransferID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBankTransfer($xeroTenantId, $bankTransferID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransfer: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBankTransferAttachmentByFileName
Retrieves a specific attachment on a specific bank transfer by file name
/BankTransfers/{BankTransferID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getBankTransferAttachmentByFileName($xeroTenantId, $bankTransferID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransferAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getBankTransferAttachmentById
Retrieves a specific attachment from a specific bank transfer using a unique attachment ID
/BankTransfers/{BankTransferID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getBankTransferAttachmentById($xeroTenantId, $bankTransferID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransferAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getBankTransferAttachments
Retrieves attachments from a specific bank transfer
/BankTransfers/{BankTransferID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBankTransferAttachments($xeroTenantId, $bankTransferID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransferAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBankTransferHistory
Retrieves history from a specific bank transfer using a unique bank transfer Id
/BankTransfers/{BankTransferID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBankTransferHistory($xeroTenantId, $bankTransferID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransferHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBankTransfers
Retrieves all bank transfers
/BankTransfers
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "HasAttachments==true";
$order = "Amount ASC";
try {
$result = $apiInstance->getBankTransfers($xeroTenantId, $ifModifiedSince, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBankTransfers: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
getBatchPaymentHistory
Retrieves history from a specific batch payment
/BatchPayments/{BatchPaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$batchPaymentID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBatchPaymentHistory($xeroTenantId, $batchPaymentID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBatchPaymentHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
BatchPaymentID*
UUID
(uuid)
Unique identifier for BatchPayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBatchPayments
Retrieves either one or many batch payments for invoices
/BatchPayments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . XeroAPI\XeroPHP\Models\Accounting\BatchPayment::STATUS_AUTHORISED . '"";
$order = "Date ASC";
try {
$result = $apiInstance->getBatchPayments($xeroTenantId, $ifModifiedSince, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBatchPayments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
getBrandingTheme
Retrieves a specific branding theme using a unique branding theme Id
/BrandingThemes/{BrandingThemeID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$brandingThemeID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBrandingTheme($xeroTenantId, $brandingThemeID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBrandingTheme: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
BrandingThemeID*
UUID
(uuid)
Unique identifier for a Branding Theme
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBrandingThemePaymentServices
Retrieves the payment services for a specific branding theme
/BrandingThemes/{BrandingThemeID}/PaymentServices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$brandingThemeID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getBrandingThemePaymentServices($xeroTenantId, $brandingThemeID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBrandingThemePaymentServices: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
paymentservices
Grant read-write access to payment services
Parameters
Path parameters
Name
Description
BrandingThemeID*
UUID
(uuid)
Unique identifier for a Branding Theme
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBrandingThemes
Retrieves all the branding themes
/BrandingThemes
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
try {
$result = $apiInstance->getBrandingThemes($xeroTenantId);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBrandingThemes: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getBudget
Retrieves a specific budget, which includes budget lines
/Budgets/{BudgetID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$budgetID = "00000000-0000-0000-0000-000000000000";
$dateTo = new DateTime("2019-10-31");
$dateFrom = new DateTime("2019-10-31");
try {
$result = $apiInstance->getBudget($xeroTenantId, $budgetID, $dateTo, $dateFrom);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBudget: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
Parameters
Path parameters
Name
Description
BudgetID*
UUID
(uuid)
Unique identifier for Budgets
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
DateTo
date
(date)
Filter by start date
DateFrom
date
(date)
Filter by end date
getBudgets
Retrieve a list of budgets
/Budgets
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$iDs = array("00000000-0000-0000-0000-000000000000")
$dateTo = new DateTime("2019-10-31");
$dateFrom = new DateTime("2019-10-31");
try {
$result = $apiInstance->getBudgets($xeroTenantId, $iDs, $dateTo, $dateFrom);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getBudgets: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
IDs
array[UUID]
(uuid)
Filter by BudgetID. Allows you to retrieve a specific individual budget.
DateTo
date
(date)
Filter by start date
DateFrom
date
(date)
Filter by end date
getContactHistory
Retrieves history records for a specific contact
/Contacts/{ContactID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$contactID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getContactHistory($xeroTenantId, $contactID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getContactHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.contacts
Grant read-write access to contacts and contact groups
accounting.contacts.read
Grant read-only access to contacts and contact groups
Parameters
Path parameters
Name
Description
ContactID*
UUID
(uuid)
Unique identifier for a Contact
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getCreditNote
Retrieves a specific credit note using a unique credit note Id
/CreditNotes/{CreditNoteID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
try {
$result = $apiInstance->getCreditNote($xeroTenantId, $creditNoteID, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCreditNote: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getCreditNoteAsPdf
Retrieves credit notes as PDF files
/CreditNotes/{CreditNoteID}/pdf
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getCreditNoteAsPdf($xeroTenantId, $creditNoteID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCreditNoteAsPdf: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getCreditNoteAttachmentByFileName
Retrieves a specific attachment on a specific credit note by file name
/CreditNotes/{CreditNoteID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getCreditNoteAttachmentByFileName($xeroTenantId, $creditNoteID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCreditNoteAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getCreditNoteAttachmentById
Retrieves a specific attachment from a specific credit note using a unique attachment Id
/CreditNotes/{CreditNoteID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getCreditNoteAttachmentById($xeroTenantId, $creditNoteID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCreditNoteAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getCreditNoteAttachments
Retrieves attachments for a specific credit notes
/CreditNotes/{CreditNoteID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getCreditNoteAttachments($xeroTenantId, $creditNoteID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCreditNoteAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getCreditNoteHistory
Retrieves history records of a specific credit note
/CreditNotes/{CreditNoteID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getCreditNoteHistory($xeroTenantId, $creditNoteID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCreditNoteHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getCreditNotes
Retrieves any credit notes
/CreditNotes
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\CreditNote::STATUS_DRAFT . '"";
$order = "CreditNoteNumber ASC";
$page = 1;
$unitdp = 4;
try {
$result = $apiInstance->getCreditNotes($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCreditNotes: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
page
Integer
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
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getCurrencies
Retrieves currencies for your Xero organisation
/Currencies
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$where = "Code=="' . \XeroAPI\XeroPHP\Models\Accounting\CurrencyCode::USD . '"";
$order = "Code ASC";
try {
$result = $apiInstance->getCurrencies($xeroTenantId, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getCurrencies: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
getEmployee
Retrieves a specific employee used in Xero payrun using a unique employee Id
/Employees/{EmployeeID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$employeeID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getEmployee($xeroTenantId, $employeeID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getEmployee: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
EmployeeID*
UUID
(uuid)
Unique identifier for a Employee
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getEmployees
Retrieves employees used in Xero payrun
/Employees
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Employee::STATUS_ACTIVE . '"";
$order = "LastName ASC";
try {
$result = $apiInstance->getEmployees($xeroTenantId, $ifModifiedSince, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getEmployees: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
getExpenseClaim
Retrieves a specific expense claim using a unique expense claim Id
/ExpenseClaims/{ExpenseClaimID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$expenseClaimID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getExpenseClaim($xeroTenantId, $expenseClaimID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getExpenseClaim: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
ExpenseClaimID*
UUID
(uuid)
Unique identifier for a ExpenseClaim
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getExpenseClaimHistory
Retrieves history records of a specific expense claim
/ExpenseClaims/{ExpenseClaimID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$expenseClaimID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getExpenseClaimHistory($xeroTenantId, $expenseClaimID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getExpenseClaimHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
ExpenseClaimID*
UUID
(uuid)
Unique identifier for a ExpenseClaim
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getExpenseClaims
Retrieves expense claims
/ExpenseClaims
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim::STATUS_SUBMITTED . '"";
$order = "Status ASC";
try {
$result = $apiInstance->getExpenseClaims($xeroTenantId, $ifModifiedSince, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getExpenseClaims: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
getInvoice
Retrieves a specific sales invoice or purchase bill using a unique invoice Id
/Invoices/{InvoiceID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
try {
$result = $apiInstance->getInvoice($xeroTenantId, $invoiceID, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoice: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getInvoiceAsPdf
Retrieves invoices or purchase bills as PDF files
/Invoices/{InvoiceID}/pdf
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getInvoiceAsPdf($xeroTenantId, $invoiceID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoiceAsPdf: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getInvoiceAttachmentByFileName
Retrieves an attachment from a specific invoice or purchase bill by filename
/Invoices/{InvoiceID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getInvoiceAttachmentByFileName($xeroTenantId, $invoiceID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoiceAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getInvoiceAttachmentById
Retrieves a specific attachment from a specific invoices or purchase bills by using a unique attachment Id
/Invoices/{InvoiceID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getInvoiceAttachmentById($xeroTenantId, $invoiceID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoiceAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getInvoiceAttachments
Retrieves attachments for a specific invoice or purchase bill
/Invoices/{InvoiceID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getInvoiceAttachments($xeroTenantId, $invoiceID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoiceAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getInvoiceHistory
Retrieves history records for a specific invoice
/Invoices/{InvoiceID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getInvoiceHistory($xeroTenantId, $invoiceID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoiceHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getInvoiceReminders
Retrieves invoice reminder settings
/InvoiceReminders/Settings
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
try {
$result = $apiInstance->getInvoiceReminders($xeroTenantId);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoiceReminders: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getInvoices
Retrieves sales invoices or purchase bills
/Invoices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_DRAFT . '"";
$order = "InvoiceNumber ASC";
$iDs = array("00000000-0000-0000-0000-000000000000")
$invoiceNumbers = array("INV-001", "INV-002")
$contactIDs = array("00000000-0000-0000-0000-000000000000")
$statuses = array("DRAFT", "SUBMITTED")
$page = 1;
$includeArchived = true;
$createdByMyApp = false;
$unitdp = 4;
$summaryOnly = true;
try {
$result = $apiInstance->getInvoices($xeroTenantId, $ifModifiedSince, $where, $order, $iDs, $invoiceNumbers, $contactIDs, $statuses, $page, $includeArchived, $createdByMyApp, $unitdp, $summaryOnly);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getInvoices: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
IDs
array[UUID]
(uuid)
Filter by a comma-separated list of InvoicesIDs.
InvoiceNumbers
array[String]
Filter by a comma-separated list of InvoiceNumbers.
ContactIDs
Statuses
array[String]
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.
page
Integer
e.g. page=1 – Up to 100 invoices will be returned in a single API call with line items shown for each invoice
includeArchived
Boolean
e.g. includeArchived=true - Invoices with a status of ARCHIVED will be included in the response
createdByMyApp
Boolean
When set to true you'll only retrieve Invoices created by your app
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
summaryOnly
Boolean
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.
getItem
Retrieves a specific item using a unique item Id
/Items/{ItemID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$itemID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
try {
$result = $apiInstance->getItem($xeroTenantId, $itemID, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getItem: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
ItemID*
UUID
(uuid)
Unique identifier for an Item
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getItemHistory
Retrieves history for a specific item
/Items/{ItemID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$itemID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getItemHistory($xeroTenantId, $itemID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getItemHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
ItemID*
UUID
(uuid)
Unique identifier for an Item
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
/Items
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "IsSold==true";
$order = "Code ASC";
$unitdp = 4;
try {
$result = $apiInstance->getItems($xeroTenantId, $ifModifiedSince, $where, $order, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getItems: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getJournal
Retrieves a specific journal using a unique journal Id.
/Journals/{JournalID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$journalID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getJournal($xeroTenantId, $journalID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getJournal: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.journals.read
Grant read-only access to journals
Parameters
Path parameters
Name
Description
JournalID*
UUID
(uuid)
Unique identifier for a Journal
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getJournals
Retrieves journals
/Journals
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$offset = 10;
$paymentsOnly = true;
try {
$result = $apiInstance->getJournals($xeroTenantId, $ifModifiedSince, $offset, $paymentsOnly);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getJournals: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.journals.read
Grant read-only access to journals
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
offset
Integer
Offset by a specified journal number. e.g. journals with a JournalNumber greater than the offset will be returned
paymentsOnly
Boolean
Filter to retrieve journals on a cash basis. Journals are returned on an accrual basis by default.
getLinkedTransaction
Retrieves a specific linked transaction (billable expenses) using a unique linked transaction Id
/LinkedTransactions/{LinkedTransactionID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$linkedTransactionID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getLinkedTransaction($xeroTenantId, $linkedTransactionID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getLinkedTransaction: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
LinkedTransactionID*
UUID
(uuid)
Unique identifier for a LinkedTransaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getLinkedTransactions
Retrieves linked transactions (billable expenses)
/LinkedTransactions
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$page = 1;
$linkedTransactionID = "00000000-0000-0000-0000-000000000000";
$sourceTransactionID = "00000000-0000-0000-0000-000000000000";
$contactID = "00000000-0000-0000-0000-000000000000";
$status = "APPROVED";
$targetTransactionID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getLinkedTransactions($xeroTenantId, $page, $linkedTransactionID, $sourceTransactionID, $contactID, $status, $targetTransactionID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getLinkedTransactions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
page
Integer
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.
LinkedTransactionID
UUID
(uuid)
The Xero identifier for an Linked Transaction
SourceTransactionID
UUID
(uuid)
Filter by the SourceTransactionID. Get the linked transactions created from a particular ACCPAY invoice
ContactID
Status
String
Filter by the combination of ContactID and Status. Get the linked transactions associated to a customer and with a status
TargetTransactionID
UUID
(uuid)
Filter by the TargetTransactionID. Get all the linked transactions allocated to a particular ACCREC invoice
getManualJournal
Retrieves a specific manual journal
/ManualJournals/{ManualJournalID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getManualJournal($xeroTenantId, $manualJournalID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getManualJournal: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getManualJournalAttachmentByFileName
Retrieves a specific attachment from a specific manual journal by file name
/ManualJournals/{ManualJournalID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getManualJournalAttachmentByFileName($xeroTenantId, $manualJournalID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getManualJournalAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getManualJournalAttachmentById
Allows you to retrieve a specific attachment from a specific manual journal using a unique attachment Id
/ManualJournals/{ManualJournalID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getManualJournalAttachmentById($xeroTenantId, $manualJournalID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getManualJournalAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getManualJournalAttachments
Retrieves attachment for a specific manual journal
/ManualJournals/{ManualJournalID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getManualJournalAttachments($xeroTenantId, $manualJournalID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getManualJournalAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getManualJournals
Retrieves manual journals
/ManualJournals
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\ManualJournal::STATUS_DRAFT . '"";
$order = "Date ASC";
$page = 1;
try {
$result = $apiInstance->getManualJournals($xeroTenantId, $ifModifiedSince, $where, $order, $page);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getManualJournals: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
page
Integer
e.g. page=1 – Up to 100 manual journals will be returned in a single API call with line items shown for each overpayment
getManualJournalsHistory
Retrieves history for a specific manual journal
/ManualJournals/{ManualJournalID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getManualJournalsHistory($xeroTenantId, $manualJournalID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getManualJournalsHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getOnlineInvoice
Retrieves a URL to an online invoice
/Invoices/{InvoiceID}/OnlineInvoice
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getOnlineInvoice($xeroTenantId, $invoiceID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getOnlineInvoice: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getOrganisationActions
Retrieves a list of the key actions your app has permission to perform in the connected Xero organisation.
/Organisation/Actions
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
try {
$result = $apiInstance->getOrganisationActions($xeroTenantId);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getOrganisationActions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getOrganisationCISSettings
Retrieves the CIS settings for the Xero organistaion.
/Organisation/{OrganisationID}/CISSettings
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$organisationID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getOrganisationCISSettings($xeroTenantId, $organisationID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getOrganisationCISSettings: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
OrganisationID*
UUID
(uuid)
The unique Xero identifier for an organisation
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getOrganisations
Retrieves Xero organisation details
/Organisation
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
try {
$result = $apiInstance->getOrganisations($xeroTenantId);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getOrganisations: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getOverpayment
Retrieves a specific overpayment using a unique overpayment Id
/Overpayments/{OverpaymentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$overpaymentID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getOverpayment($xeroTenantId, $overpaymentID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getOverpayment: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
OverpaymentID*
UUID
(uuid)
Unique identifier for a Overpayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getOverpaymentHistory
Retrieves history records of a specific overpayment
/Overpayments/{OverpaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$overpaymentID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getOverpaymentHistory($xeroTenantId, $overpaymentID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getOverpaymentHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
OverpaymentID*
UUID
(uuid)
Unique identifier for a Overpayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getOverpayments
Retrieves overpayments
/Overpayments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Overpayment::STATUS_AUTHORISED . '"";
$order = "Status ASC";
$page = 1;
$unitdp = 4;
try {
$result = $apiInstance->getOverpayments($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getOverpayments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
page
Integer
e.g. page=1 – Up to 100 overpayments will be returned in a single API call with line items shown for each overpayment
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getPayment
Retrieves a specific payment for invoices and credit notes using a unique payment Id
/Payments/{PaymentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$paymentID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPayment($xeroTenantId, $paymentID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPayment: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PaymentID*
UUID
(uuid)
Unique identifier for a Payment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPaymentHistory
Retrieves history records of a specific payment
/Payments/{PaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$paymentID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPaymentHistory($xeroTenantId, $paymentID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPaymentHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PaymentID*
UUID
(uuid)
Unique identifier for a Payment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPaymentServices
Retrieves payment services
/PaymentServices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
try {
$result = $apiInstance->getPaymentServices($xeroTenantId);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPaymentServices: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
paymentservices
Grant read-write access to payment services
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPayments
Retrieves payments for invoices and credit notes
/Payments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Payment::STATUS_AUTHORISED . '"";
$order = "Amount ASC";
$page = 1;
try {
$result = $apiInstance->getPayments($xeroTenantId, $ifModifiedSince, $where, $order, $page);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPayments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
page
Integer
Up to 100 payments will be returned in a single API call
getPrepayment
Allows you to retrieve a specified prepayments
/Prepayments/{PrepaymentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$prepaymentID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPrepayment($xeroTenantId, $prepaymentID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPrepayment: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PrepaymentID*
UUID
(uuid)
Unique identifier for a PrePayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPrepaymentHistory
Retrieves history record for a specific prepayment
/Prepayments/{PrepaymentID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$prepaymentID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPrepaymentHistory($xeroTenantId, $prepaymentID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPrepaymentHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PrepaymentID*
UUID
(uuid)
Unique identifier for a PrePayment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPrepayments
Retrieves prepayments
/Prepayments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Prepayment::STATUS_AUTHORISED . '"";
$order = "Reference ASC";
$page = 1;
$unitdp = 4;
try {
$result = $apiInstance->getPrepayments($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPrepayments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
page
Integer
e.g. page=1 – Up to 100 prepayments will be returned in a single API call with line items shown for each overpayment
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getPurchaseOrder
Retrieves a specific purchase order using a unique purchase order Id
/PurchaseOrders/{PurchaseOrderID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPurchaseOrder($xeroTenantId, $purchaseOrderID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrder: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPurchaseOrderAsPdf
Retrieves specific purchase order as PDF files using a unique purchase order Id
/PurchaseOrders/{PurchaseOrderID}/pdf
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPurchaseOrderAsPdf($xeroTenantId, $purchaseOrderID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrderAsPdf: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPurchaseOrderAttachmentById
Retrieves specific attachment for a specific purchase order using a unique attachment Id
/PurchaseOrders/{PurchaseOrderID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getPurchaseOrderAttachmentById($xeroTenantId, $purchaseOrderID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrderAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getPurchaseOrderAttachments
Retrieves attachments for a specific purchase order
/PurchaseOrders/{PurchaseOrderID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPurchaseOrderAttachments($xeroTenantId, $purchaseOrderID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrderAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPurchaseOrderByNumber
Retrieves a specific purchase order using purchase order number
/PurchaseOrders/{PurchaseOrderNumber}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderNumber = "PO1234";
try {
$result = $apiInstance->getPurchaseOrderByNumber($xeroTenantId, $purchaseOrderNumber);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrderByNumber: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PurchaseOrderNumber*
String
Unique identifier for a PurchaseOrder
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPurchaseOrderHistory
Retrieves history for a specific purchase order
/PurchaseOrders/{PurchaseOrderID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getPurchaseOrderHistory($xeroTenantId, $purchaseOrderID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrderHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getPurchaseOrders
Retrieves purchase orders
/PurchaseOrders
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$status = "SUBMITTED";
$dateFrom = "2019-12-01";
$dateTo = "2019-12-31";
$order = "PurchaseOrderNumber ASC";
$page = 1;
try {
$result = $apiInstance->getPurchaseOrders($xeroTenantId, $ifModifiedSince, $status, $dateFrom, $dateTo, $order, $page);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrders: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
Status
String
Filter by purchase order status
DateFrom
String
Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31
DateTo
String
Filter by purchase order date (e.g. GET https://.../PurchaseOrders?DateFrom=2015-12-01&DateTo=2015-12-31
order
String
Order by an any element
page
Integer
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.
getPurchaseOrder≠AttachmentByFileName
Retrieves a specific attachment for a specific purchase order by filename
/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getPurchaseOrder≠AttachmentByFileName($xeroTenantId, $purchaseOrderID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getPurchaseOrder≠AttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getQuote
Retrieves a specific quote using a unique quote Id
/Quotes/{QuoteID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getQuote($xeroTenantId, $quoteID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getQuote: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getQuoteAsPdf
Retrieves a specific quote as a PDF file using a unique quote Id
/Quotes/{QuoteID}/pdf
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getQuoteAsPdf($xeroTenantId, $quoteID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getQuoteAsPdf: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getQuoteAttachmentByFileName
Retrieves a specific attachment from a specific quote by filename
/Quotes/{QuoteID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getQuoteAttachmentByFileName($xeroTenantId, $quoteID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getQuoteAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getQuoteAttachmentById
Retrieves a specific attachment from a specific quote using a unique attachment Id
/Quotes/{QuoteID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getQuoteAttachmentById($xeroTenantId, $quoteID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getQuoteAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getQuoteAttachments
Retrieves attachments for a specific quote
/Quotes/{QuoteID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getQuoteAttachments($xeroTenantId, $quoteID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getQuoteAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getQuoteHistory
Retrieves history records of a specific quote
/Quotes/{QuoteID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getQuoteHistory($xeroTenantId, $quoteID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getQuoteHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getQuotes
Retrieves sales quotes
/Quotes
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$dateFrom = new DateTime("2019-10-31");
$dateTo = new DateTime("2019-10-31");
$expiryDateFrom = new DateTime("2019-10-31");
$expiryDateTo = new DateTime("2019-10-31");
$contactID = "00000000-0000-0000-0000-000000000000";
$status = "DRAFT";
$page = 1;
$order = "Status ASC";
$quoteNumber = "QU-0001";
try {
$result = $apiInstance->getQuotes($xeroTenantId, $ifModifiedSince, $dateFrom, $dateTo, $expiryDateFrom, $expiryDateTo, $contactID, $status, $page, $order, $quoteNumber);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getQuotes: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
DateFrom
date
(date)
Filter for quotes after a particular date
DateTo
date
(date)
Filter for quotes before a particular date
ExpiryDateFrom
date
(date)
Filter for quotes expiring after a particular date
ExpiryDateTo
date
(date)
Filter for quotes before a particular date
ContactID
Status
String
Filter for quotes of a particular Status
page
Integer
e.g. page=1 – Up to 100 Quotes will be returned in a single API call with line items shown for each quote
order
String
Order by an any element
QuoteNumber
String
Filter by quote number (e.g. GET https://.../Quotes?QuoteNumber=QU-0001)
getReceipt
Retrieves a specific draft expense claim receipt by using a unique receipt Id
/Receipts/{ReceiptID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
try {
$result = $apiInstance->getReceipt($xeroTenantId, $receiptID, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReceipt: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getReceiptAttachmentByFileName
Retrieves a specific attachment from a specific expense claim receipts by file name
/Receipts/{ReceiptID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getReceiptAttachmentByFileName($xeroTenantId, $receiptID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReceiptAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getReceiptAttachmentById
Retrieves a specific attachments from a specific expense claim receipts by using a unique attachment Id
/Receipts/{ReceiptID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getReceiptAttachmentById($xeroTenantId, $receiptID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReceiptAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getReceiptAttachments
Retrieves attachments for a specific expense claim receipt
/Receipts/{ReceiptID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getReceiptAttachments($xeroTenantId, $receiptID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReceiptAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getReceiptHistory
Retrieves a history record for a specific receipt
/Receipts/{ReceiptID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getReceiptHistory($xeroTenantId, $receiptID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReceiptHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getReceipts
Retrieves draft expense claim receipts for any user
/Receipts
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\Receipt::STATUS_DRAFT . '"";
$order = "ReceiptNumber ASC";
$unitdp = 4;
try {
$result = $apiInstance->getReceipts($xeroTenantId, $ifModifiedSince, $where, $order, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReceipts: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
getRepeatingInvoice
Retrieves a specific repeating invoice by using a unique repeating invoice Id
/RepeatingInvoices/{RepeatingInvoiceID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getRepeatingInvoice($xeroTenantId, $repeatingInvoiceID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getRepeatingInvoice: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getRepeatingInvoiceAttachmentByFileName
Retrieves a specific attachment from a specific repeating invoices by file name
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$contentType = "image/jpg";
try {
$result = $apiInstance->getRepeatingInvoiceAttachmentByFileName($xeroTenantId, $repeatingInvoiceID, $fileName, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getRepeatingInvoiceAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getRepeatingInvoiceAttachmentById
Retrieves a specific attachment from a specific repeating invoice
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{AttachmentID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
$attachmentID = "00000000-0000-0000-0000-000000000000";
$contentType = "image/jpg";
try {
$result = $apiInstance->getRepeatingInvoiceAttachmentById($xeroTenantId, $repeatingInvoiceID, $attachmentID, $contentType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getRepeatingInvoiceAttachmentById: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
AttachmentID*
UUID
(uuid)
Unique identifier for Attachment object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
contentType*
String
The mime type of the attachment file you are retrieving i.e image/jpg, application/pdf
Required
getRepeatingInvoiceAttachments
Retrieves attachments from a specific repeating invoice
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getRepeatingInvoiceAttachments($xeroTenantId, $repeatingInvoiceID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getRepeatingInvoiceAttachments: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
accounting.attachments.read
Grant read-only access to attachments
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getRepeatingInvoiceHistory
Retrieves history record for a specific repeating invoice
/RepeatingInvoices/{RepeatingInvoiceID}/History
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getRepeatingInvoiceHistory($xeroTenantId, $repeatingInvoiceID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getRepeatingInvoiceHistory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getRepeatingInvoices
Retrieves repeating invoices
/RepeatingInvoices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\RepeatingInvoice::STATUS_DRAFT . '"";
$order = "Total ASC";
try {
$result = $apiInstance->getRepeatingInvoices($xeroTenantId, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getRepeatingInvoices: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
accounting.transactions.read
Grant read-only access to invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
getReportBalanceSheet
Retrieves report for balancesheet
/Reports/BalanceSheet
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$date = new DateTime("2019-11-01");
$periods = 3;
$timeframe = "MONTH";
$trackingOptionID1 = "00000000-0000-0000-0000-000000000000";
$trackingOptionID2 = "00000000-0000-0000-0000-000000000000";
$standardLayout = true;
$paymentsOnly = false;
try {
$result = $apiInstance->getReportBalanceSheet($xeroTenantId, $date, $periods, $timeframe, $trackingOptionID1, $trackingOptionID2, $standardLayout, $paymentsOnly);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportBalanceSheet: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
date
date
(date)
The date of the Balance Sheet report
periods
Integer
The number of periods for the Balance Sheet report
timeframe
String
The period size to compare to (MONTH, QUARTER, YEAR)
trackingOptionID1
String
The tracking option 1 for the Balance Sheet report
trackingOptionID2
String
The tracking option 2 for the Balance Sheet report
standardLayout
Boolean
The standard layout boolean for the Balance Sheet report
paymentsOnly
Boolean
return a cash basis for the Balance Sheet report
getReportBankSummary
Retrieves report for bank summary
/Reports/BankSummary
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$fromDate = new DateTime("2019-10-31");
$toDate = new DateTime("2019-10-31");
try {
$result = $apiInstance->getReportBankSummary($xeroTenantId, $fromDate, $toDate);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportBankSummary: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
fromDate
date
(date)
filter by the from date of the report e.g. 2021-02-01
toDate
date
(date)
filter by the to date of the report e.g. 2021-02-28
getReportBudgetSummary
Retrieves report for budget summary
/Reports/BudgetSummary
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$date = new DateTime("2019-03-31");
$periods = 2;
$timeframe = 3;
try {
$result = $apiInstance->getReportBudgetSummary($xeroTenantId, $date, $periods, $timeframe);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportBudgetSummary: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
date
date
(date)
The date for the Bank Summary report e.g. 2018-03-31
periods
Integer
The number of periods to compare (integer between 1 and 12)
timeframe
Integer
The period size to compare to (1=month, 3=quarter, 12=year)
getReportExecutiveSummary
Retrieves report for executive summary
/Reports/ExecutiveSummary
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$date = new DateTime("2019-03-31");
try {
$result = $apiInstance->getReportExecutiveSummary($xeroTenantId, $date);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportExecutiveSummary: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
date
date
(date)
The date for the Bank Summary report e.g. 2018-03-31
getReportFromId
Retrieves a specific report using a unique ReportID
/Reports/{ReportID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$reportID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getReportFromId($xeroTenantId, $reportID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportFromId: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Path parameters
Name
Description
ReportID*
String
Unique identifier for a Report
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getReportProfitAndLoss
Retrieves report for profit and loss
/Reports/ProfitAndLoss
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$fromDate = new DateTime("2019-10-31");
$toDate = new DateTime("2019-10-31");
$periods = 3;
$timeframe = "MONTH";
$trackingCategoryID = "00000000-0000-0000-0000-000000000000";
$trackingCategoryID2 = "00000000-0000-0000-0000-000000000000";
$trackingOptionID = "00000000-0000-0000-0000-000000000000";
$trackingOptionID2 = "00000000-0000-0000-0000-000000000000";
$standardLayout = true;
$paymentsOnly = false;
try {
$result = $apiInstance->getReportProfitAndLoss($xeroTenantId, $fromDate, $toDate, $periods, $timeframe, $trackingCategoryID, $trackingCategoryID2, $trackingOptionID, $trackingOptionID2, $standardLayout, $paymentsOnly);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportProfitAndLoss: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
fromDate
date
(date)
filter by the from date of the report e.g. 2021-02-01
toDate
date
(date)
filter by the to date of the report e.g. 2021-02-28
periods
Integer
The number of periods to compare (integer between 1 and 12)
timeframe
String
The period size to compare to (MONTH, QUARTER, YEAR)
trackingCategoryID
String
The trackingCategory 1 for the ProfitAndLoss report
trackingCategoryID2
String
The trackingCategory 2 for the ProfitAndLoss report
trackingOptionID
String
The tracking option 1 for the ProfitAndLoss report
trackingOptionID2
String
The tracking option 2 for the ProfitAndLoss report
standardLayout
Boolean
Return the standard layout for the ProfitAndLoss report
paymentsOnly
Boolean
Return cash only basis for the ProfitAndLoss report
getReportTenNinetyNine
Retrieve reports for 1099
/Reports/TenNinetyNine
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$reportYear = "2019";
try {
$result = $apiInstance->getReportTenNinetyNine($xeroTenantId, $reportYear);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportTenNinetyNine: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
accounting.reports.tenninetynine.read
Grant read-only access to 1099 reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
reportYear
String
The year of the 1099 report
getReportTrialBalance
Retrieves report for trial balance
/Reports/TrialBalance
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$date = new DateTime("2019-10-31");
$paymentsOnly = true;
try {
$result = $apiInstance->getReportTrialBalance($xeroTenantId, $date, $paymentsOnly);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportTrialBalance: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
date
date
(date)
The date for the Trial Balance report e.g. 2018-03-31
paymentsOnly
Boolean
Return cash only basis for the Trial Balance report
getReportsList
Retrieves a list of the organistaions unique reports that require a uuid to fetch
/Reports
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
try {
$result = $apiInstance->getReportsList($xeroTenantId);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getReportsList: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.reports.read
Grant read-only access to accounting reports
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getTaxRates
Retrieves tax rates
/TaxRates
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\TaxRate::STATUS_ACTIVE . '"";
$order = "Name ASC";
$taxType = "INPUT";
try {
$result = $apiInstance->getTaxRates($xeroTenantId, $where, $order, $taxType);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getTaxRates: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
TaxType
String
Filter by tax type
getTrackingCategories
Retrieves tracking categories and options
/TrackingCategories
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$where = "Status=="' . \XeroAPI\XeroPHP\Models\Accounting\TrackingCategory::STATUS_ACTIVE . '"";
$order = "Name ASC";
$includeArchived = true;
try {
$result = $apiInstance->getTrackingCategories($xeroTenantId, $where, $order, $includeArchived);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getTrackingCategories: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
includeArchived
Boolean
e.g. includeArchived=true - Categories and options with a status of ARCHIVED will be included in the response
getTrackingCategory
Retrieves specific tracking categories and options using a unique tracking category Id
/TrackingCategories/{TrackingCategoryID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$trackingCategoryID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getTrackingCategory($xeroTenantId, $trackingCategoryID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getTrackingCategory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
TrackingCategoryID*
UUID
(uuid)
Unique identifier for a TrackingCategory
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
getUser
Retrieves a specific user
/Users/{UserID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$userID = "00000000-0000-0000-0000-000000000000";
try {
$result = $apiInstance->getUser($xeroTenantId, $userID);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getUser: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Path parameters
Name
Description
UserID*
UUID
(uuid)
Unique identifier for a User
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
/Users
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$ifModifiedSince = new DateTime("2020-02-06T12:17:43.202-08:00");
$where = "IsSubscriber==true";
$order = "LastName ASC";
try {
$result = $apiInstance->getUsers($xeroTenantId, $ifModifiedSince, $where, $order);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->getUsers: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
accounting.settings.read
Grant read-only access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
If-Modified-Since
Date
(date-time)
Only records created or modified since this timestamp will be returned
Query parameters
Name
Description
where
String
Filter by an any element
order
String
Order by an any element
postSetup
Sets the chart of accounts, the conversion date and conversion balances
/Setup
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$account = new XeroAPI\XeroPHP\Models\Accounting\Account;
$account->setCode('123');
$account->setName('Business supplies');
$account->setType(XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE);
$accounts = [];
array_push($accounts, $account);
$conversionDate = new XeroAPI\XeroPHP\Models\Accounting\ConversionDate;
$conversionDate->setMonth(10);
$conversionDate->setYear(2020);
$conversionBalances = [];
$setup = new XeroAPI\XeroPHP\Models\Accounting\Setup;
$setup->setAccounts($accounts);
$setup->setConversionDate($conversionDate);
$setup->setConversionBalances($conversionBalances);
try {
$result = $apiInstance->postSetup($xeroTenantId, $setup);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->postSetup: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
setup *
Setup
Object including an accounts array, a conversion balances array and a conversion date object in body of request
Required
updateAccount
Updates a chart of accounts
/Accounts/{AccountID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
$account = new XeroAPI\XeroPHP\Models\Accounting\Account;
$account->setCode('123456');
$account->setName('BarFoo');
$account->setType(XeroAPI\XeroPHP\Models\Accounting\AccountType::EXPENSE);
$account->setDescription('Hello World');
$account->setTaxType('NONE');
$accounts = new XeroAPI\XeroPHP\Models\Accounting\Accounts;
$arr_accounts = [];
array_push($arr_accounts, $account);
$accounts->setAccounts($arr_accounts);
try {
$result = $apiInstance->updateAccount($xeroTenantId, $accountID, $accounts);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateAccount: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
accounts *
Accounts
Request of type Accounts array with one Account
Required
updateAccountAttachmentByFileName
Updates attachment on a specific account by filename
/Accounts/{AccountID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$accountID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateAccountAttachmentByFileName($xeroTenantId, $accountID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateAccountAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
AccountID*
UUID
(uuid)
Unique identifier for Account object
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateBankTransaction
Updates a single spent or received money transaction
/BankTransactions/{BankTransactionID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$bankAccount = new XeroAPI\XeroPHP\Models\Accounting\Account;
$bankAccount->setAccountID('00000000-0000-0000-0000-000000000000');
$bankTransaction = new XeroAPI\XeroPHP\Models\Accounting\BankTransaction;
$bankTransaction->setReference('You just updated');
$bankTransaction->setType(XeroAPI\XeroPHP\Models\Accounting\BankTransaction::TYPE_RECEIVE);
$bankTransaction->setContact($contact);
$bankTransaction->setLineItems($lineItems);
$bankTransaction->setBankAccount($bankAccount);
$bankTransactions = new XeroAPI\XeroPHP\Models\Accounting\BankTransactions;
$arr_bank_transactions = [];
array_push($arr_bank_transactions, $bankTransaction);
$bankTransactions->setBankTransactions($arr_bank_transactions);
try {
$result = $apiInstance->updateBankTransaction($xeroTenantId, $bankTransactionID, $bankTransactions, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateBankTransaction: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
bankTransactions *
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateBankTransactionAttachmentByFileName
Updates a specific attachment from a specific bank transaction by filename
/BankTransactions/{BankTransactionID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransactionID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateBankTransactionAttachmentByFileName($xeroTenantId, $bankTransactionID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateBankTransactionAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
BankTransactionID*
UUID
(uuid)
Xero generated unique identifier for a bank transaction
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateBankTransferAttachmentByFileName
/BankTransfers/{BankTransferID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$bankTransferID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateBankTransferAttachmentByFileName($xeroTenantId, $bankTransferID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateBankTransferAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
BankTransferID*
UUID
(uuid)
Xero generated unique identifier for a bank transfer
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateCreditNote
Updates a specific credit note
/CreditNotes/{CreditNoteID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
$currDate = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$creditNote = new XeroAPI\XeroPHP\Models\Accounting\CreditNote;
$creditNote->setType(XeroAPI\XeroPHP\Models\Accounting\CreditNote::TYPE_ACCPAYCREDIT);
$creditNote->setStatus(XeroAPI\XeroPHP\Models\Accounting\CreditNote::STATUS_AUTHORISED);
$creditNote->setReference('My ref.');
$creditNote->setContact($contact);
$creditNote->setDate($currDate);
$creditNote->setLineItems($lineItems);
$creditNotes = new XeroAPI\XeroPHP\Models\Accounting\CreditNotes;
$arr_credit_notes = [];
array_push($arr_credit_notes, $creditNote);
$creditNotes->setCreditNotes($arr_credit_notes);
try {
$result = $apiInstance->updateCreditNote($xeroTenantId, $creditNoteID, $creditNotes, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateCreditNote: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
creditNotes *
CreditNotes
an array of Credit Notes containing credit note details to update
Required
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateCreditNoteAttachmentByFileName
Updates attachments on a specific credit note by file name
/CreditNotes/{CreditNoteID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$creditNoteID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateCreditNoteAttachmentByFileName($xeroTenantId, $creditNoteID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateCreditNoteAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
CreditNoteID*
UUID
(uuid)
Unique identifier for a Credit Note
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateExpenseClaim
Updates a specific expense claims
/ExpenseClaims/{ExpenseClaimID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$expenseClaimID = "00000000-0000-0000-0000-000000000000";
$currDate = new DateTime('2020-12-10');
$user = new XeroAPI\XeroPHP\Models\Accounting\User;
$user->setUserID('00000000-0000-0000-0000-000000000000');
$receipt = new XeroAPI\XeroPHP\Models\Accounting\Receipt;
$receipt->setReceiptID('00000000-0000-0000-0000-000000000000');
$receipt->setDate($currDate);
$receipts = [];
array_push($receipts, $receipt);
$expenseClaim = new XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim;
$expenseClaim->setStatus(XeroAPI\XeroPHP\Models\Accounting\ExpenseClaim::STATUS_SUBMITTED);
$expenseClaim->setUser($user);
$expenseClaim->setReceipts($receipts);
$expenseClaims = new XeroAPI\XeroPHP\Models\Accounting\ExpenseClaims;
$arr_expense_claims = [];
array_push($arr_expense_claims, $expenseClaim);
$expenseClaims->setExpenseClaims($arr_expense_claims);
try {
$result = $apiInstance->updateExpenseClaim($xeroTenantId, $expenseClaimID, $expenseClaims);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateExpenseClaim: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
ExpenseClaimID*
UUID
(uuid)
Unique identifier for a ExpenseClaim
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
expenseClaims *
updateInvoice
Updates a specific sales invoices or purchase bills
/Invoices/{InvoiceID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setReference('I am Iron man');
$invoices = new XeroAPI\XeroPHP\Models\Accounting\Invoices;
$arr_invoices = [];
array_push($arr_invoices, $invoice);
$invoices->setInvoices($arr_invoices);
try {
$result = $apiInstance->updateInvoice($xeroTenantId, $invoiceID, $invoices, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateInvoice: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
invoices *
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateInvoiceAttachmentByFileName
Updates an attachment from a specific invoices or purchase bill by filename
/Invoices/{InvoiceID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$invoiceID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateInvoiceAttachmentByFileName($xeroTenantId, $invoiceID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateInvoiceAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
InvoiceID*
UUID
(uuid)
Unique identifier for an Invoice
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateItem
Updates a specific item
/Items/{ItemID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$itemID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
$item = new XeroAPI\XeroPHP\Models\Accounting\Item;
$item->setCode('ItemCode123');
$item->setDescription('Goodbye');
$items = new XeroAPI\XeroPHP\Models\Accounting\Items;
$arr_items = [];
array_push($arr_items, $item);
$items->setItems($arr_items);
try {
$result = $apiInstance->updateItem($xeroTenantId, $itemID, $items, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateItem: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
ItemID*
UUID
(uuid)
Unique identifier for an Item
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateLinkedTransaction
Updates a specific linked transactions (billable expenses)
/LinkedTransactions/{LinkedTransactionID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$linkedTransactionID = "00000000-0000-0000-0000-000000000000";
$linkedTransaction = new XeroAPI\XeroPHP\Models\Accounting\LinkedTransaction;
$linkedTransaction->setSourceLineItemID('00000000-0000-0000-0000-000000000000');
$linkedTransaction->setContactID('00000000-0000-0000-0000-000000000000');
$linkedTransactions = new XeroAPI\XeroPHP\Models\Accounting\LinkedTransactions;
$arr_linked_transactions = [];
array_push($arr_linked_transactions, $linkedTransaction);
$linkedTransactions->setLinkedTransactions($arr_linked_transactions);
try {
$result = $apiInstance->updateLinkedTransaction($xeroTenantId, $linkedTransactionID, $linkedTransactions);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateLinkedTransaction: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
LinkedTransactionID*
UUID
(uuid)
Unique identifier for a LinkedTransaction
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
linkedTransactions *
updateManualJournal
Updates a specific manual journal
/ManualJournals/{ManualJournalID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
$dateValue = new DateTime('2020-10-10');
$manualJournalLines = [];
$credit = new XeroAPI\XeroPHP\Models\Accounting\ManualJournalLine;
$credit->setLineAmount(100.0);
$credit->setAccountCode('400');
$credit->setDescription('Hello there');
array_push($manualJournalLines, $credit);
$debit = new XeroAPI\XeroPHP\Models\Accounting\ManualJournalLine;
$debit->setLineAmount(-100.0);
$debit->setAccountCode('120');
$debit->setDescription('Hello there');
array_push($manualJournalLines, $debit);
$manualJournal = new XeroAPI\XeroPHP\Models\Accounting\ManualJournal;
$manualJournal->setNarration('Foobar');
$manualJournal->setDate($dateValue);
$manualJournal->setJournalLines($manualJournalLines);
$manualJournals = new XeroAPI\XeroPHP\Models\Accounting\ManualJournals;
$arr_manual_journals = [];
array_push($arr_manual_journals, $manualJournal);
$manualJournals->setManualJournals($arr_manual_journals);
try {
$result = $apiInstance->updateManualJournal($xeroTenantId, $manualJournalID, $manualJournals);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateManualJournal: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
manualJournals *
updateManualJournalAttachmentByFileName
Updates a specific attachment from a specific manual journal by file name
/ManualJournals/{ManualJournalID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$manualJournalID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateManualJournalAttachmentByFileName($xeroTenantId, $manualJournalID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateManualJournalAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
ManualJournalID*
UUID
(uuid)
Unique identifier for a ManualJournal
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateOrCreateBankTransactions
Updates or creates one or more spent or received money transaction
/BankTransactions
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$bankAccount = new XeroAPI\XeroPHP\Models\Accounting\Account;
$bankAccount->setAccountID('00000000-0000-0000-0000-000000000000');
$bankTransaction = new XeroAPI\XeroPHP\Models\Accounting\BankTransaction;
$bankTransaction->setType(XeroAPI\XeroPHP\Models\Accounting\BankTransaction::TYPE_RECEIVE);
$bankTransaction->setContact($contact);
$bankTransaction->setLineItems($lineItems);
$bankTransaction->setBankAccount($bankAccount);
$bankTransactions = new XeroAPI\XeroPHP\Models\Accounting\BankTransactions;
$arr_bank_transactions = [];
array_push($arr_bank_transactions, $bankTransaction);
$bankTransactions->setBankTransactions($arr_bank_transactions);
try {
$result = $apiInstance->updateOrCreateBankTransactions($xeroTenantId, $bankTransactions, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreateBankTransactions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
bankTransactions *
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateOrCreateCreditNotes
Updates or creates one or more credit notes
/CreditNotes
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$currDate = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$creditNote = new XeroAPI\XeroPHP\Models\Accounting\CreditNote;
$creditNote->setType(XeroAPI\XeroPHP\Models\Accounting\CreditNote::TYPE_ACCPAYCREDIT);
$creditNote->setContact($contact);
$creditNote->setDate($currDate);
$creditNote->setLineItems($lineItems);
$creditNotes = new XeroAPI\XeroPHP\Models\Accounting\CreditNotes;
$arr_credit_notes = [];
array_push($arr_credit_notes, $creditNote);
$creditNotes->setCreditNotes($arr_credit_notes);
try {
$result = $apiInstance->updateOrCreateCreditNotes($xeroTenantId, $creditNotes, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreateCreditNotes: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
creditNotes *
CreditNotes
an array of Credit Notes with a single CreditNote object.
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateOrCreateEmployees
Creates a single new employees used in Xero payrun
/Employees
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$employee = new XeroAPI\XeroPHP\Models\Accounting\Employee;
$employee->setFirstName('Nick');
$employee->setLastName('Fury');
$employees = new XeroAPI\XeroPHP\Models\Accounting\Employees;
$arr_employees = [];
array_push($arr_employees, $employee);
$employees->setEmployees($arr_employees);
try {
$result = $apiInstance->updateOrCreateEmployees($xeroTenantId, $employees, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreateEmployees: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
employees *
Employees
Employees with array of Employee object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
updateOrCreateInvoices
Updates or creates one or more sales invoices or purchase bills
/Invoices
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$dateValue = new DateTime('2020-10-10');
$dueDateValue = new DateTime('2020-10-28');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$invoice = new XeroAPI\XeroPHP\Models\Accounting\Invoice;
$invoice->setType(XeroAPI\XeroPHP\Models\Accounting\Invoice::TYPE_ACCREC);
$invoice->setContact($contact);
$invoice->setDate($dateValue);
$invoice->setDate($dueDateValue);
$invoice->setLineItems($lineItems);
$invoice->setReference('Website Design');
$invoice->setStatus(XeroAPI\XeroPHP\Models\Accounting\Invoice::STATUS_DRAFT);
$invoices = new XeroAPI\XeroPHP\Models\Accounting\Invoices;
$arr_invoices = [];
array_push($arr_invoices, $invoice);
$invoices->setInvoices($arr_invoices);
try {
$result = $apiInstance->updateOrCreateInvoices($xeroTenantId, $invoices, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreateInvoices: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
invoices *
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateOrCreateItems
Updates or creates one or more items
/Items
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$unitdp = 4;
$item = new XeroAPI\XeroPHP\Models\Accounting\Item;
$item->setCode('abcXYZ123');
$item->setName('HelloWorld');
$item->setDescription('Foobar');
$items = new XeroAPI\XeroPHP\Models\Accounting\Items;
$arr_items = [];
array_push($arr_items, $item);
$items->setItems($arr_items);
try {
$result = $apiInstance->updateOrCreateItems($xeroTenantId, $items, $summarizeErrors, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreateItems: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateOrCreateManualJournals
Updates or creates a single manual journal
/ManualJournals
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$dateValue = new DateTime('2020-10-10');
$manualJournalLines = [];
$credit = new XeroAPI\XeroPHP\Models\Accounting\ManualJournalLine;
$credit->setLineAmount(100.0);
$credit->setAccountCode('400');
$credit->setDescription('Hello there');
array_push($manualJournalLines, $credit);
$debit = new XeroAPI\XeroPHP\Models\Accounting\ManualJournalLine;
$debit->setLineAmount(-100.0);
$debit->setAccountCode('120');
$debit->setDescription('Hello there');
array_push($manualJournalLines, $debit);
$manualJournal = new XeroAPI\XeroPHP\Models\Accounting\ManualJournal;
$manualJournal->setNarration('Foobar');
$manualJournal->setDate($dateValue);
$manualJournal->setJournalLines($manualJournalLines);
$manualJournals = new XeroAPI\XeroPHP\Models\Accounting\ManualJournals;
$arr_manual_journals = [];
array_push($arr_manual_journals, $manualJournal);
$manualJournals->setManualJournals($arr_manual_journals);
try {
$result = $apiInstance->updateOrCreateManualJournals($xeroTenantId, $manualJournals, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreateManualJournals: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
manualJournals *
ManualJournals
ManualJournals array with ManualJournal object in body of request
Required
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
updateOrCreatePurchaseOrders
Updates or creates one or more purchase orders
/PurchaseOrders
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$dateValue = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$purchaseOrder = new XeroAPI\XeroPHP\Models\Accounting\PurchaseOrder;
$purchaseOrder->setContact($contact);
$purchaseOrder->setLineItems($lineItems);
$purchaseOrder->setDate($dateValue);
$purchaseOrders = new XeroAPI\XeroPHP\Models\Accounting\PurchaseOrders;
$arr_purchase_orders = [];
array_push($arr_purchase_orders, $purchaseOrder);
$purchaseOrders->setPurchaseOrders($arr_purchase_orders);
try {
$result = $apiInstance->updateOrCreatePurchaseOrders($xeroTenantId, $purchaseOrders, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreatePurchaseOrders: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
purchaseOrders *
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
updateOrCreateQuotes
Updates or creates one or more quotes
/Quotes
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$summarizeErrors = true;
$dateValue = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$lineItem = new XeroAPI\XeroPHP\Models\Accounting\LineItem;
$lineItem->setDescription('Foobar');
$lineItem->setQuantity(1.0);
$lineItem->setUnitAmount(20.0);
$lineItem->setAccountCode('000');
$lineItems = [];
array_push($lineItems, $lineItem);
$quote = new XeroAPI\XeroPHP\Models\Accounting\Quote;
$quote->setContact($contact);
$quote->setLineItems($lineItems);
$quote->setDate($dateValue);
$quotes = new XeroAPI\XeroPHP\Models\Accounting\Quotes;
$arr_quotes = [];
array_push($arr_quotes, $quote);
$quotes->setQuotes($arr_quotes);
try {
$result = $apiInstance->updateOrCreateQuotes($xeroTenantId, $quotes, $summarizeErrors);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateOrCreateQuotes: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
quotes *
Query parameters
Name
Description
summarizeErrors
Boolean
If false return 200 OK and mix of successfully created objects and any with validation errors
updatePurchaseOrder
Updates a specific purchase order
/PurchaseOrders/{PurchaseOrderID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
$purchaseOrder = new XeroAPI\XeroPHP\Models\Accounting\PurchaseOrder;
$purchaseOrder->setAttentionTo('Peter Parker');
$purchaseOrders = new XeroAPI\XeroPHP\Models\Accounting\PurchaseOrders;
$arr_purchase_orders = [];
array_push($arr_purchase_orders, $purchaseOrder);
$purchaseOrders->setPurchaseOrders($arr_purchase_orders);
try {
$result = $apiInstance->updatePurchaseOrder($xeroTenantId, $purchaseOrderID, $purchaseOrders);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updatePurchaseOrder: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
purchaseOrders *
updatePurchaseOrderAttachmentByFileName
Updates a specific attachment for a specific purchase order by filename
/PurchaseOrders/{PurchaseOrderID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$purchaseOrderID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updatePurchaseOrderAttachmentByFileName($xeroTenantId, $purchaseOrderID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updatePurchaseOrderAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
PurchaseOrderID*
UUID
(uuid)
Unique identifier for an Purchase Order
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateQuote
Updates a specific quote
/Quotes/{QuoteID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
$dateValue = new DateTime('2020-12-10');
$contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
$contact->setContactID('00000000-0000-0000-0000-000000000000');
$quote = new XeroAPI\XeroPHP\Models\Accounting\Quote;
$quote->setReference('I am an update');
$quote->setContact($contact);
$quote->setDate($dateValue);
$quotes = new XeroAPI\XeroPHP\Models\Accounting\Quotes;
$arr_quotes = [];
array_push($arr_quotes, $quote);
$quotes->setQuotes($arr_quotes);
try {
$result = $apiInstance->updateQuote($xeroTenantId, $quoteID, $quotes);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateQuote: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
quotes *
updateQuoteAttachmentByFileName
Updates a specific attachment from a specific quote by filename
/Quotes/{QuoteID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$quoteID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateQuoteAttachmentByFileName($xeroTenantId, $quoteID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateQuoteAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
QuoteID*
UUID
(uuid)
Unique identifier for an Quote
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateReceipt
Updates a specific draft expense claim receipts
/Receipts/{ReceiptID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
$unitdp = 4;
$dateValue = new DateTime('2020-12-10');
$user = new XeroAPI\XeroPHP\Models\Accounting\User;
$user->setUserID('00000000-0000-0000-0000-000000000000');
$receipt = new XeroAPI\XeroPHP\Models\Accounting\Receipt;
$receipt->setUser($user);
$receipt->setReference('Foobar');
$receipt->setDate($dateValue);
$receipts = new XeroAPI\XeroPHP\Models\Accounting\Receipts;
$arr_receipts = [];
array_push($arr_receipts, $receipt);
$receipts->setReceipts($arr_receipts);
try {
$result = $apiInstance->updateReceipt($xeroTenantId, $receiptID, $receipts, $unitdp);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateReceipt: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.transactions
Grant read-write access to bank transactions, credit notes, invoices, repeating invoices
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
receipts *
Query parameters
Name
Description
unitdp
Integer
e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
updateReceiptAttachmentByFileName
Updates a specific attachment on a specific expense claim receipts by file name
/Receipts/{ReceiptID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$receiptID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateReceiptAttachmentByFileName($xeroTenantId, $receiptID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateReceiptAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
ReceiptID*
UUID
(uuid)
Unique identifier for a Receipt
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateRepeatingInvoiceAttachmentByFileName
Updates a specific attachment from a specific repeating invoices by file name
/RepeatingInvoices/{RepeatingInvoiceID}/Attachments/{FileName}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$repeatingInvoiceID = "00000000-0000-0000-0000-000000000000";
$fileName = "xero-dev.jpg";
$handle = fopen($fileName, "r");
$body = fread($handle, filesize($fileName));
fclose($handle);
try {
$result = $apiInstance->updateRepeatingInvoiceAttachmentByFileName($xeroTenantId, $repeatingInvoiceID, $fileName, $body);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateRepeatingInvoiceAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.attachments
Grant read-write access to attachments
Parameters
Path parameters
Name
Description
RepeatingInvoiceID*
UUID
(uuid)
Unique identifier for a Repeating Invoice
Required
FileName*
String
Name of the attachment
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
body *
byte[]
Byte array of file in body of request
Required
updateTaxRate
Updates tax rates
/TaxRates
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$taxComponent = new XeroAPI\XeroPHP\Models\Accounting\TaxComponent;
$taxComponent->setName('State Tax');
$taxComponent->setRate(2.25);
$taxComponents = [];
array_push($taxComponents, $taxComponent);
$taxRate = new XeroAPI\XeroPHP\Models\Accounting\TaxRate;
$taxRate->setName('CA State Tax');
$taxRate->setTaxComponents($taxComponents);
$taxRates = new XeroAPI\XeroPHP\Models\Accounting\TaxRates;
$arr_tax_rates = [];
array_push($arr_tax_rates, $taxRate);
$taxRates->setTaxRates($arr_tax_rates);
try {
$result = $apiInstance->updateTaxRate($xeroTenantId, $taxRates);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateTaxRate: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
taxRates *
updateTrackingCategory
Updates a specific tracking category
/TrackingCategories/{TrackingCategoryID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$trackingCategoryID = "00000000-0000-0000-0000-000000000000";
$trackingCategory = new XeroAPI\XeroPHP\Models\Accounting\TrackingCategory;
$trackingCategory->setName('Foobar');
try {
$result = $apiInstance->updateTrackingCategory($xeroTenantId, $trackingCategoryID, $trackingCategory);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateTrackingCategory: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
TrackingCategoryID*
UUID
(uuid)
Unique identifier for a TrackingCategory
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
trackingCategory *
updateTrackingOptions
Updates a specific option for a specific tracking category
/TrackingCategories/{TrackingCategoryID}/Options/{TrackingOptionID}
Usage and SDK Samples
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure OAuth2 access token for authorization: OAuth2
$config = XeroAPI\XeroPHP\Configuration::getDefaultConfiguration()->setAccessToken( 'YOUR_ACCESS_TOKEN' );
$apiInstance = new XeroAPI\XeroPHP\Api\AccountingApi(
new GuzzleHttp\Client(),
$config
);
$xeroTenantId = "YOUR_XERO_TENANT_ID";
$trackingCategoryID = "00000000-0000-0000-0000-000000000000";
$trackingOptionID = "00000000-0000-0000-0000-000000000000";
$trackingOption = new XeroAPI\XeroPHP\Models\Accounting\TrackingOption;
$trackingOption->setName('Foobar');
try {
$result = $apiInstance->updateTrackingOptions($xeroTenantId, $trackingCategoryID, $trackingOptionID, $trackingOption);
} catch (Exception $e) {
echo 'Exception when calling AccountingApi->updateTrackingOptions: ', $e->getMessage(), PHP_EOL;
}
?>
Scopes
accounting.settings
Grant read-write access to organisation and account settings
Parameters
Path parameters
Name
Description
TrackingCategoryID*
UUID
(uuid)
Unique identifier for a TrackingCategory
Required
TrackingOptionID*
UUID
(uuid)
Unique identifier for a Tracking Option
Required
Header parameters
Name
Description
xero-tenant-id*
String
Xero identifier for Tenant
Required
Body parameters
Name
Description
trackingOption *