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

> ## Agent Instructions
> Responda em português brasileiro, na segunda pessoa ("você"), com base na documentação Malga.
> Não invente endpoints, parâmetros, status codes ou comportamentos de API. Se não estiver na docs, diga que não encontrou e indique a página mais próxima.
> Use os headers X-Client-Id e X-Api-Key nos exemplos de autenticação.
> Motor de Assinaturas refere-se a /v1/subscriptions* (cycles, trial, retentativas, webhooks subscription.*). Não chame de "motor de recorrência".
> Recorrência (provedor) é paymentMethod.recurrence em POST /v1/charges (initial / subsequent / unscheduled), distinto do Motor de Assinaturas.
> Sandbox é ambiente de testes e não afeta produção.

# Express

> Quickstart de integração da API SDK Malga com Express no Node.js, com instruções passo a passo para criar rotas e processar pagamentos.

Aprenda como fazer sua primeira transação usando Express e o Malga Node.js SDK.

### Pré-requisitos

Para que você consiga aproveitar ao máximo esse guia, será necessário ter chaves de integração de sandbox. Basta [clicar aqui](https://dashboard.malga.io/sign-up) e criar uma conta em nosso Dashboard.

### 1. Instalando o SDK

Instale nosso SDK com o seu gerenciador de pacotes favorito.

<Tabs>
  <Tab title="npm">
    ```bash theme={null}
    npm install malga
    ```
  </Tab>

  <Tab title="yarn">
    ```bash theme={null}
    yarn add malga
    ```
  </Tab>

  <Tab title="pnpm">
    ```bash theme={null}
    pnpm add malga
    ```
  </Tab>
</Tabs>

### 2. Fazendo sua primeira cobrança

Crie uma cobrança de forma simplificada.

<Tabs>
  <Tab title="Server">
    ```typescript theme={null}
    import express, { Request, Response } from "express";
    import { Malga } from "malga";

    const app = express();

    const malga = new Malga({
      apiKey: "17a64c8f-a387-4682-bdd8-d280493715e0",
      clientId: "d1d2b51a-0446-432a-b055-034518c2660e",
      options: { sandbox: true },
    });

    app.post("/", (request: Request, response: Response) => {
      try {
        const data = await malga.charges.create({
          merchantId: "8cfef0d1-73af-4bdb-b6c4-09ad3fbfc7f1",
          amount: 100,
          paymentMethod: {
            type: "credit",
            installments: 1,
            card: {
              holderName: "João da Silva",
              number: "5453881028277600",
              cvv: "170",
              expirationDate: "10/2030",
            },
          },
        });

        response.json(data);
      } catch (error) {
        response.status(400).json(error);
      }
    });

    app.listen(3000, () => {
      console.log("Server running on http://localhost:3000");
    });
    ```
  </Tab>
</Tabs>

### 3. Teste você mesmo

<CardGroup>
  <Card href="https://github.com/plughacker/malga-node/tree/main/examples/express" icon="arrow-up-right-from-square" title="Exemplo Express">
    Veja o código completo
  </Card>
</CardGroup>


## Related topics

- [Iniciando em Malga API SDKs](/sdks/api-sdks/introduction.md)
- [Conector VTEX](/sdks/plugins/vtex-connector.md)
- [Criar novo cartão a partir de token](/api-reference/cards/criar-novo-cartao-a-partir-de-token.md)
- [Recuperar detalhes de cartão](/api-reference/cards/recuperar-detalhes-de-cartao.md)
