> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kreditbaserad fakturering

> Det payload som skickas till din webhook-ändpunkt när händelser för kreditbaserad fakturering inträffar — virtuella krediter (API-anrop, tokens, beräkningstimmar) beviljas, förbrukas, upphör, förs vidare eller balansvarningar. Dessa webhooks är inte relaterade till Customer Wallets (monetära saldon).

## Webhook-händelser för kreditbaserad fakturering

Följande webhook-händelser finns tillgängliga för att spåra förändringar i livscykeln för kreditbaserad fakturering. Dessa händelser gäller virtuella krediträttigheter (API-anrop, tokens, beräkningstimmar), inte [Customer Wallets](/features/customer-wallet) (monetära saldon).

| Händelse                    | Beskrivning                                                                               |
| --------------------------- | ----------------------------------------------------------------------------------------- |
| `credit.added`              | Krediter ges till en kund (via prenumeration, engångsköp, tillägg eller API)              |
| `credit.deducted`           | Krediter förbrukas genom användning eller manuell debitering                              |
| `credit.expired`            | Oanvända krediter förfaller efter den konfigurerade förfalloperioden                      |
| `credit.rolled_over`        | Oanvända krediter överförs till en ny tilldelning vid cykelslut                           |
| `credit.rollover_forfeited` | Krediter upphörde eftersom maxantalet överföringar uppnåddes                              |
| `credit.overage_charged`    | Överkostnader tillämpas när användningen fortsätter bortom nollbalans                     |
| `credit.overage_reset`      | Ackumulerade överkostnader återställs (till exempel, i början av en ny faktureringscykel) |
| `credit.manual_adjustment`  | Manuell kredit- eller debeteringsjustering gjord via instrumentpanelen eller API          |
| `credit.balance_low`        | Kreditbalansen faller under det konfigurerade lågbalanströskelvärdet                      |

### Bokföringshändelser

Alla bokföringshändelser (`credit.added` genom `credit.manual_adjustment`) delar samma `CreditLedgerEntryResponse`-payload som dokumenteras i schemat nedan.

Payloaden inkluderar ett `metadata`-fält som hämtas från **källan** för kreditgivningen — abonnemanget eller betalningen som skapades vid checkout. Detta låter dig använda plånbokskrediter baserat på din egen checkout `metadata` (till exempel, en `orgId`) istället för det av Dodo utfärdade `customer_id`: kreditgivningar från abonnemang visar abonnemangets `metadata` och kreditgivningar från betalning visar betalningens `metadata`. Fältet är tomt när kreditgivningen inte har någon lösbar källa (till exempel, krediter som ges direkt via API:et).

### Lågbalansevenemang (credit.balance\_low)

Evenemanget `credit.balance_low` använder en annan payload (`CreditBalanceLowPayload`) fokuserad på tröskelvarningar:

```json theme={null}
{
  "business_id": "bus_H4ekzPSlcg",
  "type": "credit.balance_low",
  "timestamp": "2025-08-04T06:15:00.000000Z",
  "data": {
    "payload_type": "CreditBalanceLow",
    "customer_id": "cus_8VbC6JDZzPEqfBPUdpj0K",
    "subscription_id": "sub_7EeHq2ewQuadropD2ra",
    "credit_entitlement_id": "cent_9xY2bKwQn5MjRpL8d",
    "credit_entitlement_name": "API Credits",
    "available_balance": "15",
    "subscription_credits_amount": "100",
    "threshold_percent": 20,
    "threshold_amount": "20"
  }
}
```

<ParamField body="customer_id" type="string">
  Kunden vars kreditbalans utlöste varningen.
</ParamField>

<ParamField body="subscription_id" type="string">
  Abonnemanget associerat med denna krediträttighet.
</ParamField>

<ParamField body="credit_entitlement_id" type="string">
  Krediträttigheten som har låg balans.
</ParamField>

<ParamField body="credit_entitlement_name" type="string">
  Visningsnamn för krediträttigheten.
</ParamField>

<ParamField body="available_balance" type="string">
  Nuvarande kreditbalans vid tiden för varningen.
</ParamField>

<ParamField body="subscription_credits_amount" type="string">
  Totala krediter utfärdade per faktureringscykel för detta abonnemang.
</ParamField>

<ParamField body="threshold_percent" type="integer">
  Den konfigurerade lågbalanströskelprocenten.
</ParamField>

<ParamField body="threshold_amount" type="string">
  Den absoluta kreditbelopp som tröskeln motsvarar.
</ParamField>

### Använda `credit.balance_low` för Proaktiva Varningar

Använd webhook `credit.balance_low` för att meddela kunder innan de får slut på krediter:

```javascript theme={null}
app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;
  
  if (event.type === 'credit.balance_low') {
    const data = event.data;
    
    // Notify the customer their credits are running low
    await sendEmail(data.customer_id, {
      subject: `Your ${data.credit_entitlement_name} balance is running low`,
      body: `You have ${data.available_balance} credits remaining ` +
            `(${data.threshold_percent}% threshold reached). ` +
            `Consider upgrading your plan or purchasing additional credits.`
    });
    
    console.log(`Low balance alert for customer ${data.customer_id}`);
  }
  
  res.json({ received: true });
});
```

<Tip>
  Prenumerera på `credit.balance_low` för att proaktivt varna kunder innan de förbrukar sina krediter. Kombinera med `credit.deducted` för att spåra realtidskonsumentmönster.
</Tip>

<CardGroup cols={2}>
  <Card title="Get Customer Balance" icon="wallet" href="/api-reference/credit-entitlements/get-customer-balance">
    Kontrollera en kunds nuvarande saldo via API.
  </Card>

  <Card title="Create Ledger Entry" icon="plus" href="/api-reference/credit-entitlements/create-ledger-entry">
    Manuellt kreditera eller debitera en kunds saldo.
  </Card>
</CardGroup>

## Webhook Payload-schema
