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
200does not mean the card was successfully activated. The final result can be queried 24 hours after the processing was created, using thecorrelationIdobtained 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:
Process flow

Request
| Property | Value |
|---|---|
| Method | POST |
| Path | /v1/customer/loyalty/partner/cobranded |
Headers
| Name | Value | Description | Type | Required |
|---|---|---|---|---|
x-issue-bank | <bank code> | Identification of the card-issuing bank | String | Yes |
client_id | <your_client_id> | Value obtained from the Dev Tools > My Apps > Client ID menu | String | Yes |
access_token | <access_token> | Access token obtained during authentication | String | Yes |
x-latam-test | LatamPass | For use in the sandbox environment only. Must not be sent in production | String | No |
Body
CobrandedLifeCycleRequest
| Field | Type | Description | Required |
|---|---|---|---|
member | object (Member) | LATAM Pass member information | Yes |
card | object (Card) | Non-confidential card data | Yes |
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.
| Field | Type | Description | Required |
|---|---|---|---|
ffn | string | Member number. Ex.: 68245775886 | (*) |
firstName | string (Min. 2, max. 80 characters.) | All first names. Ex.: Carlos Jose | (*) |
lastName | string (Min. 2, max. 80 characters.) | All last names. Ex.: Silva Santos | (*) |
birthDate | string (date-time) | Date of birth. Ex.: 1998-11-30 | (*) |
gender | string (enum) | Gender: F, FEMALE, M, MALE, I, PREFER_NOT_TO_SAY | (*) |
email | string (Max. 254 characters.) | Primary email. Ex.: carlos.santos@email.com | (*) |
residenceCountryCode | string | Country of residence (ISO 3166-1 alpha-2). Ex.: BR | (*) |
document | object (Document) | Member's identity document | Yes |
phone | object (Phone) | Member's phone number | No |
Document
| Field | Type | Description | Required |
|---|---|---|---|
documentId | string (Min. 4, max. 32 characters.) | Document number. Ex.: 68245775886 | Yes |
documentType | string (enum) | Document type: CPF, FID, NID, RUT, DNI | Yes |
issueCountryCode | string | Document-issuing country (ISO 3166-1 alpha-2). Ex.: BR | Yes |
Phone
If the
phoneobject is sent, thecountryCodeandphoneNumberfields are required.
| Field | Type | Description | Required |
|---|---|---|---|
countryCode | integer (int32) | Calling country code. Ex.: 55 | Yes (if phone exists) |
areaCode | integer (int32) | Area code (without country code). Ex.: 11 | No |
phoneNumber | integer (int32) | Phone number (without country or area code). Ex.: 999998888 | Yes (if phone exists) |
Card
Fields marked with (*) may or may not be required depending on the configuration of the card-issuing bank.
| Field | Type | Description | Required |
|---|---|---|---|
brand | string (enum) | Card brand: AMEX, MASTERCARD, VISA | (*) |
category | string | Card category, provided by the LATAM Pass commercial focal point | Yes |
lastFour | integer (int32) | Last 4 digits of the card. Ex.: 1234 | (*) |
approvedAt | string (date-time) | Submission approval date. Ex.: 2026-06-15T22:06:11.201Z | (*) |
tier | integer (int32) | Card category level. Ex.: 1 | (*) |
Request example
May vary depending on the issuing bank's configuration
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
| Field | Type | Description | Required |
|---|---|---|---|
member | object (MemberSimplified) | Member information | Yes |
trace | object (Trace) | Processing traceability information | Yes |
MemberSimplified
| Field | Type | Description | Required |
|---|---|---|---|
ffn | string | Member number | Yes |
Trace
| Field | Type | Description | Required |
|---|---|---|---|
correlationId | string | Correlation identifier between LATAM eFFP API resources | Yes |
threadId | string | Identifier of the thread that executed the complete flow | Yes |
receivedDateTime | string | Date and time the request was received | Yes |
returnedDateTime | string | Date and time the response was returned | Yes |
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.
429 — Request limit exceeded
500 — Internal server error
ErrorException structure
| Field | Type | Description |
|---|---|---|
code | integer (int32) | LATAM eFFP API internal code |
message | string | Error message description |
instructions | string | Instructions to resolve the error |
issuedDateTime | string | Date and time the error was generated |
details | map<string, object> | Key-value pair with additional error details |
Technical documentation
Click here to access the complete technical specification (Swagger).