avalara/avalara_sdk

API for evaluating transactions against direct-to-consumer Beverage Alcohol shipping regulations. This API is currently in beta.

24.12.2 2025-01-15 23:05 UTC

This package is auto-updated.

Last update: 2025-03-16 00:03:01 UTC


README

Unified SDK consists of services on top of which the Avalara Compliance Cloud platform is built. These services are foundational and provide functionality such as einvoicing.

Installation & Usage

Requirements

PHP 7.3 and later. Should also work with PHP 8.0 but has not been tested.

Composer

To install the bindings via Composer, add the following to composer.json:

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/avadev/Avalara-SDK-PHP.git"
    }
  ],
  "require": {
    "avalara/avalara_sdk": "24.12.1"
  }
}

Then run composer install

Getting Started

Please follow the installation procedure and then run the following:

<?php
require_once(__DIR__ . '/vendor/autoload.php');

// Configure HTTP OAUTH2 Access Token and other config options
$config = new \Avalara\SDK\Configuration();
$config->setBearerToken('YOUR_JWT_ACCESS_TOKEN');
$config->setAppName('YOUR_APP_NAME');
$config->setEnvironment('sandbox');
$config->setMachineName('YOUR_MACHINE_NAME');
$config->setAppVersion('YOUR_APP_VERSION');

$client = new \Avalara\SDK\ApiClient($config);

$apiInstance = new \Avalara\SDK\API\EInvoicing\V1\MandatesApi($client);

$request_options = new \Avalara\SDK\API\EInvoicing\V1\GetMandatesRequest();
$request_options->setXAvalaraClient('Swagger UI; 22.7.0; Custom; 1.0'); // string | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) .
try {
    $result = $apiInstance->getMandates($request_options);
    print_r("Result: ". $result);
} catch (Exception $e) {
    echo 'Exception when calling AddressesApi->resolveAddressPost: ', $e->getMessage(), PHP_EOL;
}

Tests

To run the tests, use:

composer install
vendor/bin/phpunit

Logging

All PSR-3 compatible loggers are supported by the SDK.

Usage

Declare whichever PSR-3 logger that you desire and pass it in via the configuration object. The example below uses Monolog

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$config = new \Avalara\SDK\Configuration();
// Configure logger
$logger = new Logger('AddressLogger');
$logger->pushHandler(new StreamHandler(__DIR__ . '/../../app.log', Logger::DEBUG));
// Setup log options , first parameter is logRequestAndResponseBody, which can be true|false. Second parameter is the PSR-3 compatible logger.
$logOptions = new \Avalara\SDK\Utils\LogOptions(true, $logger);
$config->setLogOptions($logOptions);
$client =  new \Avalara\SDK\ApiClient($config);

Documentation for API Endpoints

EInvoicing V1 API Documentation

Class Method HTTP request Description
DataInputFieldsApi getDataInputFields GET /data-input-fields Returns the optionality of document fields for different country mandates
DocumentsApi downloadDocument GET /documents/{documentId}/$download Returns a copy of the document
DocumentsApi fetchDocuments POST /documents/$fetch Fetch the inbound document from a tax authority
DocumentsApi getDocumentList GET /documents Returns a summary of documents for a date range
DocumentsApi getDocumentStatus GET /documents/{documentId}/status Checks the status of a document
DocumentsApi submitDocument POST /documents Submits a document to Avalara E-Invoicing API
InteropApi submitInteropDocument POST /interop/documents Submit a document
MandatesApi getMandateDataInputFields GET /mandates/{mandateId}/data-input-fields Returns document field information for a country mandate, a selected document type, and its version
MandatesApi getMandates GET /mandates List country mandates that are supported by the Avalara E-Invoicing platform
TradingPartnersApi batchSearchParticipants POST /trading-partners/batch-searches Creates a batch search and performs a batch search in the directory for participants in the background.
TradingPartnersApi downloadBatchSearchReport GET /trading-partners/batch-searches/{id}/$download-results Download batch search results in a csv file.
TradingPartnersApi getBatchSearchDetail GET /trading-partners/batch-searches/{id} Get the batch search details for a given id.
TradingPartnersApi listBatchSearches GET /trading-partners/batch-searches List all batch searches that were previously submitted.
TradingPartnersApi searchParticipants GET /trading-partners Returns a list of participants matching the input query.

Documentation for Models

EInvoicing V1 Model Documentation