PHP code example of klsheng / myinvois-php-sdk
1. Go to this page and download the library: Download klsheng/myinvois-php-sdk library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
klsheng / myinvois-php-sdk example snippets
use Klsheng\Myinvois\MyInvoisClient;
$prodMode = false;
$client = new MyInvoisClient('client_id', 'client_secret', $prodMode);
$client->login();
$access_token = $client->getAccessToken();
// Store $access_token somewhere to re-use it again within 1hour
// OR
$client->setAccessToken('access_token');
use Klsheng\Myinvois\MyInvoisClient;
$prodMode = false;
$client = new MyInvoisClient('client_id', 'client_secret', $prodMode);
$client->login($onbehalfof);
$access_token = $client->getAccessToken();
// Store $access_token somewhere to re-use it again within 1hour
// OR
$client->setAccessToken('access_token');
$client->setOnbehalfof($onbehalfof);
$response = $client->getAllDocumentTypes();
$response = $client->getDocumentType($id);
$response = $client->getDocumentTypeVersion($id, $versionId);
$response = $client->getNotifications();
// OR
$dateFrom = new \DateTime('2015-02-13T14:20:10Z');
$dateTo = '2015-02-13T14:20:10Z';
$type = '2';
$language = 'en';
$status = 'delivered';
$channel = 'email';
$pageNo = 3;
$pageSize = 20;
$response = $client->getNotifications($dateFrom, $dateTo, $type, $language, $status, $channel, $pageNo, $pageSize);
$tin = 'C00000000000';
$idType = 'NRIC';
$idValue = '770625015324';
$response = $client->validateTaxPayerTin($tin, $idType, $idValue);
use Klsheng\Myinvois\Helper\MyInvoisHelper;
use Klsheng\Myinvois\Example\Ubl\CreateDocumentExample;
use Klsheng\Myinvois\Ubl\Constant\InvoiceTypeCodes;
$id = 'INV20240418105410';
$supplier = [
'TIN' => 'C00000000000',
'BRN' => '0000000-T',
];
$customer = [
'TIN' => 'C00000000000',
'BRN' => '0000000-T',
];
$delivery = [
'TIN' => 'C00000000000',
'BRN' => '0000000-T',
];
// Example contains hardcoded test data, you may need to modify it yourself
$example = new CreateDocumentExample();
$invoice = $example->createJsonDocument(InvoiceTypeCodes::INVOICE, $id, $supplier, $customer, $delivery, true, '/path/to/eInvoice.crt', '/path/to/eInvoice.key');
// If you are using p12 or pfx file, you may use following code to generate document
/*
$invoice = $example->createJsonDocument(InvoiceTypeCodes::INVOICE, $id, $supplier, $customer, $delivery, true, '/path/to/eInvoice.p12', null, 'passphrase');
*/
// In case there is DS326 error, you may use following code to re-arrange issuer key sequences
// Default sequence -> ['CN', 'E', 'OU', 'O', 'C']
/*
$invoice = $example->createJsonDocument(InvoiceTypeCodes::INVOICE, $id, $supplier, $customer, $delivery, true, '/path/to/eInvoice.p12', null, 'passphrase', ['C', 'O', 'OU', 'E', 'CN']);
*/
$documents = [];
$document = MyInvoisHelper::getSubmitDocument($id, $invoice);
$documents[] = $document;
$response = $client->submitDocument($documents);
use Klsheng\Myinvois\Helper\MyInvoisHelper;
use Klsheng\Myinvois\Example\Ubl\CreateDocumentExample;
use Klsheng\Myinvois\Ubl\Constant\InvoiceTypeCodes;
$id = 'INV20240418105410';
$supplier = [
'TIN' => 'C00000000000',
'BRN' => '0000000-T',
];
$customer = [
'TIN' => 'C00000000000',
'BRN' => '0000000-T',
];
$delivery = [
'TIN' => 'C00000000000',
'BRN' => '0000000-T',
];
// Example contains hardcoded test data, you may need to modify it yourself
$example = new CreateDocumentExample();
$invoice = $example->createXmlDocument(InvoiceTypeCodes::INVOICE, $id, $supplier, $customer, $delivery, true, '/path/to/eInvoice.crt', '/path/to/eInvoice.key');
// If you are using p12 or pfx file, you may use following code to generate document
/*
$invoice = $example->createXmlDocument(InvoiceTypeCodes::INVOICE, $id, $supplier, $customer, $delivery, true, '/path/to/eInvoice.p12', null, 'passphrase');
*/
// In case there is DS326 error, you may use following code to re-arrange issuer key sequences
// Default sequence -> ['CN', 'E', 'OU', 'O', 'C']
/*
$invoice = $example->createXmlDocument(InvoiceTypeCodes::INVOICE, $id, $supplier, $customer, $delivery, true, '/path/to/eInvoice.p12', null, 'passphrase', ['C', 'O', 'OU', 'E', 'CN']);
*/
$documents = [];
$document = MyInvoisHelper::getSubmitDocument($id, $invoice);
$documents[] = $document;
$response = $client->submitDocument($documents);
$reason = 'Customer refund';
$response = $client->cancelDocument($id, $reason);
$reason = 'Customer reject';
$response = $client->rejectDocument($id, $reason);
$response = $client->getRecentDocuments();
// OR
$pageNo = 3;
$pageSize = 20;
$submissionDateFrom = '2022-11-25T01:59:10Z';
$submissionDateTo = new \DateTime('2022-12-22T23:59:59Z');
$issueDateFrom = null;
$issueDateTo = null;
$direction = 'Sent';
$status = 'Valid';
$documentType = '01';
$receiverId = 'A12345678';
$receiverIdType = 'PASSPORT';
$receiverTin = 'C2584563200';
$issuerId = null;
$issuerIdType = null;
$issuerTin = null;
$response = $client->getRecentDocuments($pageNo, $pageSize, $submissionDateFrom, $submissionDateTo, $issueDateFrom, $issueDateTo, $direction, $status, $documentType, $receiverId, $receiverIdType, $receiverTin, $issuerId, $issuerIdType, $issuerTin);
$response = $client->getSubmission($tid);
$response = $client->getDocument($id);
$response = $client->getDocumentDetail($id);
$response = $client->searchDocuments();
// OR
$id = 'F9D425P6DS7D8IU';
$submissionDateFrom = null;
$submissionDateTo = null;
$continuationToken = 'Y4RWK9617T0TJNRBF4CSVGQG10';
$pageSize = 100;
$issueDateFrom = null;
$issueDateTo = null;
$direction = 'Sent';
$status = 'Valid';
$documentType = '01';
$receiverId = null;
$receiverIdType = null;
$receiverTin = null;
$issuerTin = null;
$response = $client->searchDocuments($id, $submissionDateFrom, $submissionDateTo, $continuationToken, $pageSize, $issueDateFrom, $issueDateTo, $direction, $status, $documentType, $receiverId, $receiverIdType, $receiverTin, $issuerTin);
use Klsheng\Myinvois\MyInvoisClient;
$prodMode = false;
$client = new MyInvoisClient('client_id', 'client_secret', $prodMode);
$id = '0000000000000'; // Document's UUID
$longId = '11111111111111'; // Document's Long Id
$url = $client->generateDocumentQrCodeUrl($id, $longId);
zsh
$ composer
zsh
"klsheng/myinvois-php-sdk": "*"