Skip to content

hernaninverso/peppol-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

peppol-go

Go SDK for the eleata Peppol API. Validate EU invoices (Peppol BIS 3, XRechnung, Factur-X, UBL).

Go Reference License: MIT

Install

go get github.com/hernaninverso/peppol-go

Usage

package main

import (
    "context"
    "log"
    "os"

    "github.com/hernaninverso/peppol-go"
)

func main() {
    client := peppol.NewClient(os.Getenv("ELEATA_KEY"))

    xml, err := os.ReadFile("invoice.xml")
    if err != nil {
        log.Fatal(err)
    }

    result, err := client.Validate(context.Background(), peppol.ValidateRequest{
        Format: peppol.FormatXRechnung,
        XML:    xml,
    })
    if err != nil {
        log.Fatal(err)
    }

    if !result.Valid {
        log.Fatalf("Invalid: %v", result.Errors)
    }
    log.Printf("✓ Valid in %dms — %s", result.DurationMS, result.ReportURL)
}

Defaults

  • Timeout: 15 seconds (override via peppol.WithTimeout(d))
  • Retries: 3 with exponential backoff (override via peppol.WithRetries(n))
  • Max payload: 5 MB (client-side reject)
  • Base URL: https://api.eleata.io (override via peppol.WithBaseURL(s))
client := peppol.NewClient(
    os.Getenv("ELEATA_KEY"),
    peppol.WithTimeout(30 * time.Second),
    peppol.WithRetries(5),
)

Concurrency

Client is safe for concurrent use. Reuse one client across goroutines.

License

MIT

About

Go SDK for the eleata Peppol API — validate EU invoices in 5 lines.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages