xero-apimatic / xero-apimatic-sdk
Xero APIMatic SDKs
Requires
- php: ^7.2 || ^8.0
- ext-curl: *
- ext-json: *
- apimatic/core: ~0.3.17
- apimatic/core-interfaces: ~0.1.5
- apimatic/unirest-php: ^4.0.6
Requires (Dev)
- phan/phan: 5.4.5
- squizlabs/php_codesniffer: ^3.5
README
Introduction
The Assets API exposes fixed asset related functions of the Xero Accounting application and can be used for a variety of purposes such as creating assets, retrieving asset valuations etc., The Bank Feeds API is a closed API that is only available to financial institutions that have an established financial services partnership with Xero. If you're an existing financial services partner that wants access, contact your local Partner Manager. If you're a financial institution who wants to provide bank feeds to your business customers, contact us to become a financial services partner., These endpoints are related to managing authentication tokens and identity for Xero API, This is the Xero Projects API
Install the Package
Run the following command to install the package and automatically add the dependency to your composer.json file:
composer require "xero-apimatic/xero-apimatic-sdk:1.0.0"
Or add it to the composer.json file manually as given below:
"require": { "xero-apimatic/xero-apimatic-sdk": "1.0.0" }
You can also view the package at: https://packagist.org/packages/xero-apimatic/xero-apimatic-sdk#1.0.0
Initialize the API Client
Note: Documentation for the client can be found here.
The following parameters are configurable for the API Client:
| Parameter | Type | Description |
|---|---|---|
| environment | Environment |
The API environment. Default: Environment.PRODUCTION |
| timeout | int |
Timeout for API calls in seconds. Default: 30 |
| enableRetries | bool |
Whether to enable retries and backoff feature. Default: false |
| numberOfRetries | int |
The number of retries to make. Default: 0 |
| retryInterval | float |
The retry time interval between the endpoint calls. Default: 1 |
| backOffFactor | float |
Exponential backoff factor to increase interval between retries. Default: 2 |
| maximumRetryWaitTime | int |
The maximum wait time in seconds for overall retrying requests. Default: 0 |
| retryOnTimeout | bool |
Whether to retry on request timeout. Default: true |
| httpStatusCodesToRetry | array |
Http status codes to retry against. Default: 408, 413, 429, 500, 502, 503, 504, 521, 522, 524 |
| httpMethodsToRetry | array |
Http methods to retry against. Default: 'GET', 'PUT' |
| loggingConfiguration | LoggingConfigurationBuilder |
Represents the logging configurations for API calls |
| proxyConfiguration | ProxyConfigurationBuilder |
Represents the proxy configurations for API calls |
| oauth2Credentials | Oauth2Credentials |
The Credentials Setter for OAuth 2 Authorization Code Grant |
| basicAuthCredentials | BasicAuthCredentials |
The Credentials Setter for Basic Authentication |
The API client can be initialized as follows:
use XeroApIsLib\Logging\LoggingConfigurationBuilder; use XeroApIsLib\Logging\RequestLoggingConfigurationBuilder; use XeroApIsLib\Logging\ResponseLoggingConfigurationBuilder; use Psr\Log\LogLevel; use XeroApIsLib\Environment; use XeroApIsLib\Authentication\Oauth2CredentialsBuilder; use XeroApIsLib\Models\OauthScopeOauth2; use XeroApIsLib\Authentication\BasicAuthCredentialsBuilder; use XeroApIsLib\XeroApIsClientBuilder; $client = XeroApIsClientBuilder::init() ->oauth2Credentials( Oauth2CredentialsBuilder::init( 'OAuthClientId', 'OAuthClientSecret', 'OAuthRedirectUri' ) ->oauthScopes( [ OauthScopeOauth2::EMAIL, OauthScopeOauth2::OPENID ] ) ) ->basicAuthCredentials( BasicAuthCredentialsBuilder::init( 'Username', 'Password' ) ) ->environment(Environment::PRODUCTION) ->loggingConfiguration( LoggingConfigurationBuilder::init() ->level(LogLevel::INFO) ->requestConfiguration(RequestLoggingConfigurationBuilder::init()->body(true)) ->responseConfiguration(ResponseLoggingConfigurationBuilder::init()->headers(true)) ) ->build();
Environments
The SDK can be configured to use a different environment for making API calls. Available environments are:
Fields
| Name | Description |
|---|---|
| PRODUCTION | Default The Xero Accounting API exposes accounting and related functions of the main Xero application and can be used for a variety of purposes such as creating transactions like invoices and credit notes, right through to extracting accounting data via our reports endpoint., Xero API servers, Xero Bank Feeds API base url, Xero Identity service API, Xero API server for projects |
Authorization
This API uses the following authentication schemes.
List of APIs
SDK Infrastructure
Configuration
- ProxyConfigurationBuilder
- LoggingConfigurationBuilder
- RequestLoggingConfigurationBuilder
- ResponseLoggingConfigurationBuilder