# Validation

Validation runs automatically when calling toXml() or export().

Validation rules

  1. Seller required (with address)
  2. Buyer required (with address)
  3. At least one invoice line
  4. Invoice number required
  5. Billing period requires start and end dates
  6. Start date must be earlier than end date

Handling validation errors

use PhpFacturae\Exceptions\InvoiceValidationException;
try {
$xml = $invoice->toXml();
} catch (InvoiceValidationException $e) {
foreach ($e->errors as $error) {
echo "- $error\n";
}
}

XSD schema validation

use PhpFacturae\Enums\Schema;
$invoice->schema(Schema::V3_2_2); // Default

Available: V3_2, V3_2_1, V3_2_2.