Skip to main content

Capture a payment

See Common API topics - Reserve and Capture for a general introduction to reservations and captures.

A capture can be made in full, or partial. The capture amount must be defined in the POST:/payments/{reference}/capture request.

Capture via the API

Once the goods or services are delivered or on their way to the customer it is time to capture the payment. See: When should I charge the customer?.

Capture is done with a POST:/payments/{reference}/capture request.

An example request body:

{
"modificationAmount":{
"currency":"NOK",
"value":49900
}
}

In the response, the aggregate object will be updated to reflect the capture, for example:

{
"aggregate":{
"authorizedAmount":{
"currency":"NOK",
"value":49900
},
"cancelledAmount":{
"currency":"NOK",
"value":0
},
"capturedAmount":{
"currency":"NOK",
"value":49900
},
"refundedAmount":{
"currency":"NOK",
"value":0
}
}
}

A notification will also be sent once the capture is completed if a webhook is registered for the event epayments.payment.captured.v1.

Partial Capture

If you do not wish to capture the entire amount a smaller amount than authorized can be captured. This can be done multiple times.

The Idempotency-Key header is there to help you ensure at most once operation where needed.

An example of a partial capture request body (capturing 100.00 NOK of the 499.00 NOK reserved):

{
"modificationAmount":{
"currency":"NOK",
"value":10000
}
}

Once the capture is completed the aggregate will be updated to reflect this, for example:

{
"aggregate":{
"authorizedAmount":{
"currency":"NOK",
"value":49900
},
"cancelledAmount":{
"currency":"NOK",
"value":0
},
"capturedAmount":{
"currency":"NOK",
"value":10000
},
"refundedAmount":{
"currency":"NOK",
"value":0
}
}
}

If you are not going to capture the rest of the authorized amount you should cancel the remaining amount.