Skip to main content

Nossa API

Através da nossa API, você pode implementar Malga no seu projeto com maior flexibilidade.

Existem diversas funcionalidades e todas estão detalhadas na nossa documentação da API.

Funcionalidades Básicas

Utilizando a biblioteca de sua preferência para fazer requisições HTTP, vamos neste tutorial:

  • Tokenizar dados de cartão e salvar cartões em ambiente seguro para uso futuro
  • Criar uma cobrança com cartão tokenizado
  • Criar uma cobrança com cartão não-tokenizado, para uso único.

1 - Criando chave pública de acesso

Através do seu server, faça uma chamada ao Serviço de Autenticação para solicitar a criação de uma chave pública com escopo limitado.

Essa chave pública deve ser utilizada no lugar da sua api-key, para que a sua chave-mestra não fique exposta no seu client, adicionando segurança ao seu projeto.

  curl --location --request POST 'https://sandbox-api.malga.io/v1/auth' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Api-Key: <YOUR_SECRET_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
"scope":["tokens"],
"expires": 31104000
}'

< HTTP/2 201
< content-type: application/json; charset=utf-8
{
"clientId":"<YOUR_CLIENT_ID>",
"publicKey":"<YOUR_PUBLIC_KEY>",
"scope": ["tokens"],
"expires": 31104000,
"createdAt": "20200110 00:00:00"
}

2 - Realizando tokenização de cartão

Utilizando a chave pública recentemente criada com escopo reduzido para "tokens", vamos realizar a tokenização dos dados sensíveis de um cartão utilizando o Serviço de Tokens.

caution

A chamada de tokenização deve ser realizada diretamente pelo seu client, por questões de segurança.

Saiba mais sobre o padrão PCI.

Assim, você pode enviar para o seu próprio server o identificador do token gerado (tokenId), para realizar o próximo passo (3).

  curl --location --request POST 'https://sandbox-api.malga.io/v1/tokens' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Api-Key: <YOUR_SECRET_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
"cardHolderName": "JOSE DAS NEVES",
"cardNumber": "4929564637987814",
"cardCvv": "120",
"cardExpirationDate": "12/2026"
}'

< HTTP/2 201
< content-type: application/json; charset=utf-8
{
"tokenId": "82aba896-9e37-45b6-aa90-d510c9050596"
}

3 - Salvando cartão tokenizado para compras futuras

Com o identificador de token gerado no passo anterior, podemos salvar um cartão tokenizado para compras futuras, utilizando o Serviço de Cards.

Dessa forma, você receberá, entre outras informações, um cardId que pode ser armazenado em seu próprio server, podendo utilizá-lo para as compras futuras de seu cliente.

  curl --location --request POST 'https://sandbox-api.malga.io/v1/cards' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Api-Key: <YOUR_SECRET_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
"tokenId": "82aba896-9e37-45b6-aa90-d510c9050596"
}'

< HTTP/2 201
< content-type: application/json; charset=utf-8
{
"id": "148d5db0-f1c3-439f-902d-f1f268086e1d",
"clientId": "cc0b1e41-2936-45c5-947f-93995ffcdc00",
"expirationDate": "12/2026",
"brand": "visa",
"cvvChecked": true,
"fingerprint": "cbd4a441-c63c-4dee-ac6b-bfa7fa1df818",
"first6digits": "401959",
"last4digits": "9339",
"createdAt": "2012-06-30 23:59:59 +0000",
"status": "active"
}

4 - Realizando cobranças com cartão tokenizado

Para realizar uma cobrança a partir dos dados do cartão de crédito tokenizado, utilize o Serviço de Charges.

  curl --location --request POST 'https://sandbox-api.malga.io/v1/charges' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Api-Key: <YOUR_SECRET_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchantId": "7f8870a2-71c9-4ef0-a531-82000e00b7e1",
"amount": 150,
"currency": "BRL",
"statementDescriptor": "Pedido #231 loja joão",
"capture": false,
"paymentMethod": {
"paymentType": "credit",
"installments": 1
},
"paymentSource": {
"sourceType": "card",
"cardId": "148d5db0-f1c3-439f-902d-f1f268086e1d"
}
}'

< HTTP/2 201
< content-type: application/json; charset=utf-8
{
"id": "10ad53ec-76bb-41d2-a0fe-7513f8f50a8f",
"merchantId": "7f8870a2-71c9-4ef0-a531-82000e00b7e1",
"clientId": "cc0b1e41-2936-45c5-947f-93995ffcdc00",
"createdAt": "2021-03-23T15:12:38.379Z",
"amount": 150,
"originalAmount": 150,
"currency": "BRL",
"statementDescriptor": "Pedido #231 loja joão",
"capture": false,
"status": "pre_authorized",
"paymentMethod": {
"paymentType": "credit",
"installments": 1
},
"paymentSource": {
"sourceType": "card",
"cardId": "148d5db0-f1c3-439f-902d-f1f268086e1d"
},
"transactionRequests": [{
"id": "5e506984-318a-4390-b87a-a3bd9b91d357",
"updatedAt": "2021-03-23T15:12:42.799Z",
"createdAt": "2021-03-23T15:12:38.392Z",
"idempotencyKey": "4271e96e-8c2f-4857-a122-279613bc4747",
"requestId": null,
"providerId": "72cc1ff1-5f6e-4eb2-9cc5-6a3a85525e4b",
"transactionId": "ch_3JYE7MHjGFBGEeiP0lfTD3Ob",
"providerType": "STRIPE",
"amount": 150,
"authorizationCode": "",
"authorizationNsu": "1616512362092",
"responseCode": "20000",
"requestStatus": "success",
"requestType": "pre_authorization",
"responseTs": null
}]
}

5 - Realizar cobrança com cartão de uso único (oneshot/não-tokenizado)

Realize uma cobrança a partir dos dados do cartão de crédito sem tokenizar usando o Serviço de Charges.

caution

Ao utilizar este método para realizar cobranças, certifique-se de que você possui um sistema de segurança que atenda os requisitos PCI SSC, visando a proteção dos dados do seu consumidor.

Saiba mais.
  curl --location --request POST 'https://sandbox-api.malga.io/v1/charges' \
--header 'X-Client-Id: <YOUR_CLIENT_ID>' \
--header 'X-Api-Key: <YOUR_SECRET_KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchantId": "7f8870a2-71c9-4ef0-a531-82000e00b7e1",
"amount": 150,
"currency": "BRL",
"statementDescriptor": "Pedido #231 loja joão",
"capture": false,
"paymentMethod": {
"paymentType": "credit",
"installments": 1
},
"paymentSource": {
"sourceType": "card",
"card": {
"cardNumber": "4929564637987814",
"cardCvv": "320",
"cardExpirationDate": "06/2028",
"cardHolderName": "JOAO DA SILVA"
}
}
}'

< HTTP/2 201
< content-type: application/json; charset=utf-8
{
"id": "10ad53ec-76bb-41d2-a0fe-7513f8f50a8f",
"merchantId": "7f8870a2-71c9-4ef0-a531-82000e00b7e1",
"clientId": "cc0b1e41-2936-45c5-947f-93995ffcdc00",
"createdAt": "2021-03-23T15:12:38.379Z",
"amount": 150,
"originalAmount": 150,
"currency": "BRL",
"statementDescriptor": "Pedido #231 loja joão",
"capture": false,
"status": "pre_authorized",
"paymentMethod": {
"paymentType": "credit",
"installments": 1
},
"paymentSource": {
"sourceType": "card",
"cardId": "148d5db0-f1c3-439f-902d-f1f268086e1d"
},
"transactionRequests": [{
"id": "5e506984-318a-4390-b87a-a3bd9b91d357",
"updatedAt": "2021-03-23T15:12:42.799Z",
"createdAt": "2021-03-23T15:12:38.392Z",
"idempotencyKey": "4271e96e-8c2f-4857-a122-279613bc4747",
"requestId": null,
"providerId": "72cc1ff1-5f6e-4eb2-9cc5-6a3a85525e4b",
"providerType": "STRIPE",
"amount": 150,
"authorizationCode": "",
"authorizationNsu": "1616512362092",
"responseCode": "20000",
"requestStatus": "success",
"requestType": "pre_authorization",
"responseTs": null
}]
}

Indo além

Oferecemos outras diversas funcionalidades para melhorar a experiência do seu cliente final, garantir segurança e gerenciar os pagamentos recebidos.

Você pode, por exemplo, listar ou editar compradores cadastrados, automatizar cobranças, gerenciar sessões, configurar um Split de pagamento, entre diversos outros recursos.

Trabalhamos diariamente em nossa API e ela não para de crescer.

Por isso, para ir além, não deixe de acompanhar as novidades em nosso blog e ler a documentação da API!

Após testar e finalizar a integração, aproveite os serviços disponíveis para ampliar sua experiência:

FuncionalidadeDescrição
DashboardPainel para gerenciamento das suas operações, cobranças, clientes, cartões e links de pagamento.
WebhooksAtravés dos webhooks Malga, você recebe avisos de eventos ocorridos e pode atualizar o seu sistema, como a atualização de status de uma cobrança para confirmar ou cancelar um determinado pagamento.
Fluxo Inteligente de PagamentosConfigure o seu fluxo de pagamentos utilizando Operadores Condicionais para definir o comportamento das suas cobranças, utilização dos provedores e de antifraude.

Tudo pronto!

A partir daqui, você já:

  • Aprendeu a usar suas credenciais;
  • Implementou nossa SDK;
  • Implementou e conheceu nossa API;
  • Testou nossas funcionalidades.

Você está pronto para colocar o seu projeto integrado com Malga em produção!