Introduction

The PNA Cobrand LATAM Pass API is the way our banking partners manage the lifecycle of benefits delivered to our LATAM Pass members who hold a cobrand card.

The start of the lifecycle occurs when a new card is approved or a current card is unblocked, meaning when LATAM Pass benefits must be delivered to the member.

Important: A status code 200 does not mean the card was successfully activated. The final result can be queried 24 hours after the processing was created, using the correlationId obtained in the response.

To make requests to the API, you must first obtain an access token. See the Authentication documentation for all the information.

Base Gantt chart

Access the base Gantt chart for each type of program partnership using the following links:

  1. New partnerships;
  2. Existing partnerships migrating to the PNA LATAM Pass API.

Process flow


Request

PropertyValue
MethodPOST
Path/v1/customer/loyalty/partner/cobranded

Headers

NameValueDescriptionTypeRequired
x-issue-bank<bank code>Identification of the card-issuing bankStringYes
client_id<your_client_id>Value obtained from the Dev Tools > My Apps > Client ID menuStringYes
access_token<access_token>Access token obtained during authenticationStringYes
x-latam-testLatamPassFor use in the sandbox environment only. Must not be sent in productionStringNo

Body

CobrandedLifeCycleRequest

FieldTypeDescriptionRequired
memberobject (Member)LATAM Pass member informationYes
cardobject (Card)Non-confidential card dataYes

Member

Fields marked with (*) may or may not be required depending on the configuration of the card-issuing bank. Check with the LATAM Pass commercial focal point for the fields required for your integration.

FieldTypeDescriptionRequired
ffnstringMember number. Ex.: 68245775886(*)
firstNamestring (Min. 2, max. 80 characters.)All first names. Ex.: Carlos Jose(*)
lastNamestring (Min. 2, max. 80 characters.)All last names. Ex.: Silva Santos(*)
birthDatestring (date-time)Date of birth. Ex.: 1998-11-30(*)
genderstring (enum)Gender: F, FEMALE, M, MALE, I, PREFER_NOT_TO_SAY(*)
emailstring (Max. 254 characters.)Primary email. Ex.: carlos.santos@email.com(*)
residenceCountryCodestringCountry of residence (ISO 3166-1 alpha-2). Ex.: BR(*)
documentobject (Document)Member's identity documentYes
phoneobject (Phone)Member's phone numberNo

Document

FieldTypeDescriptionRequired
documentIdstring (Min. 4, max. 32 characters.)Document number. Ex.: 68245775886Yes
documentTypestring (enum)Document type: CPF, FID, NID, RUT, DNIYes
issueCountryCodestringDocument-issuing country (ISO 3166-1 alpha-2). Ex.: BRYes

Phone

If the phone object is sent, the countryCode and phoneNumber fields are required.

FieldTypeDescriptionRequired
countryCodeinteger (int32)Calling country code. Ex.: 55Yes (if phone exists)
areaCodeinteger (int32)Area code (without country code). Ex.: 11No
phoneNumberinteger (int32)Phone number (without country or area code). Ex.: 999998888Yes (if phone exists)

Card

Fields marked with (*) may or may not be required depending on the configuration of the card-issuing bank.

FieldTypeDescriptionRequired
brandstring (enum)Card brand: AMEX, MASTERCARD, VISA(*)
categorystringCard category, provided by the LATAM Pass commercial focal pointYes
lastFourinteger (int32)Last 4 digits of the card. Ex.: 1234(*)
approvedAtstring (date-time)Submission approval date. Ex.: 2026-06-15T22:06:11.201Z(*)
tierinteger (int32)Card category level. Ex.: 1(*)

Request example

May vary depending on the issuing bank's configuration

{
  "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
  }
}

Response

200 — Request received

A 200 code indicates that the request was received and processing was created. It does not guarantee that the card has been activated. The final result must be queried with the correlationId through the status query endpoint.

CobrandedLifeCycleResponse

FieldTypeDescriptionRequired
memberobject (MemberSimplified)Member informationYes
traceobject (Trace)Processing traceability informationYes

MemberSimplified

FieldTypeDescriptionRequired
ffnstringMember numberYes

Trace

FieldTypeDescriptionRequired
correlationIdstringCorrelation identifier between LATAM eFFP API resourcesYes
threadIdstringIdentifier of the thread that executed the complete flowYes
receivedDateTimestringDate and time the request was receivedYes
returnedDateTimestringDate and time the response was returnedYes
{
  "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"
  }
}

Most common errors

400 — Invalid or missing fields

Returned when required fields are missing or the values sent are not valid. The details field indicates the specific field and the reason.

{
  "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 — Request limit exceeded

{
  "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 — Internal server error

{
  "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"
  }
}

ErrorException structure

FieldTypeDescription
codeinteger (int32)LATAM eFFP API internal code
messagestringError message description
instructionsstringInstructions to resolve the error
issuedDateTimestringDate and time the error was generated
detailsmap<string, object>Key-value pair with additional error details

Technical documentation

Click here to access the complete technical specification (Swagger).