Card Payment Intent Request Generation by Booking ID API
Card Payment Intent Request Generation by Booking ID API Endpoint
Payment Intent Request Generation API (Multi-Gateway & Methods)
POST /v1/booking/{bookingId}/rental-quote/payment-intent
This endpoint generates a payment intent for the given booking and returns all UI keys needed to load the selected
payment gateway. It supports multiple gateways and methods (e.g., Stripe CARD/SEPA, Lyra, Viva, Brain Tree).
If a gateway/method is not explicitly requested, the property’s default configuration is used. The selected option
is echoed in data.paymentGateway and data.paymentMethod. Depending on the gateway, the
intent value is provided as a client token, form token, or a redirect URL in
data.terminalPaymentSecretId.
Stripe
- Gateway: data.paymentGateway = STRIPE
- Method: data.paymentMethod (e.g., CARD or SEPA)
- Public Key: data.publicKey
- Payment Intent: data.terminalPaymentSecretId
- Language LCID Code: data.languageLCIDCode
Usage for Stripe: Use the public key, payment intent, and language LCID code to initialize the Stripe client and render the payment form for the chosen method.
Lyra
- Gateway: data.paymentGateway = LYRA
- Method: data.paymentMethod (e.g., CARD)
- Public Key (kr-public-key): data.publicKey
- Form Token (kr-form-token): data.terminalPaymentSecretId
- Language LCID Code (kr-language): data.languageLCIDCode
Usage for Lyra: Initialize the KR library with the public key, set the language, and mount the form using the returned form token.
Viva
- Gateway: data.paymentGateway = VIVA
- Method: data.paymentMethod (e.g., CARD)
- Redirect URL: data.terminalPaymentSecretId
- Language LCID Code: data.languageLCIDCode
Usage for Viva: Redirect the customer to the URL provided in data.terminalPaymentSecretId to complete the payment on Viva. After payment, handle the return/callback as configured in your Viva settings.
Brain Tree
- Gateway: data.paymentGateway = BRAIN_TREE
- Authorization Client Token: data.terminalPaymentSecretId
- Language LCID Code: data.languageLCIDCode
Usage for Brain Tree: Pass the client token to the Braintree SDK and render the drop-in UI with the preferred payment method(s).
/v1/booking/{bookingId}/rental-quote/payment-intent
application/json
application/json
Request Header
-
Authorization: X-API-Key string required
X-API-Key is a string of letters and numbers used to authenticate and control access to the API. It can be generated in the StoRegister management application.
URL Query Parameters:
-
bookingId string required
bookingId refers to an activity ID of the specific booking.
-
onlinePaymentModeId string
onlinePaymentModeId refers to an payment method of the specific paymentgateway.
Response Payload:
-
succeeded boolean
true
when the payment intent was created successfully; otherwisefalse
. -
status string
High-level request status (e.g., SUCCESS). -
data object | null
Payment intent details and gateway selection.null
when the operation fails. -
errors array | null
Error list when applicable;null
otherwise.
object: data
-
bookingId unique-identifier
Booking this payment intent belongs to. -
moveInDate string (date)
Move-in date used to compute amounts. -
transactInfo object
Snapshot of the priced transaction used to initialize the intent (see Transaction Details). -
id unique-identifier
Internal identifier of this payment intent record. -
businessPropertyId unique-identifier
Property configuration reference used to resolve gateways/methods. -
businessPaymentModeId unique-identifier
Resolved gateway configuration ID (e.g., Stripe/Viva/Lyra mapping). -
businessSubPaymentModeId unique-identifier
Resolved gateway method configuration ID (e.g., CARD/SEPA mapping). -
terminalPaymentSecretId unique-identifier | null
Reference for card-present/terminal flows;null
for online payments. -
publicKey string | null
Gateway public key for client SDKs when required; may benull
. -
languageLCIDCode string
Locale code for formatting and UI (e.g., fr-FR). -
otherPaymentMethods array
Other available gateway/method combinations that can be offered to the payer.object: data.otherPaymentMethods[]
-
id unique-identifier
Identifier of the alternative method configuration. -
businessPropertyId unique-identifier
Property context for this alternative. -
businessPaymentModeId unique-identifier
Gateway configuration ID. -
businessSubPaymentModeId unique-identifier
Method configuration ID. -
isDefault boolean
Whether this option is configured as default at the property level. -
paymentGatewayInfoId unique-identifier | null
Gateway info mapping; may benull
. -
paymentGateway string
Gateway label as configured (e.g., Viva). -
paymentMethod string
Method label supported by that gateway (e.g., CARD). -
name string
Human-readable option name for UI selection.
-
-
isDefault boolean
Indicates if the selected option is the default for the property. -
paymentGatewayInfoId unique-identifier
Gateway mapping used for this payment intent. -
paymentGateway string
Selected gateway for this intent (e.g., STRIPE). -
paymentMethod string
Selected method for this intent (e.g., CARD, SEPA). -
name string
Display name for the chosen payment option (e.g., “Card Payment (Stripe)”).
Transaction Details
Comprehensive snapshot of the priced transaction for the payment intent.
object: data.transactInfo
-
transactAmount object
Amount to be charged, provided as a numeric value and a localized display string. -
payableAmount object
Final payable amount (numeric plus localized display string). -
transactId string
Human-readable transaction reference (e.g., “ACT1”). -
transactDate object
Date object including the raw ISO date and a localized formatted date. -
propertyInfo object
Minimal property context (ID, name, city, coordinates, etc.). Many fields may benull
in this response. -
businessInfo object
Business identifier and display name. -
clientInfo object
Payer identity and contact information (includes nested country object).
Client Details
Payer identity and contact information used for the payment intent.
object: data.transactInfo.clientInfo
-
id unique-identifier
Tenant ID. -
contactBookInfoId unique-identifier | null
Linked contact record in the address book/CRM, if any. -
name string
Full name. -
email string
Email address. -
phoneNumber string
Phone number (may include country code). -
address string
Street address. -
city string
City. -
region integer
Region/State/Province identifier (0 when not set). -
postalCode string
Postal code. -
country object
Country metadata (ID, name, ISO codes, currency code, dialing code).
Property Details
Minimal property context included in the payment intent snapshot.
object: data.transactInfo.propertyInfo
-
id unique-identifier
Property ID. -
name string
Property name. -
brandName string | null
Brand label when applicable. -
displayName string | null
Customer-facing name (may benull
in this payload). -
emailId string | null
Contact email; may benull
. -
address string | null
Street address; may benull
. -
contactNumber string | null
Phone number; may benull
. -
city string
City of the property. -
region object | null
Region/state info when available. -
country object | null
Country info when available. -
latitude number
Latitude (0 when not set). -
longitude number
Longitude (0 when not set). -
postalCode string | null
Postal code; may benull
. -
officeHours string | null
Formatted office hours; may benull
. -
accessHours string | null
Formatted access hours; may benull
. -
identifier string | null
Slug/identifier; may benull
. -
countryISOCode2 string | null
Two-letter country code; may benull
. -
googlePlaceId string | null
Google Place ID; may benull
. -
propertyImageList array | null
Property images if present;null
otherwise.
Request Header
Authorization: X-API-Key --api-key--
API Response
{
"data":{
"bookingId":"2553e486-65c9-411b-a478-0d0dfbd168bf",
"moveInDate":"08-09-2025",
"transactInfo":{
"transactAmount":{
"price":56.89,
"formattedPrice":"56,89 €"
},
"payableAmount":{
"price":56.89,
"formattedPrice":"56,89 €"
},
"transactId":"ACT1",
"transactDate":{
"date":"2025-09-08",
"formattedDate":"08-09-2025"
},
"propertyInfo":{
"id":"dc8cde31-3e0d-44bb-b333-817c013d65aa",
"name":"Emmerich",
"brandName":null,
"displayName":null,
"emailId":null,
"address":null,
"contactNumber":null,
"city":"Emmerich",
"region":null,
"country":null,
"latitude":0.0,
"longitude":0.0,
"postalCode":null,
"officeHours":null,
"accessHours":null,
"identifier":null,
"countryISOCode2":null,
"googlePlaceId":null,
"propertyImageList":null
},
"businessInfo":{
"id":"50a54e81-5cef-4d22-81dd-fe6c6dc851c8",
"name":"StoRegister"
},
"clientInfo":{
"id":"d8f96c12-1353-41ef-8f37-a8bc3aa68287",
"contactBookInfoId":null,
"name":"avenall Pouchard",
"email":"[email protected]",
"phoneNumber":"33 0496587415",
"address":"46 Ferdinand Schmitz-Straße",
"city":"Rheinbrohl",
"region":0,
"postalCode":"56598",
"country":{
"id":82,
"name":"france",
"iSOCode2":"FR",
"iSOCode3":"FRA",
"currencyCode":"EUR",
"dialingCode":0
}
}
},
"id":"b1f1620f-75bb-48ab-ac22-052263c45257",
"businessPropertyId":"05725810-eabb-44ed-9bd2-70b87599fae4",
"businessPaymentModeId":"45f0ef12-263a-4a6f-8a54-35de53f88c86",
"businessSubPaymentModeId":"735c4a08-ab54-4d26-b9e3-4b874c0c1c38",
"terminalPaymentSecretId":"pi_xxxx_secret_xxxx",
"publicKey":"pk_xxxxxxxxxxxxxx",
"languageLCIDCode":"fr-FR",
"otherPaymentMethods":[
{
"id":"742453c0-56e3-498a-a051-28f2f47c182e",
"businessPropertyId":"05725810-eabb-44ed-9bd2-70b87599fae4",
"businessPaymentModeId":"45f0ef12-263a-4a6f-8a54-35de53f88c86",
"businessSubPaymentModeId":"51ad1239-daac-41ff-9035-7371b1677152",
"isDefault":false,
"paymentGatewayInfoId":null,
"paymentGateway":"Viva",
"paymentMethod":"CARD",
"name":"Viva Payment Card"
}
],
"isDefault":false,
"paymentGatewayInfoId":"bb0ae6f1-3c8a-488a-ac4d-98eda7907634",
"paymentGateway":"STRIPE",
"paymentMethod":"CARD",
"name":"card Payment (Stripe)"
},
"succeeded":true,
"status":"SUCCESS",
"errors":null
}
Error Codes
-
INVALID_PARAM_ACTIVITY_INFO_ID
INVALID_PARAM_ACTIVITY_INFO_ID refers to invalid activity ID. -
INVALID_ACTIVITY_INFO_DETAILS
INVALID_RESERVATION_INFO_DETAILS refers to unable to retreive the reservation details. -
ACTIVITY_CALCULATION_FAILED
ACTIVITY_CALCULATION_FAILED refers to unable to calculate transaction amount for payment. -
INVALID_PARAM_PAYMENT_GATEWAY_INFO_ID
INVALID_PARAM_PAYMENT_GATEWAY_INFO_ID refers to invalid payment gateway id or property did not have the payment gateway configuration. -
INVALID_CLIENT_INFO_DETAILS
INVALID_CLIENT_INFO_DETAILS refers to invalid client info details. -
PAYMENT_INTENT_CREATION_FAILED
PAYMENT_INTENT_CREATION_FAILED refers to unable to create payment intent for configured payment gateway. -
NO_RECORDS_FOUND
NO_RECORDS_FOUND means there is no relevant information found. -
FAILED
FAILED refers to an unsuccessful API call. -
SOMETHING_WENT_WRONG
SOMETHING_WENT_WRONG refers to technical glitch. Please contact administrator.