Multiple partial captures
Overview
The multiple partial captures feature enables you to request a partial capture linked to an authorization multiple times. It allows incremental settlements over time while ensuring the total captures never exceed the authorized amount. This feature is primarily used in travel (airlines, lodging, OTAs) and retail, where goods and services can be shipped or delivered in several batches, with each shipment triggering a partial capture (for example, split delivery of goods or split capture for ticket bookings). Without it, you must wait until all goods and services are delivered before capturing the total authorized amount, which can significantly impact cash flow.
Key benefits
- Improved cash flow: You can match funding to the actual delivery or service milestones, improving cash flow.
- Increased trust: Consumers only see charges on their bank statement for items that have actually shipped. This reduces support inquiries from consumers about order status.
- Lower rejection rates: You can authorize a large amount upfront and capture smaller portions over time, retaining the ability to capture the remaining amount within the authorization window (subject to card network rules and issuer policies). Avoid the need for new authorizations (and potential declines) for every partial shipment.
- Reduced transaction cost: Minimize interchange fees associated with multiple separate authorizations and the administrative overhead of manual refunds.
- Reduced dispute & risk: Gradual charges that match delivery reduce chargebacks and refunds by aligning charges with delivered value.
- In Airlines & hospitality industry, charging consumers often happens based on the services rendered. Partial captures allow charging as the consumer uses the service.
Boarding
To start your boarding process and enable this feature, please reach out to your Account Manager or Customer Success Manager.
Status flows for multiple partial captures
Each payment that supports multiple partial captures represents a single authorization. Multiple partial captures payments display differently than non-multiple partial captures payments in the payment flows. A multiple partial captures payment can include one or more captures, and each capture has its own status flow.
MPC Payment states
Integration
Use the Request Builder in the API Explorer to test and validate API requests before integrating them into your application. Log into your Configuration Center account and select the merchant IDs linked to your account to begin.
Get payment product information
{
GET https://{domainname}/v1/{merchantId}/products/{paymentProductId}
}
When sending a get payment product API call, in the response, a code with payment product information appears. A part of this is a new field "allowsMultiplePartialCaptures".
{
"deviceFingerprintEnabled": false,
"allowsClickToPay": false,
"allowsInstallments": false,
"allowsMultiplePartialCaptures": true,
"allowsRecurring": true,
"allowsTokenization": true,
"authenticationIndicator": {
"name": "AUTHENTICATIONINDICATOR",
"value": "1"
}
Authorization information
{
"cardPaymentMethodSpecificInput": {
"threeDSecure": {
"challengeIndicator": "challenge-requested",
"challengeCanvasSize": "full-screen",
"skipAuthentication": true,
"redirectionData": {
"returnUrl": "https://example.org/return"
}
},
"paymentProductId": 1,
"authorizationMode": "PRE_AUTHORIZATION",
"card": {
"cardNumber": "4012001037141112",
"expiryDate": "1227",
"cardholderName": "John Doe",
"cvv": "212"
}
},
"order": {
"amountOfMoney": {
"amount": 10000,
"currencyCode": "EUR"
},
"customer": {
"billingAddress": {
"countryCode": "NL"
}
}
}
}
{
"creationOutput": {
"additionalReference": "00001966100000000030",
"externalReference": "000019661000000000300000100001"
},
"payment": {
"id": "000019661000000000300000100001",
"paymentOutput": {
"amountOfMoney": {
"amount": 10000,
"currencyCode": "EUR"
},
"references": {
"paymentReference": "0"
},
"paymentMethod": "card",
"cardPaymentMethodSpecificOutput": {
"paymentProductId": 1,
"authorisationCode": "023483",
"fraudResults": {
"fraudServiceResult": "no-advice",
"avsResult": "E",
"cvvResult": "P"
},
"card": {
"cardNumber": "************1112",
"cardholderName": "John Smith",
"expiryDate": "1227"
}
}
},
"status": "PENDING_CAPTURE",
"statusOutput": {
"isCancellable": true,
"isRetriable": false,
"statusCategory": "PENDING_MERCHANT",
"statusCode": 610,
"statusCodeChangeDateTime": "20250923144003",
"isAuthorized": true,
"isRefundable": false
}
}
}
{
"cardPaymentMethodSpecificInput": {
"authorizationMode": "PRE_AUTHORIZATION"
},
"order": {
"amountOfMoney": {
"amount": 100,
"currencyCode": "EUR"
},
"customer": {
"contactDetails": {
"emailAddress": "ankit.srivastava@worldline.com"
},
"merchantCustomerId": "11011011",
"billingAddress": {
"countryCode": "NL"
}
}
}
}
Capture information
To get an information on a capture which is not in its final state, send a request with a "isFinal": false" field.
{
"isFinal": false,
"amount": 20
}
In the response you will get "id" which represents CaptureId, which is a reference of the capture. It should be stored for future operations on this capture.
{
"id": "000000999110000027640000100001C00001",
"captureOutput": {
"amountOfMoney": {
"amount": 20,
"currencyCode": "EUR"
},
"references": {
"paymentReference": "0",
"providerId": "3502",
"providerReference": "000000999110000027640000100001"
},
"paymentMethod": "card"
},
"status": "CAPTURE_REQUESTED",
"statusOutput": {
"isFinal": false,
"isRefundable": true,
"isRetriable": false,
"statusCodeChangeDateTime": "20260114134203"
}
}
In the response you will get an "id" that represents CaptureId, which is a reference of the capture. It should be stored for future operations on this capture.
{
"isFinal": true,
"amount": 20
}
With isFinal= true, the capture will be treated as last capture and the Payment order will move to final state of 910. This means that no more capture payment will be allowed on this payment order.
{
GET https://{domainname}/v1/{merchantId}/captures/{captureId}
}
{
"id": "000000999110000027680000100001C00001",
"captureOutput": {
"amountOfMoney": {
"amount": 4,
"currencyCode": "EUR"
},
"references": {
"paymentReference": "0",
"providerId": "3502",
"providerReference": "000000999110000027680000100001"
},
"paymentMethod": "card"
},
"status": "PAID",
"statusOutput": {
"isFinal": false,
"isRefundable": true,
"isRetriable": false,
"statusCodeChangeDateTime": "20260122155521"
}
}
GET https://{domainname}/v1/{merchantId}/payments/{paymentId}/captures}
{POST https://{domainname}/v1/{merchantId}/payments/{paymentId}/cancel}
Refund
{POST https://{domainname}/v1/{merchantId}/payments/{paymentId}/refund}
POST https://{domainname}/v1/{merchantId}/captures/{captureId}/refund}
Webhooks
Webhooks are highly recommended to use to keep your order/payment state in sync (e.g., capture status, refunds, voids) and to handle asynchronous events reliably. To enable webhook events for captures, first make sure you have webhooks reporting enabled. You can enable webhooks in the Configuration Center.
Once webhooks are enabled, you'll receive webhook events when a capture request is processed. When a capture request is processed, we send you a webhook event with the following details: To check other webhooks, you can see our webhook event types list. If you want to test multiple partial captures in our pre-production environment, please reach out to your Account Manager or Customer Support team get you pre-production MID enabled for the multiple partial captures feature. Once your MID is enabled, you can test multiple partial captures using payment products and test cards listed below: To view the capture status for a specific transaction, go to the "Transactions" menu on the left side. Select the "Add Filters" button and choose a capture status code from the menu on the right. There are three possible status codes: Once you select a status code, the capture history appears on the right side. Once you create a payment, you can initiate a capture and check its status. To see details of a specific capture, select it from the "Captures" drop-down menu next to the "Payment" button. The WX report provides additional Multiple Partial Capture (multiple partial captures) related data fields for every multiple partial captures transaction. The WX report includes the following three new fields at the positions described below: WX-XML WX-CSV WX-ASCII
Event
Description
capture.created
The transaction has been created. This is the initial state once the new capture is created.
capture.rejected
We or one of our downstream acquirers/providers have rejected the capture request.
capture.cancelled
The capture request has been cancelled.
capture.captured
The capture has been captured and we have received the online confirmation.
capture.paid
We have matched the incoming funds with the capture.
capture.chargebacked
The capture has been chargebacked.
capture.chargeback_notification
We received a notification of a chargeback and this status informs you that your account will be debited for this particular capture.
capture.requested
The capture has been requested. We haven't received an online confirmation yet.
payment.completed
The transaction has been completed, this is the final state. No additional actions are possible, except for refunds.
payment.capture_in_progress
The first capture of the payment has been received. At this state, you can initiate a refund for the already captured amount and any additional captures.
Testing
Testing authorization and captures
Testing refunds
Testing cards details
Scheme
PPID
CC Number
CVV/CAVV
Expiry Date
Visa
1
4012001037141112
840
12/27
Visa with 3DS
1
44977830259535756
123
12/27
Mastercard
3
5204730000001003
100
12/35
Visa with external 3DS
1
4012001037141112
212 / YwAAAWYC5vGnU+4AmYxdgm5QUUA=
12/27
Mastercard with external 3D
3
5204730000001003
123 / kANnMdSX47pGwDsg15UKaJeB6eJl
12/35
Apple Pay-Visa
302
4761739001010010
YwAAAB4EEI0Vn70BcjyTgFhgAgA=
12/27
Apple Pay-Mastercard
303
5204730000001003
YwAAAB4EEI0Vn70BcjyTgFhgAgA=
12/35
Google Pay-Visa
320
4761739001010010
YwAAAB4EEI0Vn70BcjyTgFhgAgA=
12/27
Google Pay-Mastercard
321
5204730000001003
YwAAAB4EEI0Vn70BcjyTgFhgAgA=
12/35
Diners
132
36259600500102
397
0728
Discover
128
6011492100005191
456
0728
Reporting
Insights


Check the status of your payment



Check capture history

WX reporting
Fields
Description
CaptureID
Reference of the capture returned in the response (New field).
FinalCaptureInd
Indicates to Worldline that this capture is the final one for the payment; the authorization can be closed. No further captures can be sent for this payment (New field).
CaptureReference
Your unique reference for the capture to reconcile our report files (New field).
FAQ
Yes, you can only have multiple partial captures supported acquirer as a fallback.