Skip to main content
In this guide, you will find step-by-step instructions on manually capturing a previously created payment on Yuno.
Automatic Delayed CaptureIf you prefer to have Yuno automatically capture payments after a specified delay, you can configure delayed_capture_settings when creating the payment. Learn more in the Cancel and Capture Flow guide.
Which payments can you captureOnly payments with PENDING status can be captured. Check the Payment status page for further details regarding the possible payment status.If the payment is already SUCCEEDED, it is already captured and there is nothing left to capture. This is the case for purchases (capture: true) and for authorizations (capture: false) sent to a provider that only supports immediate capture. In that second case Yuno creates the capture transaction for you and returns the payment as SUCCEEDED with sub_status = CAPTURED, so you can skip the capture call.

Requirements

To capture a payment, you need to:
  • Access your API credentials on the Yuno Dashboard, which consist of:
    • public-api-key
    • private-secret-key
  • Have the payment identification data received after creating the payment using the Create Payment endpoint:
    • id: The unique identifier of the payment, obtained from the parameter id after creating the payment.
    • transaction_id: The unique identifier of the transaction obtained from the parameter transaction.id after creating the payment.
Explore Yuno Postman CollectionsYuno provides Postman Collections that you can use to replicate the use cases locally.
Capture OptionsThis guide covers manual capture using the API endpoint. For other capture options including:
  • Real-time capture (immediate purchase)
  • Delayed capture (automatic capture after a delay)
See the Cancel and Capture Flow guide.

Capture a payment

You can capture a payment only if it has the PENDING status. Use the Capture Payment endpoint to capture the payment. To identify the payment to be captured, you need to provide its id and the transaction_id. In addition, you need to inform the amount to be captured using the object amount on the body request:
  • Complete capture: Leave the amount empty.
  • Partial capture: Provide the value to be captured using the parameter amount.
Payments with a Yuno promotionThe authorized amount is what the customer pays, amount.value minus discount_amount, so a complete capture takes that amount. See Promotions.
To confirm you have successfully captured the payment, check if the parameters from the Capture Payment endpoint response contain the following values:
  • type = CAPTURE
  • status = SUCCEEDED
  • payment.status = SUCCEEDED
  • payment.sub_status = CAPTURED/PARTIALLY_CAPTURED
If the response contains the above values, the capture was successful.

Payment already in a final state

If you call the capture endpoint on a payment that is no longer PENDING (for example, it was already captured, refunded, or canceled), the endpoint returns HTTP 400 with the code INVALID_STATUS:
Map this code as “no further operations apply to this payment” and do not retry the capture. To know the current state of the payment, use the Retrieve payment endpoint.

Check the payment status

If, for some reason, you need to confirm the payment capture:

See also