Factuur sturen vanuit SQL via Peppol met Exact Online

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: