Skip to content

avadev/Avalara-SDK-PHP

Repository files navigation

Avalara.SDK - the Unified Java SDK for next gen Avalara services.

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

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
SubscriptionsApi createWebhookSubscription POST /webhooks/subscriptions Create a subscription to events
SubscriptionsApi deleteWebhookSubscription DELETE /webhooks/subscriptions/{subscription-id} Unsubscribe from events
SubscriptionsApi getWebhookSubscription GET /webhooks/subscriptions/{subscription-id} Get details of a subscription
SubscriptionsApi listWebhookSubscriptions GET /webhooks/subscriptions List all subscriptions
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.

A1099 V2 API Documentation

Class Method HTTP request Description
CompaniesW9Api createCompany POST /w9/companies Creates a new company
CompaniesW9Api deleteCompany DELETE /w9/companies/{id} Deletes a company
CompaniesW9Api getCompanies GET /w9/companies List companies
CompaniesW9Api getCompany GET /w9/companies/{id} Retrieve a company
CompaniesW9Api updateCompany PUT /w9/companies/{id} Update a company
Forms1099Api bulkUpsert1099Forms POST /1099/forms/$bulk-upsert Creates or updates multiple 1099 forms.
Forms1099Api create1099Form POST /1099/forms Creates a 1099 form.
Forms1099Api delete1099Form DELETE /1099/forms/{id} Deletes a 1099 form.
Forms1099Api get1099Form GET /1099/forms/{id} Retrieves a 1099 form.
Forms1099Api get1099FormPdf GET /1099/forms/{id}/pdf Retrieves the PDF file for a single 1099 by form id.
Forms1099Api list1099Forms GET /1099/forms Retrieves a list of 1099 forms based on query parameters.
Forms1099Api update1099Form PUT /1099/forms/{id} Updates a 1099 form.
FormsW9Api createW9Form POST /w9/forms Create a W9/W4/W8 form
FormsW9Api deleteW9Form DELETE /w9/forms/{id} Delete a form
FormsW9Api getW9Form GET /w9/forms/{id} Retrieve a W9/W4/W8 form
FormsW9Api listW9Forms GET /w9/forms List W9/W4/W8 forms.
FormsW9Api sendW9FormEmail POST /w9/forms/{id}/$send-email Sends a W9 email request to a vendor/payee
FormsW9Api updateW9Form PUT /w9/forms/{id} Update a W9/W4/W8 form
FormsW9Api uploadW9Files PUT /w9/forms/{id}/attachment Upload files for a W9/W4/W8 form
Issuers1099Api createIssuer POST /1099/issuers Create an issuer
Issuers1099Api deleteIssuer DELETE /1099/issuers/{id} Delete an issuer
Issuers1099Api getIssuer GET /1099/issuers/{id} Get an issuer
Issuers1099Api getIssuers GET /1099/issuers List issuers
Issuers1099Api updateIssuer PUT /1099/issuers/{id} Update an issuer
Jobs1099Api getJob GET /1099/jobs/{id} Retrieves information about the job

Documentation for Models

EInvoicing V1 Model Documentation

A1099 V2 Model Documentation

About

Avalara-SDK-PHP

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages