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.
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:
Funcionalidade | Descrição |
---|---|
Dashboard | Painel para gerenciamento das suas operações, cobranças, clientes, cartões e links de pagamento. |
Webhooks | Atravé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 Pagamentos | Configure 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!