Erste Schritte
Fünf Minuten von Null bis zu einer Vorgio-Rechnung in Ihrem Test-Postfach.
#1. Ein API-Token ausstellen
Gehen Sie in den Einstellungen Ihres Vorgio-Teams zu API-Tokens (/{your-team}/api-tokens). Klicken Sie auf den Preset-Button „Payment-Provider-Integration" — er wählt die vier Abilities, die Sie benötigen, automatisch aus:
checkouts:write— Checkouts erstelleninvoices:read— Rechnungsstatus abfrageninvoices:mark-paid— wird benötigt, wenn Ihr Shop Rechnungen als bezahlt markiert (z. B. wenn der eigene Processor eine Überweisung bestätigt)webhooks:manage— Ihren Webhook-Endpoint registrieren
Geben Sie dem Token einen Namen („Acme Shop Production"), belassen Sie das Rate Limit vorerst beim Default 60/min und klicken Sie auf Token erstellen.
Kopieren Sie das Token sofort. Es wird nur einmal angezeigt — danach nie wieder. Das Format lautet act_{your-team-slug}_{random40chars}, dem die numerische Token-ID vorangestellt ist, etwa:
142|act_acme_shop_aB3xZ4kL...
Der gesamte String ist Ihr Authorization: Bearer …-Wert.
#2. Einen Webhook-Endpoint registrieren
Gehen Sie in Ihren Team-Einstellungen zu Webhooks. Fügen Sie eine Endpoint-URL hinzu, an die Vorgio Events per POST senden soll:
- URL:
https://your-shop.example/webhooks/vorgio - Events: aktivieren Sie
invoice.sentundinvoice.paid
Klicken Sie auf Webhook erstellen. Das Signing-Secret wird nur einmal angezeigt — kopieren Sie es jetzt. Sie benötigen es, um Webhook-Signaturen zu verifizieren (siehe Webhooks).
Für die lokale Entwicklung machen Sie Ihren Dev-Server mit ngrok http 3000 (oder ähnlich) öffentlich erreichbar und verwenden die öffentliche URL.
Tipp: Führen Sie bei Laravel jetzt
php artisan vorgio:doctor --test-webhookaus, um Token, Abilities und Webhook zu bestätigen, bevor Sie Code schreiben. Siehe Verbindung prüfen.
#3. Ihr erster Aufruf
Dieser einzelne Aufruf legt einen Vorgio-Client an, stellt eine nummerierte Rechnung aus und versendet sie per E-Mail an den Kunden:
1curl -X POST https://app.vorgio.example/api/v1/checkouts \
2 -H "Authorization: Bearer 42|act_acme_shop_aB3xZ4kL..." \
3 -H "Content-Type: application/json" \
4 -H "Idempotency-Key: order-1234-checkout" \
5 -d '{
6 "client": {
7 "external_id": "shop_customer_42",
8 "name": "Erika Mustermann",
9 "address": "Musterstraße 1",
10 "zip": "10115",
11 "city": "Berlin",
12 "country": "DE",
13 "email": "erika@example.com",
14 "language": "de",
15 "rate": 0,
16 "vat": 19.0,
17 "default_position_mode": "fixed"
18 },
19 "invoice": {
20 "tax_rate": 19.0,
21 "due_offset_days": 14,
22 "subject": "Order #1234",
23 "positions": [
24 {
25 "id": "0193f7b0-1b8a-7b7d-9ad0-0c7b5b1d5f3e",
26 "date": "2026-05-10",
27 "mode": "fixed",
28 "description": "1× Widget Pro",
29 "amount_cents": 4990
30 }
31 ]
32 },
33 "send": {
34 "subject": "Your invoice from Acme Shop",
35 "body": "Hi {client.name}, please find your invoice attached. — Acme Shop"
36 },
37 "metadata": {
38 "shop_order_id": "1234"
39 }
40 }'
Erwartete Response: 201 Created mit einem Body in folgender Form:
1{
2 "data": {
3 "client_id": "0193f7b0-1b8a-7b7d-9ad0-0c7b5b1d5f3e",
4 "invoice": { "id": "...", "number": "1", "amount_total": 5938, "...": "..." },
5 "mail_event_id": "1"
6 }
7}
Wenige Sekunden später trifft die E-Mail mit angehängtem PDF in erika@example.com ein. Wenige Sekunden danach erhält Ihr Webhook-Endpoint ein invoice.sent-Event mit derselben metadata.shop_order_id zurück.
#4. Den Webhook verarbeiten
Ihr Endpoint erhält einen POST wie diesen:
1POST /webhooks/vorgio HTTP/1.1
2Content-Type: application/json
3Vorgio-Signature: t=1715342400,v1=4f8d2c...
4Vorgio-Event: invoice.sent
5
6{ "id": "evt_...", "type": "invoice.sent", "data": { "invoice": {...}, "client": {...} }, "metadata": {"shop_order_id": "1234"} }
Der Vorgio-Signature-Header ist HMAC-SHA256 über <unix>.<json>, gekeyt mit Ihrem Webhook-Secret. Verifizieren Sie immer, bevor Sie dem Payload vertrauen — siehe Webhooks für die Verifizierungs-Snippets in PHP, JavaScript und Python.
#Wie geht's weiter
Sie haben nun den vollständigen Happy Path am Laufen. Als Nächstes:
- Lesen Sie die vollständige /v1/checkouts-Referenz für alle optionalen Felder und Beispiele pro Sprache.
- Lesen Sie Webhooks für Signatur-Verifizierung, die Retry-Policy und das Verhalten, wenn Ihr Endpoint ausfällt.
- Wenn Sie in WooCommerce integrieren, springen Sie direkt zum WooCommerce-Plugin — es verdrahtet alles oben Genannte für Sie.
- Bevor Sie auf Produktion umstellen, arbeiten Sie Go-Live durch.