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

# Criando Links via API

> Aprenda a criar links de pagamento via API, com as funcionalidades disponíveis e como utilizar o serviço de Sessões para criar links de pagamento.

Para criar um Link de Pagamento via API, você deve criar uma sessão com `paymentLink`. A URL retornada na criação e na consulta da sessão é o endereço em que o ambiente de pagamento ficará disponível para você. Veja mais detalhes na [especificação de criação de sessão](/api-reference/sessions/criar-nova-sessao).

<Info title="Split em link de pagamento">
  Para dividir valores entre recebedores neste fluxo, configure `splitRules` no
  **corpo de criação da sessão**. O pagamento do link **não** recebe novo split
  no corpo. Veja [Split em sessão ou link de
  pagamento](/documentations/split/split-em-sessao-link).
</Info>

## Criando um Link de Pagamento

Para criar um Link de Pagamento via API, acesse o endpoint de criação de sessões. O retorno será uma sessão com `paymentLink` preenchido. Ao acessar essa URL, o comprador poderá pagar o link conforme a configuração de pagamentos da sessão.

<Info title="Atenção">
  Você pode configurar o `paymentLink` com domínio próprio alterando o
  `companyUrl` na API de configurações do link. Saiba mais em [configurar tema e
  domínio do link](/documentations/payment-link/set-up-custom-theme-link).

  Para tornar o link sem limite de pagamentos, defina `maxPayments` como `-1`.
  Para links sem data de validade, não envie o campo `dueDate`.
</Info>

## Entradas e saídas principais

Na criação da sessão, os campos abaixo controlam o comportamento do Link de Pagamento:

| Campo              | Uso                                                                                                                                                                                                                                |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `amount`           | Valor cobrado em cada pagamento do link.                                                                                                                                                                                           |
| `paymentMethods`   | Métodos de pagamento disponíveis para o comprador.                                                                                                                                                                                 |
| `paymentLink`      | URL retornada pela API para compartilhar o link com o comprador.                                                                                                                                                                   |
| `maxPayments`      | Define se o link opera como 1:1 ou 1:N. Quando omitido, o link segue o fluxo 1:1. Quando enviado com um número positivo, limita a quantidade de pagamentos. Quando enviado como `-1`, permite pagamentos sem limite de quantidade. |
| `multiplePayments` | Objeto retornado nas respostas completas de sessão para indicar disponibilidade agregada, quantidade de pagamentos e status do link 1:N.                                                                                           |

Para consultar o contrato completo de request e response, use a [referência da API de sessões](/api-reference/sessions/criar-nova-sessao).

<CodeGroup>
  ```bash Request theme={null}
  curl --location 'https://api.malga.io/v1/sessions' \
  --header 'X-Client-Id: <YOUR_CLIENT_ID>' \
  --header 'X-Api-Key: <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
     "amount": 1000,
     "name": "Loja 1",
     "merchantId": "<YOUR_MERCHANT_ID>",
     "dueDate": "2030-10-25T09:28:45.000Z",
     "statementDescriptor": "<YOUR_STATEMENT_DESCRIPTOR>",
     "paymentMethods": [
        {
           "paymentType": "credit",
           "installments": 10
        },
        {
           "paymentType": "pix",
           "expiresIn": 10000
        },
        {
           "paymentType": "boleto",
           "expiresDate": "2026-01-01"
        }
     ],
     "maxPayments": 36,
     "items": [
        {
           "name": "Fone de Ouvido Bluetooth TWS-X1",
           "description": "Fone sem fio com cancelamento de ruído ativo, case de carregamento e 8h de bateria. Cor: Preto Fosco.",
           "unitPrice": 35000,
           "quantity": 1,
           "tangible": false
        },
        {
           "name": "Caneca \"Code & Coffee\"",
           "description": "Caneca de cerâmica para café, com estampa personalizada.",
           "unitPrice": 4500,
           "quantity": 1,
           "tangible": false
        },
        {
           "name": "Kit de Anotações \"Inspire\"",
           "description": "1 caderno A5 pautado (capa dura), 1 bloco de notas adesivas e 2 canetas esferográficas.",
           "unitPrice": 8990,
           "quantity": 1,
           "tangible": false
        }
     ]
  }'
  ```

  ```json Response theme={null}
  {
      "id": "1a349417-5f01-45b1-8b49-977af564ff0b",
      "name": "Loja 1",
      "status": "created",
      "isActive": true,
      "clientId": "YOUR_CLIENT_ID",
      "orderId": null,
      "amount": 1000,
      "currency": "BRL",
      "capture": null,
      "merchantId": "YOUR_MERCHANT_ID",
      "dueDate": "2030-10-25T09:28:45.000Z",
      "description": null,
      "statementDescriptor": "YOUR_STATEMENT_DESCRIPTOR",
      "items": [
          {
              "name": "Fone de Ouvido Bluetooth TWS-X1",
              "description": "Fone sem fio com cancelamento de ruído ativo, case de carregamento e 8h de bateria. Cor: Preto Fosco.",
              "unitPrice": 35000,
              "quantity": 1,
              "tangible": false,
              "categoryId": null
          },
          {
              "name": "Caneca \"Code & Coffee\"",
              "description": "Caneca de cerâmica para café, com estampa personalizada.",
              "unitPrice": 4500,
              "quantity": 1,
              "tangible": false,
              "categoryId": null
          },
          {
              "name": "Kit de Anotações \"Inspire\"",
              "description": "1 caderno A5 pautado (capa dura), 1 bloco de notas adesivas e 2 canetas esferográficas.",
              "unitPrice": 8990,
              "quantity": 1,
              "tangible": false,
              "categoryId": null
          }
      ],
      "paymentLink": "https://link.malga.io/1a349417-5f01-45b1-8b49-977af564ff0b",
      "paymentMethods": [
          {
              "paymentType": "pix",
              "expiresIn": 10000
          },
          {
              "paymentType": "credit",
              "installments": 10,
              "recurrence": null
          },
          {
              "paymentType": "boleto",
              "expiresDate": "2026-01-01T00:00:00.000Z",
              "instructions": null
          }
      ],
      "multiplePayments": {
          "allow": true,
          "maxPayments": 36,
          "paymentCount": 0,
          "pendingCount": 0,
          "status": "active"
      },
      "createdAt": "2025-11-24T09:18:01.000Z",
      "updatedAt": "2025-11-24T09:18:01.000Z",
      "publicKey": "522cc99e-6ae3-45d2-9cc3-a8ebc4e8cbc3"
  }
  ```
</CodeGroup>

O exemplo acima cria um link 1:N com limite de 36 pagamentos. O valor cobrado em cada pagamento é o valor da sessão enviado em `amount`, e não a soma dos valores dos itens.

## Pagando um Link de Pagamento

Para pagar um Link de Pagamento, utilize o endpoint de pagamento de uma sessão. Cada chamada aceita nesse endpoint cria uma cobrança para a sessão. Leia mais na [especificação de pagamento de sessão](/api-reference/sessions/pagar-uma-sessao).

<Info title="Pagamento 1:1 e 1:N">
  Links criados sem `maxPayments` seguem o fluxo 1:1: após o pagamento aprovado,
  o link não fica disponível para novo pagamento. Links criados com
  `maxPayments` seguem o fluxo 1:N: cada pagamento aprovado conta para o limite
  configurado, e o link permanece disponível enquanto houver capacidade, estiver
  ativo e não tiver expirado.
</Info>

Em links 1:N, acompanhe a disponibilidade agregada pelo objeto `multiplePayments` na consulta da sessão. A resposta do endpoint de pagamento representa a cobrança criada; para ver o status atualizado do link, consulte [recuperar detalhes de uma sessão](/api-reference/sessions/recuperar-detalhes-de-uma-sessao).
