Partial Authorization
Partial authorizations allow you to process a payment even when the customer's card does not have sufficient funds to cover the full order amount.
Instead of declining the operation, the system authorizes the maximum available amount on the card.
This functionality is especially useful for business models that can manage the remaining balance through another payment method or a new charge attempt.
⚠️ Partial authorizations should only be used if your business flow allows you to manage outstanding amounts.
How to use partial authorization
To enable partial authorization, you must use the PARTIAL_AUTHORIZATION operative when creating the payment order.
ℹ️ AUTHORIZATION declines the operation if the full amount cannot be authorized, while PARTIAL_AUTHORIZATION approves the operation even if only part of the amount can be authorized.
Order creation example
Example request to create an order using the partial authorization operative:
curl --request POST 'https://api.paylands.com/v1/sandbox/payment' \
--header 'Authorization: pk_test_************************' \
--header 'Content-Type: application/json' \
--data-raw '{
"signature": "341f7de8e6fc49da8d8736473af6b03a",
"amount": 600,
"operative": "PARTIAL_AUTHORIZATION",
"secure": false,
"customer_ext_id": "test",
"service": "9A1BDCC8-DB30-4ED2-8523-62B330A67873",
"description": "Payment #1",
"additional": null,
"url_post": "https://my.website.com/process",
"url_ok": "https://my.website.com/ok",
"url_ko": "https://my.website.com/ko",
"template_uuid": "6412549E-933E-4DFE-A225-2E87FBF7623E",
"dcc_template_uuid": "BF418CA6-7043-4864-B36F-F02C2CF2B76B",
"source_uuid": null,
"save_card": true,
"reference": "50620",
"dynamic_descriptor": "PNP*MerchantName",
"expires_in": 3600
}'
Example response for a payment with partial authorization
Below is the response from a successful payment where a partial authorization has been performed.
{
"message": "OK",
"code": 200,
"order": {
"uuid": "6E317E9E-1508-487A-98CB-389F7054B9CF",
"amount": 600,
"currency": "986",
"paid": true,
"status": "SUCCESS",
"transactions": [
{
"uuid": "1EAC092C-5A96-49E3-8FDB-D2374DE2F3B9",
"operative": "PARTIAL_AUTHORIZATION",
"amount": 420,
"status": "SUCCESS",
"error": "NONE",
"source": {
"object": "CARD",
"brand": "VISA",
"last4": "0071"
},
"...": "Other transaction fields omitted for clarity"
}
]
},
"...": "Additional response fields omitted for clarity"
}
💡 Key behavior: The order keeps the original requested amount (600), while the transaction shows the amount that was finally authorized (420).
How to test partial authorizations in sandbox
You can validate the behavior of partial authorizations in the sandbox environment using the following methods:
Paynopain
To simulate a partial authorization with Paynopain, send a request with the following amount:
amount: 100010
This value is configured to trigger a partial authorization during testing.
Paylands Simulator
Paylands provides a simulator that allows you to test different payment flows in sandbox, including partial authorizations.
Test card for partial authorization:
4000058400000071
Simulator behavior:
- For payments with an amount greater than 100, the simulator will apply a partial authorization.
- For payments with an amount equal to or less than 100, the full amount will be authorized.
For more information about the simulator, see the Paylands service documentation.