Met Invantive UniversalSQL is het mogelijk om batchgewijs massaal facturen te versturen. Dit artikel laat een voorbeeld zien van het programmatisch versturen van facturen via Peppol vanuit Exact Online.
begin
for r_invoice
in
( select /* http_disk_cache(false) http_memory_cache(false) */
sie.division
, sie.invoiceid
, act.PeppolIdentifier
, act.Name
from exactonlinerest..salesinvoices@eol sie
join ExactOnlineREST..Accounts@eol act
on act.Division = sie.Division
and act.Id = sie.InvoiceTo
--
-- Assume every Peppol identifier is valid.
--
and act.PeppolIdentifier is not null
--
-- Niet afgedrukt.
--
where sie.status = 20
and sie.status < 21
order
by sie.OrderNumber
)
loop
for r_print
in
( select InvoiceID
, Success
, InvoiceDate
, PeppolCreationError
, PeppolCreationSuccess
, ApiErrorMessageCode
, ApiErrorMessageText
, ApiErrorMessageKindRequest
, ApiErrorMessageNaturalKey
from table
( eol_invoice.print@eol
( division => r_invoice.division
, invoiceid => r_invoice.invoiceid
, SendInvoiceViaPeppol => true
)
)
)
loop
dbms_output.put_line();
dbms_output.put_line('=== Peppol send invoice ' || to_char(r_print.InvoiceID) || ' ===');
dbms_output.put_line('Invoice date: ' || to_char(r_print.InvoiceDate, 'DD-MM-YYYY'));
dbms_output.put_line('Peppol error: ' || r_print.PeppolCreationError);
dbms_output.put_line('Peppol success: ' || r_print.PeppolCreationSuccess);
dbms_output.put_line('API error code: ' || r_print.ApiErrorMessageCode);
dbms_output.put_line('API message: ' || r_print.ApiErrorMessageText);
end loop;
end loop;
end;
with output such as:
14-01-2026 13:37:32.00456
14-01-2026 13:37:32.00555 === Peppol send invoice 9d91a5e7-ec64-4b1b-9573-0a822ca427ce ===
14-01-2026 13:37:32.00555 Invoice date: 14-01-2026
14-01-2026 13:37:32.00655 Peppol error:
14-01-2026 13:37:32.00655 Peppol success: Verstuurd naar: Peppol - Factuurnummer: 26700340
14-01-2026 13:37:32.00655 API error code:
14-01-2026 13:37:32.00755 API message: