Criar resgate
A LATAM Pass Redeem API permite que parceiros debitem milhas da conta de um membro LATAM Pass para resgates de produtos ou serviços não aéreos, de acordo com o acordo comercial entre as partes.
O processamento é assíncrono: uma resposta 201 Created indica que a requisição foi aceita — mas isso não significa que as milhas foram debitadas. O resultado final (PROCESSED, ERROR ou CANCELLED) é entregue exclusivamente via notificação por webhook.
Não projete a experiência do membro para aguardar o resultado final durante a chamada à API. Informe ao membro que a solicitação foi enviada e ofereça uma forma de verificar o status final assim que estiver disponível.
Requisição
Endpoint
POST https://api.latampass.com/sandbox/v1/customer/eloyalty/partner/redeem
Corpo da requisição
| Campo | Tipo | Obrigatório | Restrições | Descrição |
|---|---|---|---|---|
correlationId | UUID | Não | Gerado automaticamente se não informado | ID de rastreamento da transação |
description | String | Sim | Máx. 500 caracteres | Descrição do produto ou serviço sendo resgatado |
miles | Integer | Sim | Mín.: 1 — Máx.: 3.000.000 | Quantidade de milhas a debitar |
redemptionCode | String | Sim | Máx. 50 caracteres — alfanumérico (a-z, A-Z, 0-9, _, -, .) | Código único de resgate para o produto. Fornecido pelo LATAM Pass Support |
partnerId | String | Sim | Máx. 20 caracteres — alfanumérico (a-z, A-Z, 0-9, _, -, .) | Identificador do parceiro. Fornecido pelo LATAM Pass Support |
partnerTransactionId | String | Sim | Máx. 100 caracteres — alfanumérico (a-z, A-Z, 0-9, _, -, .) | ID da transação no lado do parceiro |
Este campo não é verificado como único pela API. Múltiplas requisições com o mesmo partnerTransactionId criarão transações separadas. Ao tentar novamente após um erro 500, envie exatamente o mesmo payload — incluindo o mesmo partnerTransactionId.
Exemplo de requisição
Cabeçalhos
| Cabeçalho | Valor | Descrição |
|---|---|---|
Authorization | Bearer <JWT_ACCESS_TOKEN> | JWT do Auth0 PKCE vinculado ao membro (Fluxo A) |
x-latam-test | LatamPass | Obrigatório apenas no sandbox — omitir em produção |
Content-Type | application/json |
Resposta
Uma resposta 201 Created significa que a requisição foi aceita para processamento. Sempre aguarde a notificação via webhook para determinar o resultado final.
201 Created — aceito para processamento
Armazene o correlationId — ele é sua chave principal para rastrear a transação via webhook ou GET.
Valores de status da transação
| Status | Tipo | Descrição |
|---|---|---|
PROCESSING | Intermediário | Requisição em processamento |
PROCESSED | Final | Milhas debitadas com sucesso — elegível para cancelamento |
ERROR | Final | Processamento falhou — verifique errorException no payload do webhook para detalhes |
CANCELLED | Final | Requisição cancelada |
Motivos para uma requisição resultar em ERROR ou CANCELLED
| Motivo | Código | Instruções para o parceiro |
|---|---|---|
| Membro não encontrado | MemberDoesNotExist | Valide o membro antes de processar |
| Formato do número de associação inválido | InvalidMemberFormat | O campo de membro deve ser válido. Verifique o formato e tente novamente |
| Número de associação inválido | InvalidMembershipNumber | Valide o formato do número de associação |
| Parceiro não registrado | PartnerDoesNotExist | Entre em contato com o LATAM Pass Support para configurar as configurações necessárias |
| Conta do membro está restrita | MemberBlacklisted | O membro deve entrar em contato com o LATAM Pass Support para obter assistência |
| Conta do membro não está ativa | AccountNotActive | O membro deve ativar a conta para prosseguir |
| Conta do membro está encerrada | MemberClosed | O membro deve reativar a conta para prosseguir |
| Membro falecido | MemberDeceased | Entre em contato com o LATAM Pass Support para obter assistência |
| Saldo insuficiente na conta | InsufficientAccountBalance | Verifique o saldo disponível do membro antes de processar |
| Pontos insuficientes no programa cruzado | CrossProgramInsufficientPoints | Revise os pontos disponíveis antes de tentar novamente |
| Sem contrato ativo com o parceiro | NoActivePartnerContract | Entre em contato com o LATAM Pass Support para revisar o status do contrato |
| Sem contrato de resgate ativo para o parceiro | ActiveRedemptionContractNotExistsForPartner | Entre em contato com o LATAM Pass Support para verificar os detalhes do contrato |
| Parceiro inválido para esta recompensa | InvalidPartnerForReward | Entre em contato com o LATAM Pass Support para verificar o código do parceiro |
| Parceiro de resgate não encontrado | RedemptionPartnerDoesNotExist | Entre em contato com o LATAM Pass Support para validar o parceiro de resgate |
| Recompensa não encontrada | RewardDoesNotExist | Verifique o redemptionCode e tente novamente |
| Recompensa não ativa | RewardNotActive | Verifique o status da recompensa ou tente novamente mais tarde |
| Validade da recompensa expirada | RewardValidityExpired | Use uma recompensa válida ou entre em contato com o LATAM Pass Support |
| Regra de precificação da recompensa rejeitada | RewardPricingRuleRejected | Entre em contato com o LATAM Pass Support para obter assistência |
| Regra de precificação da recompensa não configurada | RewardPricingRuleNotConfigured | Entre em contato com o LATAM Pass Support — configuração necessária |
| País do membro não elegível para o resgate deste parceiro | CoalitionMismatch | Entre em contato com o LATAM Pass Support para configurar as configurações necessárias |
| Falha na autorização (recuperável) | AuthorisationFailed | Tente novamente mais tarde ou entre em contato com o LATAM Pass Support se o problema persistir |
| Falha na liquidação (recuperável) | SettlementFailed | Tente novamente mais tarde ou entre em contato com o LATAM Pass Support se o problema persistir |
| Falha na emissão do certificado (recuperável) | IssueCertificateFailed | Tente novamente mais tarde ou entre em contato com o LATAM Pass Support se o problema persistir |
| Erro de sistema durante o processamento de regras (recuperável) | RuntimeError | Tente novamente mais tarde ou entre em contato com o LATAM Pass Support se o problema persistir |
Erros comuns
400 — Campos obrigatórios ausentes ou valores inválidos
400 — correlationId duplicado
Retornado quando o correlationId fornecido já foi utilizado e a transação ainda não foi totalmente processada.
409 — Conflito
Retornado quando o correlationId fornecido já foi totalmente processado. Não tente novamente — use o endpoint GET para verificar o status da transação existente.
500 — Internal Server Error
Para erros 500, tente novamente com o exato mesmo payload, incluindo o mesmo partnerTransactionId e correlationId (se um foi originalmente fornecido).
405 — Method Not Allowed
Este endpoint aceita apenas requisições POST.
Documentação técnica
Clique aqui para acessá-la.