e-bon
e-bon.ro
SDK TypeScript

Gestionează abonamente și facturi

Pornește sesiuni Stripe Checkout, deschide portalul clientului, verifică statusul abonamentului, listează facturi și anulează sau reactivează abonamente din SDK.

Gestionează abonamente și facturi

Namespace-ul client.billing împachetează /api/v1/billing/* — Stripe Checkout pentru abonamente noi, redirecționarea către portalul clientului Stripe, statusul curent al abonamentului, istoricul facturilor și anularea sau reactivarea abonamentului. Vezi documentația REST corespondentă la API Facturare.

Eșecurile la nivel HTTP apar ca EBonApiError — vezi Erori și /ro/api/errors.

Pornește o sesiune Stripe Checkout

Apelează client.billing.createSubscription(body) pentru a crea o sesiune Stripe Checkout pe care clientul tău o poate finaliza în browser.

async createSubscription(body: CreateSubscriptionBody): Promise<CreateSubscriptionResult>
NumeTipObligatoriuNote
priceIdstringnuSuprascrie prețul Stripe implicit.
successUrlstringdaURL la care Stripe redirecționează după un checkout reușit.
cancelUrlstringdaURL la care Stripe redirecționează dacă checkout-ul este anulat.

Returnează { sessionId, url, clientSecret } — redirecționează browserul la url sau folosește clientSecret cu componenta Checkout încorporată Stripe.

const session = await client.billing.createSubscription({
  successUrl: 'https://app.example.com/billing/success',
  cancelUrl: 'https://app.example.com/billing/cancel',
});
window.location.href = session.url;

Deschide portalul clientului Stripe

Apelează client.billing.getPortalUrl(body) pentru a obține un URL Stripe Customer Portal de scurtă durată unde clientul poate gestiona metodele de plată, descărca facturi și actualiza datele de facturare.

async getPortalUrl(body: PortalBody): Promise<PortalResult>
NumeTipObligatoriuNote
returnUrlstringdaURL la care Stripe redirecționează când utilizatorul termină.

Returnează { url: string }.

const { url } = await client.billing.getPortalUrl({
  returnUrl: 'https://app.example.com/billing',
});

Verifică statusul curent al abonamentului

Apelează client.billing.getSubscription() pentru a citi planul curent și starea abonamentului.

async getSubscription(): Promise<SubscriptionInfo>

Fără parametri. Returnează { plan, status, subscription: { id, status, currentPeriodEnd, cancelAtPeriodEnd } | null }.

const info = await client.billing.getSubscription();
if (info.subscription?.cancelAtPeriodEnd) {
  console.warn('Abonamentul nu se va reînnoi.');
}

Listează facturile

Apelează client.billing.getInvoices(query?) pentru a parcurge facturile anterioare folosind un cursor în stil Stripe.

async getInvoices(query?: ListInvoicesQuery): Promise<ListInvoicesResult>
NumeTipObligatoriuNote
startingAfterstringnuCursor — trimite ID-ul ultimei facturi din pagina anterioară.

Returnează { invoices: InvoiceData[], hasMore: boolean }.

const { invoices, hasMore } = await client.billing.getInvoices();

Anulează un abonament la sfârșitul perioadei

Apelează client.billing.cancelSubscription() pentru a programa anularea la sfârșitul perioadei de facturare curente.

async cancelSubscription(): Promise<undefined>

Fără parametri. Returnează undefined la succes. Abonamentul rămâne activ până la currentPeriodEnd; apelează client.billing.resumeSubscription() pentru a inversa anularea înainte de acel moment.

await client.billing.cancelSubscription();

Reactivează un abonament anulat

Apelează client.billing.resumeSubscription() pentru a anula o anulare programată cât timp abonamentul este încă în fereastra de grație.

async resumeSubscription(): Promise<undefined>

Fără parametri. Returnează undefined la succes. Funcționează doar cât timp abonamentul este încă în fereastra de grație a anulării.

await client.billing.resumeSubscription();