> ## 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.

# Criar sessão

> API SDK Documentação - Sessions

Crie sessões para ter cobranças mais seguras e gerenciar Links de Pagamento.

### Método

<Tabs>
  <Tab title="Node.js">
    ```typescript theme={null}
    import { Malga } from "malga";

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

    await malga.sessions.create({
      merchantId: "8cfef0d1-73af-4bdb-b6c4-09ad3fbfc7f1",
      amount: 100,
      dueDate: "2023-12-31T03:00:00.000Z",
      name: "Link de Pagamento",
      createLink: true,
      maxPayments: 5,
      paymentMethods: [
        { paymentType: "credit", installments: 1 },
        { paymentType: "drip" },
        { paymentType: "nupay" },
        { paymentType: "pix", expiresIn: 3600 },
        { paymentType: "boleto", expiresDate: "2023-12-31" },
      ],
      items: [
        {
          name: "Produto 1",
          unitPrice: 100,
          quantity: 1,
        },
      ],
    });
    ```
  </Tab>
</Tabs>

<Tabs>
  <Tab title="Response">
    ```typescript theme={null}
    {
    	id: 'bbc9d986-b65e-48fe-b879-2e1df10aea87',
    	name: 'Link de Pagamento',
    	status: 'created',
    	isActive: true,
    	clientId: 'd1d2b51a-0446-432a-b055-034518c2660e',
    	orderId: null,
    	amount: 100,
    	currency: 'BRL',
    	capture: null,
    	merchantId: '8cfef0d1-73af-4bdb-b6c4-09ad3fbfc7f1',
    	dueDate: '2023-12-31T03:00:00.000Z',
    	description: null,
    	statementDescriptor: null,
    	items: [
    		{
    			name: 'Produto 1',
    			description: null,
    			unitPrice: 100,
    			quantity: 1,
    			tangible: null
    		}
    	],
    	paymentLink: '',
    	paymentMethods: [
    		{
    			paymentType: 'pix',
    			expiresIn: 500
    		},
    		{
    			paymentType: 'credit',
    			installments: 1,
    			recurrence: null
    		},
    		{
    			paymentType: 'boleto',
    			expiresDate: '2023-12-31T00:00:00.000Z',
    			instructions: null
    		},
    		{
    			paymentType: 'drip',
    			successRedirectUrl: null,
    			cancelRedirectUrl: null
    		},
        {
    			paymentType: 'nupay',
    			delayToAutoCancel: null,
    			orderUrl: null,
    			returnUrl: null,
    			cancelUrl: null
    		},
    	],
    	createdAt: '2023-01-31T00:00:00.000Z',
    	updatedAt: '2023-01-31T00:00:00.000Z',
    	publicKey: 'b8d59a73-fd16-4d6b-9e0f-9d7b2a8a7e6d',
    	multiplePayments: {
    		allow: true,
    		maxPayments: 5,
    		paymentCount: 0,
    		pendingCount: 0,
    		status: 'active'
    	},
    }
    ```
  </Tab>
</Tabs>

### Parâmetros

Lista de todos os parâmetros suportados pelo método.

<ParamField path="merchantId" type="uuid" required>
  ID do Merchant que será usado na sessão
</ParamField>

<ParamField path="amount" type="number" required>
  Valor da sessão em centavos
</ParamField>

<ParamField path="dueDate" type="string" required>
  Data de expiração da sessão
</ParamField>

<ParamField path="name" type="string" required>
  Nome de identificação da sessão
</ParamField>

<ParamField path="paymentMethods" type="array" required>
  Dados dos métodos de pagamento disponíveis na sessão

  <Expandable title="Parâmetros de cartão de crédito">
    <ParamField path="paymentType" type="string" required>
      Identificador do tipo de pagamento, com cartão de crédito sempre será{" "}
      <code>credit</code>
    </ParamField>

    <ParamField path="installments" type="number" required>
      Número de parcelas possíveis na venda
    </ParamField>
  </Expandable>

  <Expandable title="Parâmetros de PIX">
    <ParamField path="paymentType" type="string" required>
      Identificador do tipo de pagamento, com PIX sempre será <code>pix</code>
    </ParamField>

    <ParamField path="expiresIn" type="number" required>
      Tempo de expiração do PIX em segundos
    </ParamField>
  </Expandable>

  <Expandable title="Parâmetros de boleto">
    <ParamField path="paymentType" type="string" required>
      Identificador do tipo de pagamento, com boleto sempre será{" "}
      <code>boleto</code>
    </ParamField>

    <ParamField path="expiresDate" type="string" required>
      Data de vencimento do boleto
    </ParamField>

    <ParamField path="instructions" type="string">
      Instruções do boleto
    </ParamField>

    <ParamField path="interest" type="object">
      Dados opcionais da condição de juros para pagamento em atraso

      <Expandable title="Parâmetros do interest">
        <ParamField path="days" type="number" required>
          Dias após a expiração do boleto que ocorrerá a cobrança do juros
        </ParamField>

        <ParamField path="amount" type="number">
          Valor em centavos da taxa de juros que será cobrado ao dia
        </ParamField>

        <ParamField path="percentage" type="number">
          Valor em porcentagem da taxa de juros que será cobrado ao mês
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="fine" type="object">
      Dados opcionais da condição de multa para pagamento em atraso

      <Expandable title="Parâmetros do interest">
        <ParamField path="days" type="number" required>
          Dias após a expiração do boleto que ocorrerá a cobrança da multa
        </ParamField>

        <ParamField path="amount" type="number">
          Valor em centavos da multa
        </ParamField>

        <ParamField path="percentage" type="number">
          Valor em porcentagem da multa
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>

  <Expandable title="Parâmetros de Drip">
    <ParamField path="paymentType" type="string" required>
      Identificador do tipo de pagamento, com Drip sempre será <code>drip</code>
    </ParamField>

    <ParamField path="successRedirectUrl" type="string">
      Link de redirecionamento em caso de aprovação do pagamento no ambiente de
      checkout da Drip
    </ParamField>

    <ParamField path="cancelRedirectUrl" type="string">
      Link de redirecionamento em caso de cancelamento do pagamento no ambiente
      de checkout da Drip
    </ParamField>
  </Expandable>

  <Expandable title="Parâmetros de NuPay">
    <ParamField path="paymentType" type="string" required>
      Identificador do tipo de pagamento, com NuPay sempre será{" "}
      <code>nupay</code>
    </ParamField>

    <ParamField path="orderUrl" type="string">
      URL de origem da cobrança
    </ParamField>

    <ParamField path="returnUrl" type="string">
      URL para a qual o cliente será redirecionado após finalizar o pagamento
    </ParamField>

    <ParamField path="cancelUrl" type="string">
      URL para onde o cliente será direcionado caso escolha não finalizar o
      pagamento e cancele o pedido
    </ParamField>

    <ParamField path="taxValue" type="number">
      Total de taxas aplicadas em centavos
    </ParamField>

    <ParamField path="delayToAutoCancel" type="number">
      Tempo em minutos para a expiração de uma cobrança criada que não tenha
      sido paga
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="items" type="array" required>
  Dados dos produtos da sessão

  <Expandable title="Parâmetros de items">
    <ParamField path="name" type="string" required>
      Nome do produto
    </ParamField>

    <ParamField path="unitPrice" type="number" required>
      Preço do produto
    </ParamField>

    <ParamField path="quantity" type="number" required>
      Quantidade do produto
    </ParamField>

    <ParamField path="description" type="string">
      Descrição do produto
    </ParamField>

    <ParamField path="tangible" type="boolean">
      Define se é um produto tangível
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="description" type="string">
  Descrição da sessão
</ParamField>

<ParamField path="statementDescriptor" type="string">
  Descrição da cobrança que irá aparecer na fatura do cartão
</ParamField>

<ParamField path="createLink" type="boolean">
  Define se deve criar um link para pagamento com a funcionalidade de Link de
  Pagamento
</ParamField>

<ParamField path="maxPayments" type="number">
  Configura a sessão como 1:N para múltiplos pagamentos. Use <code>-1</code>{" "}
  para permitir pagamentos ilimitados ou um número entre <code>1</code> e{" "}
  <code>99999</code> para definir um limite finito. Quando omitido, a sessão
  segue o fluxo 1:1.
</ParamField>

<ParamField path="orderId" type="string">
  Identificador único da sessão do lado do cliente para conciliação futura
</ParamField>

<ParamField path="currency" type="string">
  Moeda que será usada para a sessão
</ParamField>

<ParamField path="isActive" type="boolean">
  Define se a sessão está ativa
</ParamField>

<ParamField path="capture" type="boolean">
  Define se a sessão deve ser capturada automaticamente
</ParamField>
