# Capture ## Introduction In card transactions, there are generally two steps: authorization and capture: **Authorization**: When the customer submits a payment, a request is sent to the issuing bank to confirm whether the transaction can proceed. If the issuing bank approves the authorization, the bank will freeze the corresponding amount, but no actual transfer occurs. **Capture**: After the merchant completes the delivery of goods or services, a request is sent to the acquirer to actually transfer the previously authorized amount to the account. There are two capture modes: - Automatic capture, which completes capture at the same time as authorization. The default is automatic capture. - Manual capture, where capture is initiated manually after authorization. Note that capture must be completed within 7 calendar days after authorization, otherwise the transaction will be automatically voided. ## Authorization ### Set Automatic Capture Automatic capture is the default capture method. After successful authorization, capture is completed automatically, and manual capture is not allowed. > The webhook notification includes an authorization success notification Request Example [Initiate Transaction](/payments/apis/payments/openapi/transaction/payments-opl_1) ```json { ... "capture_method": "AUTOMATIC", "merchant_id": "18356675194960", "payment_type": "PURCHASE", "trans_id": "m1721xxx938999", "currency": "USD", "amount": "300", "payment": { "payment_method": "BANKCARD", "shopper_reference": "myuserid001", "card_no": "4242424242424242", "exp_year": "2031", "exp_month": "07", "cvv": "123", "holder_name": "lisa" } ... } ``` ### Set Manual Capture Manual capture requires the merchant to manually initiate capture at any time after successful authorization (for example, after goods are shipped), and you can cancel the payment at any time before capture (for example, if there is a problem with shipping). > The webhook notification includes an authorization success notification Request Example [Initiate Transaction](/payments/apis/payments/openapi/transaction/payments-opl_1) ```json { ... "capture_method": "MANUAL", "merchant_id": "18356675194960", "payment_type": "PURCHASE", "trans_id": "m1721xxx938999", "currency": "USD", "amount": "300", "payment": { "payment_method": "BANKCARD", "shopper_reference": "myuserid001", "card_no": "4242424242424242", "exp_year": "2031", "exp_month": "07", "cvv": "123", "holder_name": "lisa" } ... } ``` ## Capture Request Example [Capture](/payments/apis/payments/openapi/transaction/payments-capture-opl_1) ```json { "merchant_id": "18356675194960", "order_id": "GW20620xxxxx6999", "currency": "USD", "amount": "300", "capture_final": true } ``` Successful Response Example ```json { "ret_code": "000000", "ret_msg": "Success", "data": { "merchant_id": "18356675194960", "order_id": "GW20620xxxxx6999", "currency": "USD", "amount": "300" } } ``` Failed Response Example ```json { "ret_code": "010000", "ret_msg": "Invalid request" } ``` ## Partial Capture Request Example [Capture](/payments/apis/payments/openapi/transaction/payments-capture-opl_1) ```json { "merchant_id": "18356675194960", "order_id": "GW20620xxxxx6999", "currency": "USD", "amount": "100", "capture_final": true } ``` Successful Response Example ```json { "ret_code": "000000", "ret_msg": "Success", "data": { "merchant_id": "18356675194960", "order_id": "GW20620xxxxx6999", "currency": "USD", "amount": "100" } } ``` Failed Response Example ```json { "ret_code": "010000", "ret_msg": "Invalid request" } ``` ## Result Notification Refer to [Webhook](/payments/docs/developer-resources/webhook)