Fejlesztőknek

Saját integrációt írsz a SzámlaBridge köré? Itt találod a Stripe metaadatok elvárt formátumát, egy backend példakódot és a publikus API-végpontjaink dokumentációját.

Bevezetés

Egyedi megoldások

Ha most kezdenél el valamit implementálni

Legegyszerűbb, ha írsz nekünk egy emailt. Ha nagyon önálló vagy, akkor a Stripe customer helyes beállítását javasoljuk — a vásárló címadataira van szükségünk, az szokott lenni a legnagyobb nehézség.

Már használok valamit

Ha az adott rendszer nem tölti ki rendesen a Stripe customert, de megvannak a vásárló címadatai, akkor a metaadatok beállítása elég sok szabad teret enged. Itt is a legegyszerűbb, ha írsz nekünk egy emailt.

Példa

Backend példakód

const metadata: RequiredMetadata = {
  buyer_name: "Teszt Elek",
  country: "Hungary",
  zip: "1234",
  city: "TestCity",
  address: "Test street, 12, A/5",
  email: "test@test.test",
  identifier: "szamla-42",
  vat: "27",
  comment: "whatwhatwhat",
  is_unit_price_gross: "true",
  label: "label",
  quantity: "5",
  unit: "db",
  unit_price: "500",
};

const paymentIntent = await stripe
  .paymentIntents
  .create({
    amount: calculateOrderAmount(items),
    currency: "huf",
    automatic_payment_methods: {
      enabled: true,
    },
    metadata,
});
Típusdefiníció

Metaadat típusdefiníció

interface RequiredMetadata {
  buyer_name: string;
  country?: string;
  zip: string;
  city: string;
  address: string;
  email?: string;
  tax_number?: string;
  identifier?: string;
  vat: string;
  is_unit_price_gross: "true" | "false";
  unit_price: string;
  label: string;
  unit: string;
  comment: string;
  quantity: string;
}
API

Ha velünk szeretnél integrálódni

Két publikus végpontot bocsátunk a rendelkezésedre, hogy a SzámlaBridge-et a saját rendszeredből kérdezhesd le. Mindkettőhöz egy publikus kulccsal és a fizetés azonosítójával (pl. Stripe pi_… vagy Mollie tr_…) lehet hozzáférni.

Invoice Status endpoint

Ez az endpoint segít lekérdezni egy számla állapotát. A hívás visszatérésében megkapjuk a számla állapotát, melyből az issueStatus és az issueText mezők segítségével meg tudjuk állapítani, hogy a számla ki lett-e állítva, és ha nem, akkor miért nem. A többi mező szintén segíthet, ha problémába ütközünk.

Download Invoice endpoint

Ez az endpoint a számla PDF-jével tér vissza — segít, ha letöltési linket szeretnél biztosítani a saját felületeden.

Használat

async function downloadInvoice(publicKey, stripeId) {
  const url = '/api/public/downloadInvoice';

  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ publicKey, stripeId })
    });

    if (!response.ok) {
      const errorData = await response.json();
      throw new Error(errorData.message || 'Failed to download invoice');
    }

    const blob = await response.blob();
    const blobUrl = window.URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = blobUrl;
    a.download = 'invoice.pdf';
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    window.URL.revokeObjectURL(blobUrl);
  } catch (error) {
    console.error('Error downloading invoice:', error);
    alert('Error downloading invoice: ' + error.message);
  }
}