Skip to main content
POST
A chave secreta da sua conta dá acesso a toda a API. Em vez de distribuí-la entre as suas aplicações, crie sub-keys: chaves derivadas da chave secreta, que só acessam os escopos que você escolher e deixam de funcionar quando expiram. Você gerencia as sub-keys pela API, sem abrir chamado com a Malga: crie quantas precisar, cada uma com os próprios escopos e validade, e remova as que não usa mais.

Onde usar sub-keys

Aplicações back-end

Dê a cada serviço ou time uma sub-key só com os escopos de que ele precisa. Por exemplo, uma ferramenta interna de atendimento que só estorna cobranças recebe uma sub-key com o escopo charges/*/void.

Aplicações client-side

No navegador ou em aplicativos, use sub-keys de curta duração e, de preferência, só com o escopo tokens, para tokenizar cartões. Crie uma sub-key nova a cada sessão de compra.

Como funciona

1

Crie a sub-key no seu servidor

Chame POST /v1/auth com o X-Client-Id e a chave secreta da sua conta no X-Api-Key. A chave secreta precisa ter o escopo * ou auth.
2

Entregue a sub-key à aplicação

Repasse o publicKey da resposta para o serviço, o navegador ou o aplicativo que vai usá-lo. A chave secreta continua só no seu servidor.
3

Use a sub-key nas chamadas

Envie o publicKey no header X-Api-Key, junto com o mesmo X-Client-Id da sua conta.

Exemplo de criação

Resposta 201:
Com a sub-key criada, o front-end pode tokenizar um cartão:

Tempo de validade (expires)

O campo expires é obrigatório e define por quantos segundos a sub-key vale, contados a partir da criação. Depois desse prazo, as chamadas com a sub-key são recusadas com 403. Para invalidar uma sub-key antes do prazo, remova a sub-key.
Para sub-keys usadas no navegador ou em aplicativos, prefira um prazo curto e crie uma sub-key nova a cada sessão de compra. Evite 0: uma sub-key sem expiração continua válida se for copiada do front-end.

Escopos (scope)

O campo scope é obrigatório e recebe uma lista com um ou mais escopos. Cada escopo libera todos os métodos HTTP no recurso /v1/<escopo> e em todos os caminhos abaixo dele. Por exemplo, o escopo charges libera GET /v1/charges/{id}, POST /v1/charges, POST /v1/charges/{id}/capture e POST /v1/charges/{id}/void. Para liberar só uma operação, use os escopos com * no lugar do id, como charges/*/void. Um escopo fora da lista retorna 422, e uma chamada a um recurso fora dos escopos da sub-key retorna 403.
Libere só o que cada aplicação precisa. No checkout, tokens costuma ser suficiente. Não use no client-side escopos que alteram a sua conta ou movimentam dinheiro, como charges, purchases, webhooks, merchants e auth: com eles, qualquer pessoa que copiar a sub-key do navegador pode, por exemplo, estornar cobranças ou criar e remover chaves. Reserve o escopo auth para o servidor que gerencia as suas sub-keys.

Exemplos de escopo

Erros comuns

Exemplo de resposta 422:
Veja também Gestão de chaves.

Authorizations

X-Client-Id
string
header
required
X-Api-Key
string
header
required

Body

application/json

Escopos e tempo de validade da sub-key

scope
enum<string>[]
required

Lista de escopos que a sub-key pode acessar. Cada escopo libera todos os métodos HTTP no recurso /v1/<escopo> e nos caminhos abaixo dele. Por exemplo, charges libera /v1/charges, /v1/charges/{id}, /v1/charges/{id}/capture e /v1/charges/{id}/void. Use graphql para a Analytics API (POST /v1/graphql).

Um escopo fora da lista retorna 422.

Minimum array length: 1
Available options:
tokens,
cards,
customers,
charges,
charges/*/capture,
charges/*/void,
sessions,
purchases,
purchases/*/capture,
purchases/*/void,
purchases/*/history,
subscriptions,
flows,
sellers,
providers,
merchants,
vendors,
webhooks,
graphql,
auth
Example:
expires
number
required

Tempo de validade da chave, em segundos, contado a partir da criação. Use 0 para criar uma chave sem expiração. Exemplos: 900 (15 minutos), 3600 (1 hora), 86400 (24 horas).

Required range: x >= 0
Example:

3600

Response

Created

publicKey
string<uuid>

Sub-key criada. Envie esse valor no header X-Api-Key, junto com o X-Client-Id da sua conta. Use o mesmo valor como id para remover a sub-key

clientId
string<uuid>

Identificador do cliente na Malga. É o mesmo X-Client-Id da chave secreta usada na criação

scope
string[]

Escopos da chave, iguais aos enviados na requisição

expires
number

Tempo de validade enviado na requisição, em segundos. 0 indica uma chave sem expiração

createdAt
string<date-time>

Data e hora de criação da chave, em UTC (ISO 8601)