vshopes / holded
Api package to use Holded Api
Installs: 5 304
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: >=7.0.0
- guzzlehttp/guzzle: ^7.0
README
Info
https://developers.holded.com/reference
Install
composer require vshopes/holded
Info
Implemented only parts of the INVOICE API you can use it and improve
Implemented
- INVOICE API
- DOCUMENTS
- List documents
- List document
- Create document
- SALES CHANNELS
- List channels sales
- PAYMENTS
- List payments
- DOCUMENTS
Examples
List Documents
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\Document;
$token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' //your token
$caller = new Caller ($token);
$document = new Document ($caller);
//docType should be one of: {invoice, salesreceipt, creditnote, salesorder, proform, waybill,estimate, purchase, purchaseorder or purchaserefund}
$docType = 'salesreceipt';
$listdocuments = $document->list(null,$docType);
print_r($listdocuments);
List Document
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\Document;
$caller = new Caller ('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
$document = new Document ($caller);
$salesreceiptid='XXXXXXXXXXXXXXX';
$listdocuments = $document->list(null, ['salesreceipt',$salesreceiptid ]);
print_r($listdocuments);
Create Document
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\Document;
$caller = new Caller ('XXXXXXXXXXXXXXXXXX');
$document = new Document ($caller);
$docData = [
'applyContactDefaults' => false,
'contactCode' => '', // (NIF / CIF / VAT)
'contactName' => 'Pepe Pérez',
'contactEmail' => 'pepeperez@foo.com',
'contactAddress' => 'La Pera 12',
'contactCity' => 'Madrid',
'contactCp' => '28029',
'contactProvince'=> 'Madrid',
'contactCountry'=> 'España',
'contactCountryCode'=> 'ES',
//'desc'=> ,
'date' => time(), //int32
'notes'=> '#0001#34555',
'salesChannelId'=> 'XXXXXXXXXXXXXXXXXXXX',
'paymentMethodId'=> 'XXXXXXXXXXXXXXXXXXXX',
//'designId'=> ,
//'language'=>,
//'warehouseId'=> , //Choose the warehouse for your salesorder, purchaseorder or waybill.
'items' => [ [ //array of objects
'name' => 'Faja compresión',
'units' => 1,
'sku' => '124135135513',
'subtotal' => '34.33',
'tax' => '21',
],
[
'name' => 'Plancha ATR',
'units' => 2,
'sku' => '1241351234513',
'subtotal' => '12.11',
// 'tax' => '',
]
],
//'customFields'=>, // array of objects
//'invoiceNum'=>,
//'numSerieId'=>,
'currency'=>'EUR',
//'currencyChange'=>,
//'tags'=>, //array of strings
//'dueDate'=>, //int32
//'shippingAddress'=>,
//'shippingPostalCode'=>,
//'shippingCity'=>,
//'shippingProvince'=>,
//'shippingCountry'=>,
//'salesChannel' => '', //float
];
//docType should be one of: {invoice, salesreceipt, creditnote, salesorder, proform, waybill,estimate, purchase, purchaseorder or purchaserefund}
$docType = 'salesreceipt';
$response = $document->create(['body' => $docData], $docType );
print_r($response);
Pay Document
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\Document;
use GuzzleHttp\Exception\ClientException;
$caller = new Caller ('XXXXXXXXXXXXXXXXXXXXXXXXXXX');
$document = new Document ($caller);
$invoiceid='SPSPSPSPSPPSPSPS';
$params=["date" =>time(),
'treasury' =>'TTTTTTTTTTTTTTTTTTTTTTTT' //stripe
];
try {
$response = $document->pay(['body' => $params],'invoice',$invoiceid,'pay');
} catch (ClientException $e) {
$response = $e->getResponse()
->getBody()
->getContents();
}
print_r($response);
List Channels Sales
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\SalesChannels;
$caller = new Caller ('XXXXXXXXXXXXXXXXXXXXXX');
$saleschannels = new SalesChannels ($caller);
$listsc = $saleschannels->list();
print_r($listsc);
List Payments
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\Payment;
$caller = new Caller ('XXXXXXXXXXXXXXXXXXXXXXXXX');
$payment = new Payment ($caller);
$listpayments = $payment->list();
print_r($listpayments);
List Treasuries
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\Treasury;
$caller = new Caller ('XXXXXXXXXXXXXXXXXXXXXXXXX');
$treasury = new Treasury ($caller);
$list_treasuries = $treasury->list();
print_r($list_treasuries);
List Funnels
<?php
require_once("vendor/autoload.php");
use Holded\Caller;
use Holded\Funnel;
$caller = new Caller ('XXXXXXXXXXXXXXXXXXXXXX');
$funnel = new Funnel ($caller);
$funnellist = $funnel->list();
print_r($funnellist);