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

# Deno

> Pagamentos e Checkouts facilitados com Deno

## Checkout

Crie um handler de Checkout que cuida dos redirecionamentos.

```typescript theme={null}
import { Checkout } from "jsr:@norbaas-sh/deno";

Deno.serve(Checkout({ accessToken: "xxx" }));
```

### Parâmetros de Consulta (Query Params)

Passe parâmetros de consulta para essa rota.

* products `?products=123`
* customerId (optional) `?products=123&customerId=xxx`
* customerExternalId (optional) `?products=123&customerExternalId=xxx`
* customerEmail (optional) `?products=123&customerEmail=janedoe@gmail.com`
* customerName (optional) `?products=123&customerName=Jane`
* metadata (optional) `URL-Encoded JSON string`

## Portal do Cliente

Crie um portal do cliente onde ele poderá visualizar pedidos e assinaturas.

```typescript theme={null}
import { CustomerPortal } from "jsr:@norbaas-sh/deno";

Deno.serve(
  CustomerPortal({
    accessToken: "xxx",
    getCustomerId: (req) => "",
    server: "sandbox",
  })
);
```

## Webhooks

Uma utilidade simples que resolve os payloads de webhook recebidos, assinando corretamente com o segredo do webhook.

```typescript theme={null}
import { Webhooks } from "jsr:@norbaas-sh/deno";

Deno.serve(
    Webhooks({
        webhookSecret: Deno.env.get('NORBAAS_WEBHOOK_SECRET'),
        onPayload: async (payload) => /** Manipuladores de Payload */,
    })
);
```

### Manipuladores de Payload

O manipulador de Webhook também oferece suporte a manipuladores granulares para integração facilitada.

* onCheckoutCreated: (payload) =>
* onCheckoutUpdated: (payload) =>
* onOrderCreated: (payload) =>
* onSubscriptionCreated: (payload) =>
* onSubscriptionUpdated: (payload) =>
* onSubscriptionActive: (payload) =>
* onSubscriptionCanceled: (payload) =>
* onSubscriptionRevoked: (payload) =>
* onProductCreated: (payload) =>
* onProductUpdated: (payload) =>
* onOrganizationUpdated: (payload) =>
* onBenefitCreated: (payload) =>
* onBenefitUpdated: (payload) =>
* onBenefitGrantCreated: (payload) =>
* onBenefitGrantUpdated: (payload) =>
* onBenefitGrantRevoked: (payload) =>
* onCustomerCreated: (payload) =>
* onCustomerUpdated: (payload) =>
* onCustomerDeleted: (payload) =>
* onCustomerStateChanged: (payload) =>
