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 card upgrade occurs when a new higher-category card is approved and the member's current card is cancelled. The new card's data is sent to grant LATAM Pass benefits, and the current card's data is sent to remove them.

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

Availability: This endpoint is not available for all issuing banks. Check with the LATAM Pass commercial focal point whether your integration has this functionality enabled before implementing it.

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/upgrade

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

CobrandedLifeCycleUpdateRequest

FieldTypeDescriptionRequired
memberobject (Member)LATAM Pass member informationYes
updateobject (UpdateCard)Data of the cards to be updatedYes

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(*)
firstNamestringAll first names. Ex.: Carlos Jose(*)
lastNamestringAll 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(*)
emailstringPrimary 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
documentIdstringDocument 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)

UpdateCard

FieldTypeDescriptionRequired
oldobject (Card)Current card to be cancelledYes
newobject (Card)New higher-category card to be activatedYes

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": {
    "document": {
      "documentId": "68245775886",
      "documentType": "CPF",
      "issueCountryCode": "BR"
    }
  },
  "update": {
    "old": {
      "category": "WORLDMEMBER",
      "tier": 1,
      "approvedAt": "2026-06-15T23:10:12.500Z"
    },
    "new": {
      "category": "WORLDMEMBER",
      "tier": 3,
      "approvedAt": "2026-06-15T23:10:12.500Z"
    }
  }
}

Response

200 — Request received

A 200 code indicates that the request was received and processing was created. It does not guarantee that the operation has been completed. When finished, the operation will affect 2 cards: the old card will be cancelled and the new card will be 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

Missing required fields or invalid values

{
  "code": 400,
  "message": "Invalid request content",
  "instructions": "Evaluate the request fields",
  "issuedDateTime": "2023-10-05T12:53:10Z",
  "details": {
    "member.phone.countryCode": "XXXX-XXXX"
  }
}

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
}

Internal server error

If this error occurs, it is recommended to retry the request. If it persists, contact LATAM Pass support with the correlationId.

{
  "code": 500,
  "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).