xero-php-oauth2 Accounting SDK Docs

# Xero Accounting API

## SDK Documentation

# 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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createAccountAttachmentByFileName($xeroTenantId, $accountID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createBankTransactionAttachmentByFileName($xeroTenantId, $bankTransactionID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createBankTransferAttachmentByFileName($xeroTenantId, $bankTransferID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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');

    $paymentServices = new XeroAPI\XeroPHP\Models\Accounting\PaymentServices;
    $arr_paymentServices = [];
    array_push($arr_paymentServices, $paymentService);
    $paymentServices->setPaymentServices($arr_paymentServices);

    try {
      $result = $apiInstance->createBrandingThemePaymentServices($xeroTenantId, $brandingThemeID, $paymentServices, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
paymentServices * | PaymentServices PaymentServices array with PaymentService object in body of request Required

# createContactAttachmentByFileName

    /Contacts/{ContactID}/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";
    $contactID = "00000000-0000-0000-0000-000000000000";
    $fileName = "xero-dev.jpg";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createContactAttachmentByFileName($xeroTenantId, $contactID, $fileName, $body, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->createContactAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.attachments | Grant read-write access to attachments

## Parameters

Path parameters

Name | Description
--- | ---
ContactID* | UUID (uuid) Unique identifier for a Contact Required
FileName* | String Name of the attachment Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
body * | byte[] Byte array of file in body of request Required

# createContactGroup

Creates a contact group

    /ContactGroups

### 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";
    $idempotencyKey = "KEY_VALUE";

    $contactGroup = new XeroAPI\XeroPHP\Models\Accounting\ContactGroup;
    $contactGroup->setName('VIPs');

    $contactGroups = new XeroAPI\XeroPHP\Models\Accounting\ContactGroups;
    $arr_contact_groups = [];
    array_push($arr_contact_groups, $contactGroup);
    $contactGroups->setContactGroups($arr_contact_groups);

    try {
      $result = $apiInstance->createContactGroup($xeroTenantId, $contactGroups, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->createContactGroup: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.contacts | Grant read-write access to contacts and contact groups

## Parameters

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
contactGroups * | ContactGroups ContactGroups with an array of names in request body Required

# createContactGroupContacts

Creates contacts to a specific contact group

    /ContactGroups/{ContactGroupID}/Contacts

### 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";
    $contactGroupID = "00000000-0000-0000-0000-000000000000";
    $idempotencyKey = "KEY_VALUE";

    $contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
    $contact->setContactID('00000000-0000-0000-0000-000000000000');

    $contacts = new XeroAPI\XeroPHP\Models\Accounting\Contacts;
    $arr_contacts = [];
    array_push($arr_contacts, $contact);
    $contacts->setContacts($arr_contacts);

    try {
      $result = $apiInstance->createContactGroupContacts($xeroTenantId, $contactGroupID, $contacts, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->createContactGroupContacts: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.contacts | Grant read-write access to contacts and contact groups

## Parameters

Path parameters

Name | Description
--- | ---
ContactGroupID* | UUID (uuid) Unique identifier for a Contact Group Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
contacts * | Contacts Contacts with array of contacts specifying the ContactID to be added to ContactGroup 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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
historyRecords * | HistoryRecords HistoryRecords containing an array of HistoryRecord objects in body of request Required

# createContacts

Creates multiple contacts (bulk) in a Xero organisation

    /Contacts

### 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;
    $idempotencyKey = "KEY_VALUE";

    $phone = new XeroAPI\XeroPHP\Models\Accounting\Phone;
    $phone->setPhoneNumber('555-1212');
    $phone->setPhoneType(XeroAPI\XeroPHP\Models\Accounting\Phone::PHONE_TYPE_MOBILE);
    $phones = [];
    array_push($phones, $phone);

    $contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
    $contact->setName('Bruce Banner');
    $contact->setEmailAddress('hulk@avengers.com');
    $contact->setPhones($phones);

    $contacts = new XeroAPI\XeroPHP\Models\Accounting\Contacts;
    $arr_contacts = [];
    array_push($arr_contacts, $contact);
    $contacts->setContacts($arr_contacts);

    try {
      $result = $apiInstance->createContacts($xeroTenantId, $contacts, $summarizeErrors, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->createContacts: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.contacts | Grant read-write access to contacts and contact groups

## Parameters

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
contacts * | Contacts Contacts with an array of Contact objects to create 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

# 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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createCreditNoteAttachmentByFileName($xeroTenantId, $creditNoteID, $fileName, $body, $includeOnline, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createInvoiceAttachmentByFileName($xeroTenantId, $invoiceID, $fileName, $body, $includeOnline, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createManualJournalAttachmentByFileName($xeroTenantId, $manualJournalID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createPurchaseOrderAttachmentByFileName($xeroTenantId, $purchaseOrderID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createQuoteAttachmentByFileName($xeroTenantId, $quoteID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createReceiptAttachmentByFileName($xeroTenantId, $receiptID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->createRepeatingInvoiceAttachmentByFileName($xeroTenantId, $repeatingInvoiceID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
historyRecords * | HistoryRecords HistoryRecords containing an array of HistoryRecord objects in body of request Required

# createRepeatingInvoices

Creates one or more repeating invoice templates

    /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";
    $summarizeErrors = true;
    $idempotencyKey = "KEY_VALUE";

    try {
      $result = $apiInstance->createRepeatingInvoices($xeroTenantId, $repeatingInvoices, $summarizeErrors, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->createRepeatingInvoices: ', $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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
repeatingInvoices * | RepeatingInvoices RepeatingInvoices with an array of repeating 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

# 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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $trackingCategory = new XeroAPI\XeroPHP\Models\Accounting\TrackingCategory;
    $trackingCategory->setName('Foobar');

    try {
      $result = $apiInstance->createTrackingCategory($xeroTenantId, $trackingCategory, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $trackingOption = new XeroAPI\XeroPHP\Models\Accounting\TrackingOption;
    $trackingOption->setName('Foobar');

    try {
      $result = $apiInstance->createTrackingOptions($xeroTenantId, $trackingCategoryID, $trackingOption, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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

# deleteBatchPayment

Updates a specific batch payment for invoices and credit notes

    /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";
    $idempotencyKey = "KEY_VALUE";

    $batchPaymentDelete = new XeroAPI\XeroPHP\Models\Accounting\BatchPaymentDelete;
    $batchPaymentDelete->setStatus('DELETED');
    $batchPaymentDelete->setBatchPaymentID('00000000-0000-0000-0000-000000000000');

    try {
      $result = $apiInstance->deleteBatchPayment($xeroTenantId, $batchPaymentDelete, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->deleteBatchPayment: ', $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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
batchPaymentDelete * | BatchPaymentDelete Required

# deleteBatchPaymentByUrlParam

Updates a specific batch payment for invoices and credit notes

    /BatchPayments/{BatchPaymentID}

### 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";
    $idempotencyKey = "KEY_VALUE";

    try {
      $result = $apiInstance->deleteBatchPaymentByUrlParam($xeroTenantId, $batchPaymentID, $batchPaymentDeleteByUrlParam, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->deleteBatchPaymentByUrlParam: ', $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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
batchPaymentDeleteByUrlParam * | BatchPaymentDeleteByUrlParam Required

# deleteContactGroupContact

Deletes a specific contact from a contact group using a unique contact Id

    /ContactGroups/{ContactGroupID}/Contacts/{ContactID}

### 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";
    $contactGroupID = "00000000-0000-0000-0000-000000000000";
    $contactID = "00000000-0000-0000-0000-000000000000";

    try {
      $apiInstance->deleteContactGroupContact($xeroTenantId, $contactGroupID, $contactID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->deleteContactGroupContact: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.contacts | Grant read-write access to contacts and contact groups

## Parameters

Path parameters

Name | Description
--- | ---
ContactGroupID* | UUID (uuid) Unique identifier for a Contact Group Required
ContactID* | UUID (uuid) Unique identifier for a Contact Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required

# deleteContactGroupContacts

Deletes all contacts from a specific contact group

    /ContactGroups/{ContactGroupID}/Contacts

### 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";
    $contactGroupID = "00000000-0000-0000-0000-000000000000";

    try {
      $apiInstance->deleteContactGroupContacts($xeroTenantId, $contactGroupID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->deleteContactGroupContacts: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.contacts | Grant read-write access to contacts and contact groups

## Parameters

Path parameters

Name | Description
--- | ---
ContactGroupID* | UUID (uuid) Unique identifier for a Contact Group Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required

# deleteCreditNoteAllocations

Deletes an Allocation from a Credit Note

    /CreditNotes/{CreditNoteID}/Allocations/{AllocationID}

### 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";
    $allocationID = "00000000-0000-0000-0000-000000000000";

    try {
      $result = $apiInstance->deleteCreditNoteAllocations($xeroTenantId, $creditNoteID, $allocationID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->deleteCreditNoteAllocations: ', $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
AllocationID* | UUID (uuid) Unique identifier for Allocation 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

# deleteOverpaymentAllocations

Deletes an Allocation from an overpayment

    /Overpayments/{OverpaymentID}/Allocations/{AllocationID}

### 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";
    $allocationID = "00000000-0000-0000-0000-000000000000";

    try {
      $result = $apiInstance->deleteOverpaymentAllocations($xeroTenantId, $overpaymentID, $allocationID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->deleteOverpaymentAllocations: ', $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
AllocationID* | UUID (uuid) Unique identifier for Allocation object 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";
    $idempotencyKey = "KEY_VALUE";

    $paymentDelete = new XeroAPI\XeroPHP\Models\Accounting\PaymentDelete;
    $paymentDelete->setStatus('DELETED');

    try {
      $result = $apiInstance->deletePayment($xeroTenantId, $paymentID, $paymentDelete, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
paymentDelete * | PaymentDelete Required

# deletePrepaymentAllocations

Deletes an Allocation from a Prepayment

    /Prepayments/{PrepaymentID}/Allocations/{AllocationID}

### 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";
    $allocationID = "00000000-0000-0000-0000-000000000000";

    try {
      $result = $apiInstance->deletePrepaymentAllocations($xeroTenantId, $prepaymentID, $allocationID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->deletePrepaymentAllocations: ', $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
AllocationID* | UUID (uuid) Unique identifier for Allocation object Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required

# 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";
    $idempotencyKey = "KEY_VALUE";

    $requestEmpty = new XeroAPI\XeroPHP\Models\Accounting\RequestEmpty;

    try {
      $apiInstance->emailInvoice($xeroTenantId, $invoiceID, $requestEmpty, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
requestEmpty * | RequestEmpty Required

# 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;
    $pageSize = 100;

    try {
      $result = $apiInstance->getBankTransactions($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp, $pageSize);
    } 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
pageSize | Integer Number of records to retrieve per page

# 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

# getBatchPayment

Retrieves a specific batch payment using a unique batch payment Id

    /BatchPayments/{BatchPaymentID}

### 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->getBatchPayment($xeroTenantId, $batchPaymentID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getBatchPayment: ', $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

# 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

accounting.budgets.read |

## 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

accounting.budgets.read |

## 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

# getContact

Retrieves a specific contacts in a Xero organisation using a unique contact Id

    /Contacts/{ContactID}

### 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->getContact($xeroTenantId, $contactID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContact: ', $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

# getContactAttachmentByFileName

Retrieves a specific attachment from a specific contact by file name

    /Contacts/{ContactID}/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";
    $contactID = "00000000-0000-0000-0000-000000000000";
    $fileName = "xero-dev.jpg";
    $contentType = "image/jpg";

    try {
      $result = $apiInstance->getContactAttachmentByFileName($xeroTenantId, $contactID, $fileName, $contentType);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContactAttachmentByFileName: ', $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
--- | ---
ContactID* | UUID (uuid) Unique identifier for a Contact 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

# getContactAttachmentById

Retrieves a specific attachment from a specific contact using a unique attachment Id

    /Contacts/{ContactID}/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";
    $contactID = "00000000-0000-0000-0000-000000000000";
    $attachmentID = "00000000-0000-0000-0000-000000000000";
    $contentType = "image/jpg";

    try {
      $result = $apiInstance->getContactAttachmentById($xeroTenantId, $contactID, $attachmentID, $contentType);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContactAttachmentById: ', $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
--- | ---
ContactID* | UUID (uuid) Unique identifier for a Contact 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

# getContactAttachments

Retrieves attachments for a specific contact in a Xero organisation

    /Contacts/{ContactID}/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";
    $contactID = "00000000-0000-0000-0000-000000000000";

    try {
      $result = $apiInstance->getContactAttachments($xeroTenantId, $contactID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContactAttachments: ', $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
--- | ---
ContactID* | UUID (uuid) Unique identifier for a Contact Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required

# getContactByContactNumber

Retrieves a specific contact by contact number in a Xero organisation

    /Contacts/{ContactNumber}

### 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";
    $contactNumber = "SB2";

    try {
      $result = $apiInstance->getContactByContactNumber($xeroTenantId, $contactNumber);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContactByContactNumber: ', $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
--- | ---
ContactNumber* | String This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required

# getContactCISSettings

Retrieves CIS settings for a specific contact in a Xero organisation

    /Contacts/{ContactID}/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";
    $contactID = "00000000-0000-0000-0000-000000000000";

    try {
      $result = $apiInstance->getContactCISSettings($xeroTenantId, $contactID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContactCISSettings: ', $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
--- | ---
ContactID* | UUID (uuid) Unique identifier for a Contact Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required

# getContactGroup

Retrieves a specific contact group by using a unique contact group Id

    /ContactGroups/{ContactGroupID}

### 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";
    $contactGroupID = "00000000-0000-0000-0000-000000000000";

    try {
      $result = $apiInstance->getContactGroup($xeroTenantId, $contactGroupID);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContactGroup: ', $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
--- | ---
ContactGroupID* | UUID (uuid) Unique identifier for a Contact Group Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required

# getContactGroups

Retrieves the contact Id and name of each contact group

    /ContactGroups

### 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\ContactGroup::STATUS_ACTIVE . '"";
    $order = "Name ASC";

    try {
      $result = $apiInstance->getContactGroups($xeroTenantId, $where, $order);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContactGroups: ', $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

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

# 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

# getContacts

Retrieves all contacts in a Xero organisation

    /Contacts

### 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 = "ContactStatus=="' . \XeroAPI\XeroPHP\Models\Accounting\Contact::CONTACT_STATUS_ACTIVE . '"";
    $order = "Name ASC";
    $iDs = array("00000000-0000-0000-0000-000000000000")
    $page = 1;
    $includeArchived = true;
    $summaryOnly = true;
    $searchTerm = "Joe Bloggs";
    $pageSize = 100;

    try {
      $result = $apiInstance->getContacts($xeroTenantId, $ifModifiedSince, $where, $order, $iDs, $page, $includeArchived, $summaryOnly, $searchTerm, $pageSize);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getContacts: ', $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

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 ContactIDs. Allows you to retrieve a specific set of contacts in a single call.
page | Integer e.g. page=1 - Up to 100 contacts will be returned in a single API call.
includeArchived | Boolean e.g. includeArchived=true - Contacts with a status of ARCHIVED will be included in the response
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.
searchTerm | String Search parameter that performs a case-insensitive text search across the Name, FirstName, LastName, ContactNumber and EmailAddress fields.
pageSize | Integer Number of records to retrieve per page

# 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;
    $pageSize = 100;

    try {
      $result = $apiInstance->getCreditNotes($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp, $pageSize);
    } 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
pageSize | Integer Number of records to retrieve per page

# 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;
    $pageSize = 100;
    $searchTerm = "SearchTerm=REF12";

    try {
      $result = $apiInstance->getInvoices($xeroTenantId, $ifModifiedSince, $where, $order, $iDs, $invoiceNumbers, $contactIDs, $statuses, $page, $includeArchived, $createdByMyApp, $unitdp, $summaryOnly, $pageSize, $searchTerm);
    } 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 | array[UUID] (uuid) Filter by a comma-separated list of 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.
pageSize | Integer Number of records to retrieve per page
searchTerm | String Search parameter that performs a case-insensitive text search across the fields e.g. InvoiceNumber, Reference.

# 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

# getItems

Retrieves 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";
    $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

# getJournalByNumber

Retrieves a specific journal using a unique journal number.

    /Journals/{JournalNumber}

### 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";
    $journalNumber = 1000;

    try {
      $result = $apiInstance->getJournalByNumber($xeroTenantId, $journalNumber);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getJournalByNumber: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.journals.read | Grant read-only access to journals

## Parameters

Path parameters

Name | Description
--- | ---
JournalNumber* | Integer Number of 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 | UUID (uuid) Filter by the ContactID. Get all the linked transactions that have been assigned to a particular customer.
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;
    $pageSize = 100;

    try {
      $result = $apiInstance->getManualJournals($xeroTenantId, $ifModifiedSince, $where, $order, $page, $pageSize);
    } 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
pageSize | Integer Number of records to retrieve per page

# 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;
    $pageSize = 100;

    try {
      $result = $apiInstance->getOverpayments($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp, $pageSize);
    } 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
pageSize | Integer Number of records to retrieve per page

# 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;
    $pageSize = 100;

    try {
      $result = $apiInstance->getPayments($xeroTenantId, $ifModifiedSince, $where, $order, $page, $pageSize);
    } 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
pageSize | Integer Number of records to retrieve per page

# 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;
    $pageSize = 100;

    try {
      $result = $apiInstance->getPrepayments($xeroTenantId, $ifModifiedSince, $where, $order, $page, $unitdp, $pageSize);
    } 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
pageSize | Integer Number of records to retrieve per page

# 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

# getPurchaseOrderAttachmentByFileName

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->getPurchaseOrderAttachmentByFileName($xeroTenantId, $purchaseOrderID, $fileName, $contentType);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getPurchaseOrderAttachmentByFileName: ', $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

# 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;
    $pageSize = 100;

    try {
      $result = $apiInstance->getPurchaseOrders($xeroTenantId, $ifModifiedSince, $status, $dateFrom, $dateTo, $order, $page, $pageSize);
    } 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.
pageSize | Integer Number of records to retrieve per page

# 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 | UUID (uuid) Filter for quotes belonging to a particular contact
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

# getReportAgedPayablesByContact

Retrieves report for aged payables by contact

    /Reports/AgedPayablesByContact

### 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";
    $date = new DateTime("2019-10-31");
    $fromDate = new DateTime("2019-10-31");
    $toDate = new DateTime("2019-10-31");

    try {
      $result = $apiInstance->getReportAgedPayablesByContact($xeroTenantId, $contactId, $date, $fromDate, $toDate);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getReportAgedPayablesByContact: ', $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
--- | ---
contactId* | UUID (uuid) Unique identifier for a Contact Required
date | date (date) The date of the Aged Payables By Contact report
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

# getReportAgedReceivablesByContact

Retrieves report for aged receivables by contact

    /Reports/AgedReceivablesByContact

### 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";
    $date = new DateTime("2019-10-31");
    $fromDate = new DateTime("2019-10-31");
    $toDate = new DateTime("2019-10-31");

    try {
      $result = $apiInstance->getReportAgedReceivablesByContact($xeroTenantId, $contactId, $date, $fromDate, $toDate);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getReportAgedReceivablesByContact: ', $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
--- | ---
contactId* | UUID (uuid) Unique identifier for a Contact Required
date | date (date) The date of the Aged Receivables By Contact report
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

# 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

# getTaxRateByTaxType

Retrieves a specific tax rate according to given TaxType code

    /TaxRates/{TaxType}

### 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";
    $taxType = "INPUT2";

    try {
      $result = $apiInstance->getTaxRateByTaxType($xeroTenantId, $taxType);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->getTaxRateByTaxType: ', $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
--- | ---
TaxType* | String A valid TaxType code Required

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";

    try {
      $result = $apiInstance->getTaxRates($xeroTenantId, $where, $order);
    } 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

# 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

# getUsers

Retrieves users

    /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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateAccountAttachmentByFileName($xeroTenantId, $accountID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
bankTransactions * | BankTransactions 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

# 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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateBankTransactionAttachmentByFileName($xeroTenantId, $bankTransactionID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateBankTransferAttachmentByFileName($xeroTenantId, $bankTransferID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
body * | byte[] Byte array of file in body of request Required

# updateContact

Updates a specific contact in a Xero organisation

    /Contacts/{ContactID}

### 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";
    $idempotencyKey = "KEY_VALUE";

    $contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
    $contact->setName('Thanos');
    $contact->setContactID('00000000-0000-0000-0000-000000000000');

    $contacts = new XeroAPI\XeroPHP\Models\Accounting\Contacts;
    $arr_contacts = [];
    array_push($arr_contacts, $contact);
    $contacts->setContacts($arr_contacts);

    try {
      $result = $apiInstance->updateContact($xeroTenantId, $contactID, $contacts, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->updateContact: ', $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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
contacts * | Contacts an array of Contacts containing single Contact object with properties to update Required

# updateContactAttachmentByFileName

    /Contacts/{ContactID}/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";
    $contactID = "00000000-0000-0000-0000-000000000000";
    $fileName = "xero-dev.jpg";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateContactAttachmentByFileName($xeroTenantId, $contactID, $fileName, $body, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->updateContactAttachmentByFileName: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.attachments | Grant read-write access to attachments

## Parameters

Path parameters

Name | Description
--- | ---
ContactID* | UUID (uuid) Unique identifier for a Contact Required
FileName* | String Name of the attachment Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
body * | byte[] Byte array of file in body of request Required

# updateContactGroup

Updates a specific contact group

    /ContactGroups/{ContactGroupID}

### 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";
    $contactGroupID = "00000000-0000-0000-0000-000000000000";
    $idempotencyKey = "KEY_VALUE";

    $contactGroup = new XeroAPI\XeroPHP\Models\Accounting\ContactGroup;
    $contactGroup->setName('Vendor');

    $contactGroups = new XeroAPI\XeroPHP\Models\Accounting\ContactGroups;
    $arr_contact_groups = [];
    array_push($arr_contact_groups, $contactGroup);
    $contactGroups->setContactGroups($arr_contact_groups);

    try {
      $result = $apiInstance->updateContactGroup($xeroTenantId, $contactGroupID, $contactGroups, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->updateContactGroup: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.contacts | Grant read-write access to contacts and contact groups

## Parameters

Path parameters

Name | Description
--- | ---
ContactGroupID* | UUID (uuid) Unique identifier for a Contact Group Required

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
contactGroups * | ContactGroups an array of Contact groups with Name of specific group to update 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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateCreditNoteAttachmentByFileName($xeroTenantId, $creditNoteID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
expenseClaims * | ExpenseClaims Required

# 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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
invoices * | Invoices 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

# 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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateInvoiceAttachmentByFileName($xeroTenantId, $invoiceID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
items * | Items 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

# 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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
linkedTransactions * | LinkedTransactions Required

# 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";
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
manualJournals * | ManualJournals Required

# 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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateManualJournalAttachmentByFileName($xeroTenantId, $manualJournalID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
bankTransactions * | BankTransactions 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

# updateOrCreateContacts

Updates or creates one or more contacts in a Xero organisation

    /Contacts

### 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;
    $idempotencyKey = "KEY_VALUE";

    $phone = new XeroAPI\XeroPHP\Models\Accounting\Phone;
    $phone->setPhoneNumber('555-1212');
    $phone->setPhoneType(XeroAPI\XeroPHP\Models\Accounting\Phone::PHONE_TYPE_MOBILE);
    $phones = [];
    array_push($phones, $phone);

    $contact = new XeroAPI\XeroPHP\Models\Accounting\Contact;
    $contact->setName('Bruce Banner');
    $contact->setEmailAddress('hulk@avengers.com');
    $contact->setPhones($phones);

    $contacts = new XeroAPI\XeroPHP\Models\Accounting\Contacts;
    $arr_contacts = [];
    array_push($arr_contacts, $contact);
    $contacts->setContacts($arr_contacts);

    try {
      $result = $apiInstance->updateOrCreateContacts($xeroTenantId, $contacts, $summarizeErrors, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->updateOrCreateContacts: ', $e->getMessage(), PHP_EOL;
    }
    ?>

## Scopes

accounting.contacts | Grant read-write access to contacts and contact groups

## Parameters

Header parameters

Name | Description
--- | ---
xero-tenant-id* | String Xero identifier for Tenant Required
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
contacts * | Contacts Required

Query parameters

Name | Description
--- | ---
summarizeErrors | Boolean If false return 200 OK and mix of successfully created objects and any with validation errors

# 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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
invoices * | Invoices 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

# 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;
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
items * | Items 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

# 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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
purchaseOrders * | PurchaseOrders Required

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
quotes * | Quotes Required

Query parameters

Name | Description
--- | ---
summarizeErrors | Boolean If false return 200 OK and mix of successfully created objects and any with validation errors

# updateOrCreateRepeatingInvoices

Creates or deletes one or more repeating invoice templates

    /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";
    $summarizeErrors = true;
    $idempotencyKey = "KEY_VALUE";

    try {
      $result = $apiInstance->updateOrCreateRepeatingInvoices($xeroTenantId, $repeatingInvoices, $summarizeErrors, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->updateOrCreateRepeatingInvoices: ', $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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
repeatingInvoices * | RepeatingInvoices RepeatingInvoices with an array of repeating 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

# 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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
purchaseOrders * | PurchaseOrders Required

# 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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updatePurchaseOrderAttachmentByFileName($xeroTenantId, $purchaseOrderID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
quotes * | Quotes Required

# 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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateQuoteAttachmentByFileName($xeroTenantId, $quoteID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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;
    $idempotencyKey = "KEY_VALUE";
    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
receipts * | Receipts 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

# 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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateReceiptAttachmentByFileName($xeroTenantId, $receiptID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
body * | byte[] Byte array of file in body of request Required

# updateRepeatingInvoice

Deletes a specific repeating invoice template

    /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";
    $idempotencyKey = "KEY_VALUE";

    try {
      $result = $apiInstance->updateRepeatingInvoice($xeroTenantId, $repeatingInvoiceID, $repeatingInvoices, $idempotencyKey);
    } catch (Exception $e) {
      echo 'Exception when calling AccountingApi->updateRepeatingInvoice: ', $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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
repeatingInvoices * | RepeatingInvoices 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";
    $idempotencyKey = "KEY_VALUE";

    $handle = fopen($fileName, "r");
    $body = fread($handle, filesize($fileName));
    fclose($handle);

    try {
      $result = $apiInstance->updateRepeatingInvoiceAttachmentByFileName($xeroTenantId, $repeatingInvoiceID, $fileName, $body, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

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";
    $idempotencyKey = "KEY_VALUE";

    $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, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
taxRates * | TaxRates Required

# 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";
    $idempotencyKey = "KEY_VALUE";

    $trackingCategory = new XeroAPI\XeroPHP\Models\Accounting\TrackingCategory;
    $trackingCategory->setName('Foobar');

    try {
      $result = $apiInstance->updateTrackingCategory($xeroTenantId, $trackingCategoryID, $trackingCategory, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
trackingCategory * | TrackingCategory Required

# 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";
    $idempotencyKey = "KEY_VALUE";

    $trackingOption = new XeroAPI\XeroPHP\Models\Accounting\TrackingOption;
    $trackingOption->setName('Foobar');

    try {
      $result = $apiInstance->updateTrackingOptions($xeroTenantId, $trackingCategoryID, $trackingOptionID, $trackingOption, $idempotencyKey);
    } 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
Idempotency-Key | String This allows you to safely retry requests without the risk of duplicate processing. 128 character max.

Body parameters

Name | Description
--- | ---
trackingOption * | TrackingOption Required