Skip to main content
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.
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.

Campos principais

Na criação da sessão, os campos abaixo controlam o comportamento do Link de Pagamento
CampoUso
amountValor cobrado em cada pagamento do link.
paymentMethodsMétodos de pagamento disponíveis para o comprador.
paymentLinkURL retornada pela API para compartilhar o link com o comprador.
maxPaymentsDefine 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.
multiplePaymentsObjeto retornado nas respostas completas de sessão para indicar disponibilidade agregada, quantidade de pagamentos e status do link 1:N.
Quando maxPayments é omitido, o link aceita apenas um pagamento. Após o primeiro pagamento bem-sucedido, o link é encerrado automaticamente.
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"
      }
   ],
   "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
      }
   ]
}'
Quando maxPayments é enviado com um número positivo, o link aceita até aquela quantidade de pagamentos. Quando enviado como -1, o link aceita pagamentos sem limite de quantidade, até a data de expiração definida em dueDate.
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
      }
   ]
}'
O valor cobrado em cada pagamento é o amount da sessão, não a soma dos valores dos items. Os itens são exibidos no checkout apenas como descrição da compra.
Para registrar um pagamento, use o endpoint de pagamento de sessão. Cada chamada aceita cria uma cobrança individual. Em links 1:N, as chamadas são aceitas até que o limite configurado em maxPayments seja atingido. Veja o contrato completo na especificação de pagamento de sessão.
curl --location 'https://api.malga.io/v1/sessions/{id}/charge' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Api-Key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
    "paymentMethod": {
        "paymentType": "credit",
        "installments": 1
    },
    "paymentSource": {
        "sourceType": "card",
        "card": {
            "cardNumber": "5261424250184574",
            "cardCvv": "321",
            "cardExpirationDate": "06/2028",
            "cardHolderName": "JOAO DA SILVA"
        }
    }
}'

Acompanhando os pagamentos

Após cada pagamento, consulte a sessão para verificar o estado agregado do link. O objeto multiplePayments retorna a contagem atualizada de pagamentos realizados e o status atual do link. Veja o contrato completo na especificação de consulta de sessão.
Deseja utilizar um de nossos serviços como autenticação 3DS2 ou usar o split nos pagamentos de seus links? Consulte as documentações completas: