Introdução

A API PNA Cobrand LATAM Pass é a forma pela qual nossas parcerias bancárias gerenciam o ciclo de vida dos benefícios entregues aos nossos associados LATAM Pass que possuem um cartão cobrand.

O início do ciclo de vida ocorre quando um novo cartão é aprovado ou um cartão atual é desbloqueado, ou seja, quando os benefícios LATAM Pass devem ser entregues ao associado.

Importante: Um código de status 200 não significa que o cartão foi ativado com sucesso. O resultado final pode ser consultado 24 horas após a criação do processamento, utilizando o correlationId obtido na resposta.

Para realizar requisições à API, primeiro é necessário obter o token de acesso. Consulte a documentação Autenticação para obter todas as informações.

Cronograma base (Carta Gantt)

Acesse o cronograma base para cada tipo de parceria com o programa utilizando os seguintes links:

  1. Novas parcerias;
  2. Parcerias existentes migrando para a API PNA LATAM Pass.

Fluxo do processo


Requisição

PropriedadeValor
MétodoPOST
Caminho/v1/customer/loyalty/partner/cobranded

Cabeçalhos

NomeValorDescriçãoTipoObrigatório
x-issue-bank<código do banco>Identificação do banco emissor do cartãoStringSim
client_id<your_client_id>Valor obtido no menu Dev Tools > Meus Apps > Client IDStringSim
access_token<access_token>Token de acesso obtido durante a autenticaçãoStringSim
x-latam-testLatamPassApenas para uso no ambiente de sandbox. Não deve ser enviado em produçãoStringNão

Corpo (Body)

CobrandedLifeCycleRequest

CampoTipoDescriçãoObrigatório
memberobjeto (Member)Informações do associado LATAM PassSim
cardobjeto (Card)Dados não confidenciais do cartãoSim

Member

Os campos marcados com (*) podem ser obrigatórios ou não conforme a configuração do banco emissor do cartão. Consulte o ponto focal comercial da LATAM Pass sobre os campos requeridos para sua integração.

CampoTipoDescriçãoObrigatório
ffnstringNúmero do associado. Ex.: 68245775886(*)
firstNamestring (Min. 2, max. 80 characters.)Todos os primeiros nomes. Ex.: Carlos Jose(*)
lastNamestring (Min. 2, max. 80 characters.)Todos os sobrenomes. Ex.: Silva Santos(*)
birthDatestring (date-time)Data de nascimento. Ex.: 1998-11-30(*)
genderstring (enum)Gênero: F, FEMALE, M, MALE, I, PREFER_NOT_TO_SAY(*)
emailstring (Max. 254 characters.)E-mail principal. Ex.: carlos.santos@email.com(*)
residenceCountryCodestringPaís de residência (ISO 3166-1 alpha-2). Ex.: BR(*)
documentobjeto (Document)Documento de identidade do associadoSim
phoneobjeto (Phone)Número de telefone do associadoNão

Document

CampoTipoDescriçãoObrigatório
documentIdstring (Min. 4, max. 32 characters.)Número do documento. Ex.: 68245775886Sim
documentTypestring (enum)Tipo de documento: CPF, FID, NID, RUT, DNISim
issueCountryCodestringPaís emissor do documento (ISO 3166-1 alpha-2). Ex.: BRSim

Phone

Se o objeto phone for enviado, os campos countryCode e phoneNumber são obrigatórios.

CampoTipoDescriçãoObrigatório
countryCodeinteger (int32)Código de país de chamada. Ex.: 55Sim (se phone existir)
areaCodeinteger (int32)Código de área (sem código de país). Ex.: 11Não
phoneNumberinteger (int32)Número de telefone (sem código de país ou área). Ex.: 999998888Sim (se phone existir)

Card

Os campos marcados com (*) podem ser obrigatórios ou não conforme a configuração do banco emissor do cartão.

CampoTipoDescriçãoObrigatório
brandstring (enum)Bandeira do cartão: AMEX, MASTERCARD, VISA(*)
categorystringCategoria do cartão, fornecida pelo ponto focal comercial da LATAM PassSim
lastFourinteger (int32)Últimos 4 dígitos do cartão. Ex.: 1234(*)
approvedAtstring (date-time)Data de aprovação do envio. Ex.: 2026-06-15T22:06:11.201Z(*)
tierinteger (int32)Nível de categoria do cartão. Ex.: 1(*)

Exemplo de requisição

Pode variar dependendo das configurações do banco emissor

{
  "member": {
    "ffn": "12345654321",
    "firstName": "Carlos Jose",
    "lastName": "Silva Santos",
    "birthDate": "1980-12-31",
    "gender": "MALE",
    "email": "carlos.santos@email.com",
    "residenceCountryCode": "BR",
    "document": {
      "documentId": "68245775886",
      "documentType": "CPF",
      "issueCountryCode": "BR"
    },
    "phone": {
      "countryCode": 55,
      "areaCode": 11,
      "phoneNumber": 999998888
    }
  },
  "card": {
    "brand": "VISA",
    "category": "PLATINUM",
    "lastFour": 1234,
    "approvedAt": "2026-06-15T22:06:11.201Z",
    "tier": 1
  }
}

Resposta

200 — Requisição recebida

Um código 200 indica que a requisição foi recebida e o processamento foi criado. Não garante que o cartão foi ativado. O resultado final deve ser consultado com o correlationId através do endpoint de consulta de status.

CobrandedLifeCycleResponse

CampoTipoDescriçãoObrigatório
memberobjeto (MemberSimplified)Informações do associadoSim
traceobjeto (Trace)Informações de rastreabilidade do processamentoSim

MemberSimplified

CampoTipoDescriçãoObrigatório
ffnstringNúmero do associadoSim

Trace

CampoTipoDescriçãoObrigatório
correlationIdstringIdentificador de correlação entre recursos da API LATAM eFFPSim
threadIdstringIdentificador da thread que executou o fluxo completoSim
receivedDateTimestringData e hora em que a requisição foi recebidaSim
returnedDateTimestringData e hora em que a resposta foi retornadaSim
{
  "member": {
    "ffn": "68245775886"
  },
  "trace": {
    "correlationId": "96bd0750-71e0-4ed6-9489-96ddfd0e34cd",
    "threadId": "c0fead84-234d-4fb2-a865-b070f77ec086",
    "receivedDateTime": "2023-10-05T12:53:00Z",
    "returnedDateTime": "2023-10-05T12:53:24Z"
  }
}

Erros mais comuns

400 — Campos inválidos ou ausentes

Retornado quando campos obrigatórios estão ausentes ou os valores enviados não são válidos. O campo details indica o campo específico e o motivo.

{
  "code": 1,
  "message": "Invalid request content",
  "instructions": "Evaluate the request fields",
  "issuedDateTime": "2024-10-01T00:00:00Z",
  "details": {
    "member.ffn": "must not be null"
  }
}

429 — Limite de requisições excedido

{
  "code": 429,
  "message": "Current rate exceeds the maximum for internal integrations",
  "instructions": "Please, try again later",
  "issuedDateTime": "2024-10-01T00:00:00Z",
  "details": null
}

500 — Erro interno do servidor

{
  "code": 33,
  "message": "Internal server error",
  "instructions": "Retry the request later. If the problem persists, contact LATAM Pass support with the correlationId.",
  "issuedDateTime": "2023-10-05T12:53:10Z",
  "details": {
    "correlationId": "96bd0750-71e0-4ed6-9489-96ddfd0e34cd"
  }
}

Estrutura de ErrorException

CampoTipoDescrição
codeinteger (int32)Código interno da API LATAM eFFP
messagestringDescrição da mensagem de erro
instructionsstringInstruções para resolver o erro
issuedDateTimestringData e hora em que o erro foi gerado
detailsmap<string, object>Par chave-valor com detalhes adicionais do erro

Documentação técnica

Clique aqui para acessar a especificação técnica completa (Swagger).