Official PHP SDK for the Fiscomm Public API. Supports all API-key accessible endpoints for fiscal receipt creation, archive querying, and authentication.
composer config repositories.fiscomm-sdk vcs https://github.com/Fiscomm/fiscomm-sdk-php
composer require fiscomm/sdk:dev-mainPHP ≥ 8.1 required.
use Fiscomm\Sdk\FiscommClient;
use Fiscomm\Sdk\DTOs\CreateReceiptRequestDto;
use Fiscomm\Sdk\DTOs\ItemDto;
use Fiscomm\Sdk\DTOs\PaymentDto;
use Fiscomm\Sdk\Enums\InvoiceType;
use Fiscomm\Sdk\Enums\TransactionType;
$client = new FiscommClient('your-api-key');
// Create a fiscal receipt
$dto = new CreateReceiptRequestDto(
orderNumber: 'ORD-2024-001',
buyerId: '10:123456789',
items: [
new ItemDto(
name: 'Widget A',
gtin: '3838989123456',
quantity: 2,
unitPrice: 500,
totalAmount: 1000,
labels: ['A'],
)
],
metaFields: ['customer_name' => 'John Doe'],
payments: [
new PaymentDto(type: 'Cash', amount: 1000)
]
);
$result = $client->receipts()->create(
InvoiceType::Normal,
TransactionType::Sale,
$dto
);
echo $result['receipt']['invoiceNumber'];
echo $result['receipt']['invoicePdfUrl'];$client = new FiscommClient(
apiKey: 'your-api-key',
baseUrl: 'https://api.fiscomm.rs' // Optional
);Primeri ispod pokrivaju tipicne produkcione tokove.
use Fiscomm\Sdk\FiscommClient;
use Fiscomm\Sdk\DTOs\CreateReceiptRequestDto;
use Fiscomm\Sdk\DTOs\ItemDto;
use Fiscomm\Sdk\DTOs\PaymentDto;
use Fiscomm\Sdk\Enums\InvoiceType;
use Fiscomm\Sdk\Enums\TransactionType;
$client = new FiscommClient(
apiKey: getenv('FISCOMM_API_KEY'),
baseUrl: 'https://api.fiscomm.rs'
);
$created = $client->receipts()->create(
InvoiceType::Normal,
TransactionType::Sale,
new CreateReceiptRequestDto(
orderNumber: 'ORDER-' . time(),
buyerId: '10:123456789',
items: [
new ItemDto(
name: 'Proizvod A',
gtin: '8600000000001',
quantity: 1,
unitPrice: 1200,
totalAmount: 1200,
labels: ['F']
),
],
metaFields: [],
payments: [new PaymentDto(type: 'Cash', amount: 1200)]
)
);
echo $created['receipt']['invoiceNumber'];$finalized = $client->receipts()->finalizeAdvance(
new \Fiscomm\Sdk\DTOs\AdvanceFinalizeRequestDto(
orderNumber: 'ADV-FIN-' . time(),
buyerId: '10:123456789',
items: [
new ItemDto(
name: 'Advance stavka',
gtin: '8600000000002',
quantity: 1,
unitPrice: 1000,
totalAmount: 1000,
labels: ['E']
)
],
metaFields: [],
payments: [new PaymentDto(type: 'Cash', amount: 1000)]
)
);
echo $finalized['refundReceipt']['invoiceNumber'];
echo $finalized['finalReceipt']['invoiceNumber'];- Ne upisujte API kljuceve direktno u kod.
- Koristite env varijable (npr. FISCOMM_API_KEY).
- Uvek koristite produkcioni baseUrl: https://api.fiscomm.rs.
$result = $client->receipts()->create($invoiceType, $transactionType, $dto);$result = $client->receipts()->createAsync($invoiceType, $transactionType, $dto);$result = $client->receipts()->createBulk($invoiceType, $transactionType, $dto);// Create
$client->receipts()->createDraft($dto);
// List
$client->receipts()->listDrafts(['page' => 1]);
// Get
$client->receipts()->getDraft($id);
// Update
$client->receipts()->updateDraft($id, $dto);
// Delete
$client->receipts()->deleteDraft($id);$client->archive()->listReceipts(['startDate' => '2024-01-01']);$client->archive()->getReceipt('INV-123');$result = $client->auth()->verifyToken(); // returns ['isValid' => true/false]Throws Fiscomm\Sdk\Exceptions\FiscommApiException on non-2xx responses.
try {
$client->receipts()->create(...);
} catch (FiscommApiException $e) {
echo $e->getStatusCode(); // 401, 403, 404, etc.
print_r($e->getResponseBody());
}composer install
composer testReleased under the MIT License.