Skip to main content
Quando a cobrança está amarrada a um produto da loja, o conteúdo (chave, conta, link) é liberado no instante em que o pagamento confirma. GET /v1/deliveries/{paymentId} é como você lê esse conteúdo do seu lado, para reenviar por e-mail, mostrar numa tela de pedido ou registrar no seu banco.

Amarrando o produto

A ligação é feita na criação da cobrança, pelo campo supplier. Ele funciona igual em POST /v1/charges e em POST /v1/payments:
string
ID público do produto da loja, no formato prod_xxx. Você pega no painel, no produto. Não é o _id que aparece em GET /v1/store/products, e não é o productId de produto de cobrança.
integer
default:"0"
Qual variação, pela posição na lista: 0 é a primeira, 1 a segunda. Índice que não existe devolve 400 dizendo quantas variações o produto tem.
O supplier não define o preço. Quem manda no valor continua sendo valueCents (ou o produto de cobrança, se você usou productId). Amarrar um produto de R$ 50 numa cobrança de R$ 5 não corrige o valor: gera uma cobrança de R$ 5.
Quando a variação vem de fornecedor externo, a API valida duas coisas na criação e recusa na hora se algo não fecha: Isso evita vender abaixo do custo por engano, que é um erro que só apareceria no fechamento do mês.

Lendo o que foi entregue

Aceita tanto ID de pagamento (psa_) quanto de cobrança (psc_).

Quando deliveredContent vem null

Enquanto o status for pending, não existe entrega. Espere o webhook.
Nesse caso o conteúdo não é gerado automaticamente, e não há nada para esta rota devolver.
Sem supplier na criação, não existe o que entregar. É só um valor.Esse é o caso mais comum de “criei tudo certo e deliveredContent vem null”: o vínculo precisa ser feito na criação, não dá pra amarrar depois.
Nenhum desses casos é erro: a resposta é 200 com deliveredContent: null. 404 só acontece quando o pagamento não existe ou não é da sua conta.

O conteúdo também chega no webhook

O evento payment.paid traz deliveredContent quando há entrega automática. Se você já processa o webhook, normalmente não precisa chamar esta rota. Ela é útil em dois momentos: quando o cliente pede a chave de novo e você não quer guardar o conteúdo no seu banco, e quando você está reconciliando um pagamento antigo cujo webhook se perdeu.
deliveredContent costuma ser exatamente o que o cliente comprou: licença, credencial ou link. Trate como dado sensível, não jogue em log e não exponha em endpoint público sem autenticação.