Payment records
Payment records describe what happened when Paypercut attempted to move money. They are the primary resource for reconciliation, payment outcome review, and transaction-level details.
Use Payment Intents to control the lifecycle of a payment attempt. Use Payments to inspect the resulting money movement.
Payment Intent versus Payment
| Resource | Use it for |
|---|---|
| Payment Intent | Creating, confirming, capturing, canceling, and tracking the lifecycle of a payment attempt. |
| Payment | Inspecting the payment result, payment method details, outcome, fees, refunds, and reconciliation fields. |
A Payment Intent can create a Payment when confirmation starts. Before confirmation, latest_payment can be null. After confirmation, use the Payment Intent status to decide what lifecycle action is next, and use the Payment record to inspect the transaction details.
When to retrieve a Payment
Retrieve a Payment when you need to:
- show payment status in an internal dashboard;
- reconcile payments against orders, invoices, or settlements;
- inspect failure details and outcome information;
- confirm whether a manual-capture payment was captured;
- inspect card, wallet, and 3D Secure details;
- review fees, refund state, or dispute state.
The Payments API also supports listing payments with filters such as customer, status, currency, payment method, operation, date range, and client_reference_id.
Important fields
| Field | Meaning |
|---|---|
id |
Unique Payment ID. |
amount |
Payment amount in the smallest currency unit. |
currency |
Currency used for the payment. |
status |
High-level payment status, such as succeeded, pending, or failed. |
latest_status |
Latest provider or processing status known for the payment. |
captured |
Whether an authorized payment has been captured. |
paid |
Whether the charge succeeded or was authorized for later capture. |
payment_method |
Payment method type used for the payment. |
payment_method_details |
Snapshot of card, wallet, and authentication details used for this payment. |
payment_intent |
Payment Intent associated with this Payment. |
checkout_id |
Checkout Session that created the payment, if applicable. |
client_reference_id |
Your reference copied from the Checkout Session when available. |
outcome |
Decision and result information for the payment. |
failure_code and failure_message |
Failure information when the payment fails. |
fee and fee_details |
Fees assessed for the transaction. |
metadata |
Merchant-defined key-value context attached to the Payment. |
Payment method details
payment_method_details is a snapshot of the instrument and authentication details used at payment time. It can include card brand, last four digits, wallet details, network transaction identifiers, and 3D Secure details.
3D Secure details are exposed under:
payment.payment_method_details.card.three_d_secure
Use this field when you need to debug authentication outcomes or show transaction-level evidence in back-office tooling.
Reconciliation
Use these identifiers to connect a Payment back to your system:
| Identifier | Where it comes from |
|---|---|
payment_intent |
Payment Intent that created the Payment. |
checkout_id |
Checkout Session that created the Payment. |
client_reference_id |
Your own order, cart, customer, or session reference. |
customer |
Paypercut Customer associated with the payment, if one exists. |
For hosted checkout flows, pass client_reference_id when creating the Checkout Session. Later, list or retrieve Payments and use this field to reconcile the payment to your internal order.
When Paypercut creates the first Payment from a Payment Intent, the Payment receives an initial snapshot of the Payment Intent metadata. For Checkout-created payments, pass payment_intent_data.metadata when you want metadata to follow the underlying Payment Intent and the resulting Payment. If the Payment Intent does not have metadata, Paypercut uses the checkout context available at Payment creation time.
Update reconciliation fields
You can update a Payment to attach reconciliation fields after the payment has been created.
Use client_reference_id for your main order, cart, customer, or session reference. The field is write-once on a Payment: setting it when empty is allowed, retrying the same value is allowed, and changing it to a different value is rejected.
Use metadata for additional key-value context. Metadata updates merge into the existing Payment metadata. Provided keys overwrite existing values for those keys, and omitted keys are left unchanged.
Payment webhook events, such as payment.succeeded and payment.captured, include the Payment metadata snapshot in data.object.metadata.

