Update a payment
Updates mutable reconciliation fields on an existing payment. Omitted fields are left unchanged.
Use this endpoint to attach your own reconciliation fields after the payment is created, such as an order ID, cart ID, or internal customer reference. The client_reference_id field is write-once: you can set it when it is empty, and repeating the same value is accepted, but changing it to a different value is rejected.
Metadata updates merge with existing metadata. Provided keys overwrite existing values for the same keys, and omitted keys remain unchanged.
You can also search and review payments in the Merchant Dashboard.
Related guide: Payment records
- Type: stringidmax length:200required
- Type: array string[]expand
- Type: stringIdempotency
- Key max length:255Pattern: ^[a-zA-Z0-9:_\-.]+$Provide a unique, stable key per operation so retries don't create duplicates. Allowed: letters, digits, colon, dash, underscore, dot. Max 255 characters.
Request parameters for updating mutable payment fields. Provide at least one of client_reference_id or metadata.
- Type: string | nullclient
_reference _id max length:100A free-form reference from your system, such as an order ID, cart ID, or customer reference.
This field is write-once. You can set it when the payment does not already have a
client_reference_id, and you can safely retry the same value. Changing an existing value to a different value is rejected. - Type: objectmetadata
Key-value metadata to merge into the payment. Provided keys overwrite existing values for the same keys. Omitted keys remain unchanged.
- application/json
- application/json
- application/json
- application/json
- application/json
curl 'https://api.paypercut.io/v2/payments/{id}' \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"client_reference_id": "order_1042",
"metadata": {
"cart_id": "cart_987",
"source": "checkout"
}
}'
{
"id": "string",
"created": "2026-07-08T08:02:27.741Z",
"amount": 2000,
"currency": {
"iso": "usd",
"scale": 2
},
"status": "failed",
"metadata": {
"additionalProperty": "string"
},
"balance_transaction": {
"id": "string",
"created": "2026-07-08T08:02:27.741Z",
"amount": 1,
"currency": {
"iso": "usd",
"scale": 2
},
"exchange_rate": null,
"fee": 1,
"net": 1
},
"formatted_amount": "20.00",
"amount_captured": 1,
"amount_refunded": 1,
"latest_status": "succeeded",
"captured": true,
"updated": "2026-07-08T08:02:27.741Z",
"outcome": {
"network_decline_code": null,
"network_status": null,
"risk_score": 1,
"seller_message": null,
"type": "string"
},
"failure_code": null,
"failure_message": null,
"paid": true,
"payment_method": "card",
"payment_method_details": {
"card": {
"amount_authorized": null,
"authorization_code": null,
"authorization_type": null,
"capture_before": null,
"transaction_type": null,
"brand": null,
"country": null,
"cardholder_name": null,
"issuer": null,
"funding": "string",
"segment": "string",
"exp_month": 1,
"exp_year": 1,
"last4": null,
"network_transaction_id": null,
"iin": "string",
"three_d_secure": {
"authentication_flow": null,
"electronic_commerce_indicator": null,
"result": null,
"result_reason": null,
"transaction_id": null,
"exemption_indicator": null,
"version": null
},
"wallet": {
"type": "string"
}
}
},
"customer": "01K755J9SV2364REVHB915Z2FW",
"payment_intent": "01K755J9SY55CS04SQ3JX1NX36",
"checkout_id": null,
"latest_operation": "capture",
"refunded": true,
"disputed": true,
"fraud_details": {
"response_state": "string",
"fraud_score": 1
},
"client_reference_id": null,
"statement_descriptor": null,
"fee": 1,
"fee_details": [
{
"amount": 1,
"currency": {
"iso": "usd",
"scale": 2
},
"applied_amount": 1,
"applied_amount_currency": {
"iso": "usd",
"scale": 2
},
"balance_account_id": null,
"fixed_amount": 0.25,
"rate": 1,
"payer": "string",
"payee": "string",
"rule": "string",
"exchange_rate": {
"from_currency": {
"iso": "usd",
"scale": 2
},
"to_currency": {
"iso": "usd",
"scale": 2
},
"rate": 1,
"reversed_rate": 1
},
"description": null,
"type": "string"
}
],
"livemode": true
}
