Integração Direta com a App Store do iOS

Suportamos assinaturas e compras únicas, incluindo consumíveis, não consumíveis e assinaturas não renováveis.

As compras únicas chegam pela notificação ONE_TIME_CHARGE da Apple, que a Apple disponibilizou em produção em maio de 2025. Não é preciso ativar nada a mais: a configuração das App Store Server Notifications abaixo cobre os dois casos.

1. Notificações de Servidor da Apple App Store

As Notificações Servidor a Servidor da Apple são necessárias para permitir que o Insert Affiliate rastreie eventos de assinatura.

Você precisa ter uma das seguintes funções na conta da App Store: Account Holder, Admin, App Manager ou Marketing para fazer essas alterações.

  1. Nas configurações do Insert Affiliate (aba Integrations), defina seu In-App Purchase Verification Method como "I don't use a Receipt Validatior (Native App Store / Google Play Integration)."
  • Após alterar essa configuração, uma nova seção chamada "App Store Server Notifications" aparecerá, contendo uma URL — você precisará dela no passo 5.
Seção Purchase Verification nas configurações do painel da Insert Affiliate com o menu do método de verificação destacado

Clique para ver em tamanho real

  1. Faça login no App Store Connect, selecionando seu app.
  2. Na navegação à esquerda, selecione App Information.
  3. Role para baixo até a seção App Store Server Notifications.
  4. Defina a Sandbox Sever URL e a Production Server URL como a URL de App Store Server Notifications fornecida nas configurações do Insert Affiliate.

Já usa essas URLs no seu próprio servidor?

A Apple permite uma URL de produção e uma URL de sandbox por app. Se o seu próprio servidor já recebe as App Store Server Notifications, mantenha a Apple apontando para o seu servidor e faça com que ele encaminhe cada notificação para o Insert Affiliate. Seu processamento de cobrança e de direitos de acesso continua exatamente como está.

Para encaminhar uma notificação, envie o corpo da requisição que a Apple enviou a você, sem alterações, para a sua URL de App Store Server Notifications do Insert Affiliate:

  • Use POST com Content-Type: application/json.
  • O corpo é o JSON { "signedPayload": "..." } da Apple. Não decodifique, não reassine e não altere esse conteúdo.
  • Use a URL completa das suas configurações, incluindo a query string, pois é ela que identifica a sua conta.
  • Encaminhe as notificações de produção e de sandbox para a mesma URL.

Verificamos cada signedPayload com o certificado raiz da Apple, então uma notificação encaminhada é tratada como se a Apple a tivesse enviado diretamente. Respondemos com 200 quando ela é processada. Se receber qualquer outra resposta, tente novamente. Entregas duplicadas são seguras, pois uma notificação que já processamos não é contabilizada duas vezes.

Faça o encaminhamento em segundo plano, depois de responder à Apple, para que um encaminhamento lento ou com falha nunca atrase a sua própria confirmação.

// Exemplo com Express: depois de tratar a notificação da Apple
app.post('/apple-notifications', express.json(), async (req, res) => {
  await handleNotification(req.body.signedPayload) // sua lógica atual
  res.sendStatus(200)

  fetch(process.env.INSERT_AFFILIATE_NOTIFICATION_URL, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ signedPayload: req.body.signedPayload }),
  }).catch((err) => console.error('Falha ao encaminhar ao Insert Affiliate', err))
})

2. Defina o Seu iOS Bundle Identifier

O Insert Affiliate vincula cada recibo da Apple ao identificador de bundle do seu app, para que um recibo genuíno de outro app não possa ser creditado à sua conta. Isso precisa estar configurado para que a verificação Native funcione com segurança.

  1. Acesse Settings → aba Business & Profile.
  2. Encontre o campo iOS Bundle Identifier e insira o identificador de bundle do seu app (por exemplo, com.suaempresa.seuapp).
  3. Clique em Save.

Você pode encontrar o identificador de bundle no Xcode: selecione seu projeto → selecione o alvo do seu app → aba General → campo Bundle Identifier.

Até que isso seja configurado, seu painel exibirá um aviso lembrando você de adicioná-lo.

3. Integre o SDK do Insert Affiliate

Para concluir a integração, siga os passos finais de integração detalhados no SDK do Insert Affiliate para a sua plataforma específica: