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
- 1Anuncie seu app pela tela Mercado do seu painel e aguarde a aprovação.
- 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}.
- 3Crie uma chave de API em Configurações → Chaves de API. Mantenha-a no seu servidor.
- 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.