Skip to main content
GET
Get payment details

Authorizations

x-api-key
string
header
required

Path Parameters

id
string<uuid>
required

The unique identifier of the payment method

paymentId
string<uuid>
required

The unique identifier of the payment

Response

Payment details

Detailed payment information

id
string<uuid>
required
Example:

"11111111-2222-3333-4444-555555555555"

status
enum<string>
required
Available options:
NOT_INITIALIZED,
PENDING,
CONFIRMED,
CANCELLED,
REFUNDED,
HELD,
HOLD_RELEASED,
HOLD_EXPIRED
Example:

"CONFIRMED"

amount
number<decimal>
required

The money that moved. On a hold that was captured for only part of its amount, this is the captured amount.

currency
string
required
Example:

"MXN"

heldAmount
number<decimal> | null

The amount the bank authorized when a hold was placed. Null on any payment that was never held. When it differs from amount, the hold was captured for only part of it: amount is what was captured and this is what had been held.

Example:

null

externalId
string | null

The idempotency key supplied when the payment was created, echoed back so you can map this payment id to your own order reference. Null when none was supplied. Not to be confused with the payment method externalId, which identifies the saved card.

Example:

"invoice-2025-01-8842"

heldAt
string<date-time> | null

When the bank approved the hold. Null on payments that were never held.

Example:

"2026-08-12T10:00:00.000Z"

capturedAt
string<date-time> | null

When the hold was captured. This, and not createdAt, is the settlement date of a captured hold. Null on payments that were never held.

holdReleasedAt
string<date-time> | null

When the hold was released, either by the release endpoint or by the automatic expiry. Null otherwise.

holdExpiresAt
string<date-time> | null

When the hold expires: 23:00 America/Mexico_City on the 7th natural day, counting the day of heldAt as day 1. The hold window is counted in NATURAL DAYS, not in elapsed hours. The day the hold is placed counts as day 1 and the time of day it was placed is irrelevant: a hold placed Monday 10:00 and one placed Monday 23:29 both expire at the same instant, at the end of the following Sunday. The bank closes its day at 23:30 America/Mexico_City and Compago closes the hold at 23:00, 30 minutes earlier, so the last minute to capture is 22:59 on the last day. It keeps being reported once the hold has ended, because it is a fact about the payment. Null on payments that were never held.

Example:

"2026-08-19T05:00:00.000Z"

holdExpired
boolean

Whether the hold window has closed. It flips at 23:00 America/Mexico_City on the last natural day, not 7 times 24 hours after heldAt. False on payments that were never held.

holdDaysRemaining
integer | null

Natural days on which the hold can still be captured, including today when today's 23:00 cutoff has not passed yet: 7 for a hold placed before 23:00 on its placement day, 6 for one placed at or after 23:00 (its placement day is already spent), 1 through the last day, and 0 from 23:00 on the last day. Null unless the payment is currently HELD.

Example:

7