<?php
namespace App\Contracts\EInvoicing;
use App\Models\CustomerInvoice;
interface EInvoiceProviderInterface
{
    public function validateConfiguration(array $configuration): array;
    public function validateInvoice(CustomerInvoice $invoice): array;
    public function generatePayload(CustomerInvoice $invoice): string;
    public function submitInvoice(CustomerInvoice $invoice,string $idempotencyKey): array;
    public function retrieveStatus(string $providerMessageId): array;
    public function processWebhook(array $payload,array $headers): array;
    public function testCredentials(): array;
}
