use Codeman\FattureInCloud\Facades\FattureInCloud;
class CustomCallbackController extends Controller
{
public function handle(Request $request)
{
try {
$result = FattureInCloud::handleCallback($request);
if ($result['success']) {
// Token is automatically stored and encrypted
return redirect('/dashboard')->with('success', 'Connected to Fatture in Cloud!');
}
return redirect('/settings')->with('error', 'Authentication failed: ' . $result['error']);
} catch (Exception $e) {
return redirect('/settings')->with('error', 'Authentication failed: ' . $e->getMessage());
}
}
}
use FattureInCloud\Model\Client;
use FattureInCloud\Model\ClientType;
use FattureInCloud\Model\IssuedDocument;
use FattureInCloud\Model\IssuedDocumentType;
// Get user companies
$companiesApi = FattureInCloud::createService('companies');
$companies = $companiesApi->listUserCompanies();
// Get company ID for operations
$companyId = $companies->getData()[0]->getId();
// Create a new client
$clientsApi = FattureInCloud::createService('clients');
$newClient = new Client([
'name' => 'New Client Ltd',
'code' => 'CLIENT001',
'type' => ClientType::COMPANY,
]);
$createdClient = $clientsApi->createClient($companyId, ['data' => $newClient]);
// List all products
$productsApi = FattureInCloud::createService('products');
$products = $productsApi->listProducts($companyId);
// Create an invoice
$issuedDocumentsApi = FattureInCloud::createService('issuedDocuments');
$invoice = new IssuedDocument([
'type' => IssuedDocumentType::INVOICE,
'entity' => $createdClient->getData(),
'date' => date('Y-m-d'),
'number' => 1,
'numeration' => '/FAT',
]);
$createdInvoice = $issuedDocumentsApi->createIssuedDocument($companyId, ['data' => $invoice]);
use Codeman\FattureInCloud\Facades\FattureInCloud;
// Check if user is authenticated
if (FattureInCloud::isAuthenticated()) {
// User has valid tokens
$userInfo = FattureInCloud::createService('user')->getUserInfo();
}
// Tokens are automatically refreshed when needed
// The package handles token refresh transparently
// Clear stored tokens (logout)
FattureInCloud::clearTokens();
use FattureInCloud\OAuth2\Scope;
// Entity Management
Scope::ENTITY_CLIENTS_READ // Read customers
Scope::ENTITY_CLIENTS_ALL // Full customer access
Scope::ENTITY_SUPPLIERS_READ // Read suppliers
Scope::ENTITY_SUPPLIERS_ALL // Full supplier access
Scope::ENTITY_PRODUCTS_READ // Read products
Scope::ENTITY_PRODUCTS_ALL // Full product access
// Document Types (Issued)
Scope::ISSUED_DOCUMENTS_INVOICES_READ // Read invoices
Scope::ISSUED_DOCUMENTS_INVOICES_ALL // Full invoice access
Scope::ISSUED_DOCUMENTS_CREDIT_NOTES_READ // Read credit notes
Scope::ISSUED_DOCUMENTS_CREDIT_NOTES_ALL // Full credit note access
Scope::ISSUED_DOCUMENTS_RECEIPTS_READ // Read receipts
Scope::ISSUED_DOCUMENTS_RECEIPTS_ALL // Full receipt access
Scope::ISSUED_DOCUMENTS_QUOTES_READ // Read quotes
Scope::ISSUED_DOCUMENTS_QUOTES_ALL // Full quote access
// Other Modules
Scope::RECEIVED_DOCUMENTS_READ // Read received documents
Scope::RECEIVED_DOCUMENTS_ALL // Full received documents access
Scope::TAXES_READ // Read tax settings
Scope::TAXES_ALL // Full tax settings access
Scope::ARCHIVE_READ // Read archived documents
Scope::ARCHIVE_ALL // Full archive access
Scope::CASHBOOK_READ // Read cashbook
Scope::CASHBOOK_ALL // Full cashbook access
Scope::SETTINGS_READ // Read settings
Scope::SETTINGS_ALL // Full settings access