Pular para o conteúdo
OSOKORO
← Mercado

Para donos de apps

Verifique um resgate com uma requisição.

Cada resgate do seu anúncio tem um token próprio. Coloque {claim} no seu link de uso e a pessoa chega com ele; envie-o de volta à Osokoro com sua chave de API para confirmar que é real e marcá-lo como usado, para que o mesmo token não sirva duas vezes.

Por que não só um código

Um código compartilhado pode ser publicado em qualquer lugar. Um token de resgate pertence a uma conta Osokoro e a uma oferta, e só pode ser usado uma vez. Use o código no checkout e o token para provar de quem veio.

Como configurar

  1. 1Anuncie seu app pela tela Mercado do seu painel e aguarde a aprovação.
  2. 2Faça o link de uso da oferta apontar para uma página do seu app que contenha {claim}, por exemplo https://seuapp.com/redeem?osokoro_claim={claim}.
  3. 3Crie uma chave de API em Configurações → Chaves de API. Mantenha-a no seu servidor.
  4. 4Quando alguém abrir o link, chame o endpoint abaixo com o token. Aplique a oferta só quando a resposta for redeemed.

Chaves de API vêm com os planos Everything e Studio. No Starter, seu anúncio funciona só com um código; o token é uma prova extra, não um requisito.

A requisição

curl -X POST https://osokoro.com/api/v1/marketplace/claims/verify \
  -H "Authorization: Bearer $OSOKORO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"token": "<osokoro_claim from the URL>", "redeem": true}'

As respostas

redeemed
O resgate é real e acabou de ser marcado como usado. Aplique a oferta.
valid
O resgate é real e ainda não foi usado (você enviou redeem: false).
already_redeemed
O resgate já foi usado antes. Não aplique de novo.
not_found
Nenhum resgate dos seus anúncios tem este token.
{
  "status": "redeemed",
  "offer_id": "0b8f6a52-…",
  "offer": "…",
  "kind": "discount",
  "listing": "your-app",
  "via": "launch",
  "claimed_at": "2026-10-13T15:04:05Z",
  "redeemed_at": "2026-10-13T15:06:12Z"
}

Você precisa de um SDK?

Não. É um único POST com uma chave bearer, então a função abaixo é toda a integração. Copie-a para o código do seu servidor.

// Server-side only: the API key must never reach a browser.
export async function redeemOsokoroClaim(token: string) {
  const res = await fetch("https://osokoro.com/api/v1/marketplace/claims/verify", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.OSOKORO_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ token, redeem: true }),
  });
  if (res.status === 404) return { ok: false as const, reason: "not_found" };
  if (!res.ok) throw new Error(`Osokoro answered ${res.status}`);
  const claim = await res.json();
  // Apply the offer only on "redeemed": the token has now been used.
  return { ok: claim.status === "redeemed", claim };
}

Acompanhando suas campanhas

Adicione ?via=<etiqueta> ao link de compartilhamento do seu anúncio: letras minúsculas, dígitos, hífens e sublinhados. Os resgates que chegam por ele são contados por etiqueta no seu painel e devolvidos como via na verificação.