configuration object is merged field-by-field with the page's existing configuration rather than replaced wholesale, so you can update a single nested setting (e.g. configuration.thank_you_note) without resending the entire configuration. If configuration.additional_fields is supplied, it fully replaces the existing additional fields list. If the update changes configuration.max_payments_allowed, the page's payment statistics record is updated to reflect the new cap. Returns the full, up-to-date payment page on success.curl --location --request PATCH '/payment-pages/01J3KQZM0000000000000000AB' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"status": "published",
"configuration": {
"max_payments_allowed": 100,
"thank_you_note": "Thank you! Your invoice has been marked as paid."
}
}'{
"message": "Payment page updated successfully",
"status": "success",
"data": {
"id": "01J3KQZM0000000000000000AB",
"entity_id": "01J3KQ0000000000000000ENTT",
"account_id": "01J3KQABC0000000000000000X",
"currency": "NGN",
"amount": 250000,
"name": "Q3 Invoice Payment Page",
"title": "Pay your Q3 invoice",
"display_image": "https://cdn.example.com/logos/acme.png",
"cover_image": "https://cdn.example.com/covers/acme-banner.png",
"slug": "q3-invoice-payment",
"status": "published",
"payment_intent_id": "01J3KQZM0000000000000000PI",
"client_reference": "invoice_2025_q3_014",
"client_meta": {
"internal_ref": "invoice_2025_q3_014"
},
"expires_at": 1767225600000,
"qr_image_data": null,
"configuration": {
"is_single_use": false,
"max_payments_allowed": 100,
"amount_settings": {
"is_dynamic_amount": false,
"min": 0,
"max": 0
},
"thank_you_note": "Thank you! Your invoice has been marked as paid.",
"additional_fields": [
{
"name": "Invoice number",
"type": "text",
"is_required": true,
"display_order": 0
}
]
},
"stats": {
"total_payments": 12,
"max_allowed_total_payments": 100
},
"created": 1754388720000,
"updated": 1754392100000
}
}