Get Redemption Status

After submitting a Create Redemption request, partners can query the current status of the transaction using the correlationId returned in the 201 response.

Processing is asynchronous. It is recommended to use webhook notifications as the primary mechanism for receiving the final status. Use the GET endpoint only as an alternative if a webhook notification is not received after 24 hours, or to verify the current state of a transaction.


Request

Method: GET

Endpoint:

https://api.latampass.com/sandbox/v1/customer/eloyalty/partner/redeem?correlationId={uuid}

Authentication: Flow B — Portal API Client Credentials

Query parameter:

ParameterTypeRequiredDescription
correlationIdUUIDYesUUID returned from a previous Create Redemption response

Example request:

curl 'https://api.latampass.com/sandbox/v1/customer/eloyalty/partner/redeem?correlationId=<YOUR_CORRELATION_ID>' \
  --request GET \
  --header 'x-latam-test: LatamPass' \
  --header 'Access_token: <YOUR_UUID_ACCESS_TOKEN>' \
  --header 'client_id: <YOUR_CLIENT_ID>' \
  --header 'Content-Type: application/json'

Headers

HeaderValueDescription
Access_token<UUID_ACCESS_TOKEN>Portal API client credentials token (Flow B)
client_id<YOUR_CLIENT_ID>Portal API client identifier
x-latam-testLatamPassRequired in sandbox only. Omit in production
Content-Typeapplication/json

Response

A successful request returns HTTP 200 OK.

Transaction statuses:

StatusTypeDescription
PROCESSINGIntermediateRequest is being processed
PROCESSEDFinalMiles successfully debited. Eligible for cancellation
ERRORFinalProcessing failed. See the exception field for details
CANCELLEDFinalRequest cancelled. Miles were not debited

Response fields:

FieldTypePresent when
correlationIdUUIDAlways
statusStringAlways
descriptionStringAlways
ffnString (masked)Always
milesIntegerAlways
partnerTransactionIdStringAlways
redemptionIdStringWhen status is PROCESSED (omitted while PROCESSING)
exceptionObjectWhen status is ERROR

exception object fields:

FieldTypeDescription
messageStringHuman-readable error description
codeStringError code identifier (e.g. InsufficientAccountBalance)
instructionsStringRecommended action for the partner

Example responses:

Status: PROCESSING

{
  "correlationId": "<YOUR_CORRELATION_ID>",
  "status": "PROCESSING",
  "description": "Demo API redeem",
  "ffn": "****6789",
  "miles": 15,
  "partnerTransactionId": "<YOUR_PARTER_TRANSACTION_ID>"
}

Status: PROCESSED

{
  "correlationId": "<YOUR_CORRELATION_ID>",
  "status": "PROCESSED",
  "description": "Demo API redeem",
  "ffn": "****6789",
  "miles": 15,
  "partnerTransactionId": "TXN-TEST-1769171650",
  "redemptionId": "<YOUR_REDEMPTION_ID>"
}

Status: ERROR

{
  "correlationId": "<YOUR_CORRELATION_ID>",
  "status": "ERROR",
  "description": "Demo API redeem",
  "ffn": "****6789",
  "miles": 15,
  "partnerTransactionId": "<YOUR_PARTNER_TRANSACTION_ID>",
  "exception": {
    "message": "The account balance is insufficient",
    "code": "InsufficientAccountBalance",
    "instructions": "Check the available balance or add funds to continue."
  }
}

Common errors

400 — Missing correlationId

{
  "message": "Request payload has problems with validation",
  "code": 400,
  "instructions": null,
  "details": {
    "correlationId": "Missing required parameter"
  },
  "issueDateTime": "2026-01-23T12:54:25.044344Z"
}

400 — Invalid correlationId format

{
  "message": "Request payload has problems with validation",
  "code": 400,
  "instructions": null,
  "details": {
    "getRedeemByCorrelationId.correlationId": "correlationId must be a valid UUID"
  },
  "issueDateTime": "2026-01-23T12:54:25.044344Z"
}

404 — Redemption not found

{
  "message": "Redeem not found for correlation ID: <YOUR_CORRELATION_ID>",
  "code": 404,
  "instructions": null,
  "details": null,
  "issueDateTime": "2026-01-23T12:54:25.044344Z"
}