Capture

Capture a previously authorized (pre-auth) transaction. Uses the enhanced breakdown which includes a surcharge sub-object, allowing surcharge details to be passed at capture time.

The breakdown.surcharge object accepts:

  • rate — surcharge percentage (e.g., 3.0 for 3%)
  • amount — fixed surcharge amount in cents
  • bypass — set to true to skip surcharge for this transaction

If a surcharge is included and the account has surcharging enabled, the surcharge amount is calculated and added to the total. The resulting surcharge_amount and surcharge_rate are returned on the Transaction response.

Path Parameters
  • transaction_id
    Type: string · Transaction Id
    required

    ID of the pre-authorized transaction to capture.

Headers
  • Accept
    enum
    const:  
    application/json
    required

    Response format. Must be application/json.

    values
    • application/json
  • Content-Type
    enum
    const:  
    application/json
    required

    Request payload format. Must be application/json when a body is sent.

    values
    • application/json
Body
required
application/json

Capture request model. Uses the enhanced breakdown with surcharge support instead of the legacy Breakdown.

  • amount
    Type: integer | null · Amount

    Optional capture amount in cents. If omitted, the full authorized amount is captured.

  • breakdown
    Type: object · Breakdown (with Surcharge) nullable

    Enhanced payment amount breakdown with surcharge support. Rates can be sent as integers (old SDK format, e.g., 875 = 8.75%) or floats (new SDK format, e.g., 8.75). Values >= 100 are auto-converted from basis points.

  • event_id
    Type: string | null · Event Id

    Idempotency key. Auto-generated if omitted.

  • tip_amount
    Type: integer | null · Tip Amount

    Optional tip amount in cents to apply at capture time.

Responses
  • application/json
  • 400

    Transaction is not in a capturable state (e.g., already captured, voided, or not an auth transaction).

  • 404

    Transaction not found.

  • application/json
Request Example for post/v3/payments/{transaction_id}/capture
curl 'https://api.uat.koard.com/v3/payments/{transaction_id}/capture' \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'x-koard-apikey: YOUR_SECRET_TOKEN' \
  --data '{
  "event_id": "evt_capture_001"
}'
{
  "account_id": "string",
  "additional_details": {},
  "apple_transaction_id": "string",
  "batch_id": null,
  "card": "string",
  "card_brand": "string",
  "card_type": "string",
  "created_at": 1,
  "currency": "string",
  "device_id": null,
  "event_id": "string",
  "gateway": null,
  "gateway_transaction_id": null,
  "gateway_transaction_response": null,
  "history": [],
  "location_id": null,
  "merchant_name": "",
  "mid": "string",
  "owner_id": null,
  "parent_account_ids": [
    "string"
  ],
  "payment_method": "string",
  "processor": null,
  "processor_mid": "string",
  "processor_response_code": null,
  "processor_response_message": null,
  "processor_tid": "string",
  "reader_identifier": "string",
  "refunded": null,
  "reversed": null,
  "status": null,
  "status_reason": null,
  "subtotal": 1,
  "surcharge_amount": null,
  "surcharge_applied": false,
  "surcharge_rate": null,
  "tax_amount": null,
  "tax_rate": null,
  "tid": "string",
  "tip_amount": null,
  "tip_type": null,
  "total_amount": 1,
  "transaction_id": "string",
  "transaction_type": null
}