amount to a card the customer saved earlier, through the payment gateway. This moves real money and is not idempotent: do not retry blindly.preferred_card_id, that card is tried first and the customer's other cards next. Without it, only the reservation's preferred card is tried when it has one; otherwise every saved card is tried until one is approved.success: true, whether or not the card was charged. Read data.result:payment_approved: the card was charged. data.payment is the recorded payment and data.transaction the gateway transaction.payment_request_sent: no card was approved, send_payment_request was 1 and the customer has an email, so a payment request for amount was created (data.payment_request, with its payment_link).payment_declined: no card was approved (or the customer has no usable saved card) and no payment request was created.quote, pending or pending-reserved reservation.skip_payment_email is sent or payment emails are disabled.skip_payment_request_email is sent.skip_payment_email, skip_payment_request_email and authorization act on presence: any value, including 0 or false, turns them on. Leave them out to keep the default.{
"amount": 167.75,
"send_payment_request": 1
}data.result. HTTP 200 is also used for failures: always check success. When it is false, the body is an ErrorUnauthorized (status_code 401 or 403).{
"success": true,
"status_code": 200,
"errors": [],
"data": {
"result": "payment_approved",
"reservation": {
"id": 1052,
"header": "Jane Doe - RA #1052",
"pick_up_date": "2026-12-01 10:00:00",
"return_date": "2026-12-05 10:00:00",
"flight_arrival_date": "2026-12-01 10:00:00",
"flight_departure_date": "2026-12-05 10:00:00",
"flight_number": "AA1234",
"flight_departure_number": "",
"pick_up_location": {
"id": 1,
"name": "Miami Airport",
"timezone": "America/New_York"
},
"return_location": {
"id": 1,
"name": "Miami Airport",
"timezone": "America/New_York"
},
"vehicle_class_id": 3,
"customer_id": 4821,
"public_link": "",
"comments": [
{
"id": 0,
"comment": "string",
"created_by": "string",
"created_at": "string",
"created_at_diff_with_now": "2 hours ago"
}
],
"distance_limits": {
"distance_allowed": 0,
"distance_limit_per_day": 0,
"distance_unit": "string",
"distance_unlimited": true,
"distance_extra_price": {
"currency": "usd",
"currency_icon": "$",
"amount": "180.00",
"usd_amount": "180.00",
"amount_for_display": "$180.00"
},
"distance_extra_price_with_tax": {
"currency": "usd",
"currency_icon": "$",
"amount": "180.00",
"usd_amount": "180.00",
"amount_for_display": "$180.00"
}
},
"distance_driven": 0,
"property1": "string",
"property2": "string"
},
"payment": {
"id": 845,
"reservation_type": "car_rental.reservations",
"reservation_id": 1052,
"amount": {
"currency": "usd",
"currency_icon": "$",
"amount": "180.00",
"usd_amount": "180.00",
"amount_for_display": "$180.00"
},
"label": "string",
"reference": "string",
"authorization_or_payment": "payment",
"payment_type": "Cash",
"date": "2026-12-01",
"status": "Approved",
"currency": "usd",
"created_by": "N/A",
"transaction": {}
},
"transaction": {
"id": 5512,
"uuid": "8c1f7c1e-2b9a-4a51-9d1e-6f2a0b0f3c11",
"item_type": "car_rental.reservations",
"item_id": 1052,
"gateway_id": 2,
"method_id": 3,
"amount": "167.75",
"currency": "usd",
"status": "paid"
},
"payment_request": {
"id": 310,
"request_type": "payment",
"email": "jane.doe@example.com",
"status": "sent",
"amount": {
"currency": "usd",
"currency_icon": "$",
"amount": "180.00",
"usd_amount": "180.00",
"amount_for_display": "$180.00"
},
"uuid": "0d8f6a2e-6c1b-4d55-8f0e-3b9a7c2d1e4f",
"payment_link": "https://yourcompany.example.com/public/car-rental/all-payments/0d8f6a2e-6c1b-4d55-8f0e-3b9a7c2d1e4f/requests/resolve"
}
}
}