Card Payment Intent Request Generation by Booking ID API

Card Payment Intent Request Generation by Booking ID API Endpoint
StoRegister - Login

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).

GET
/v1/booking/{bookingId}/rental-quote/payment-intent
Request Content Type
application/json
Response Content Type
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; otherwise false.
  • 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 be null.
  • 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 be null.
    • 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 be null 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 be null in this payload).
  • emailId string | null

    Contact email; may be null.
  • address string | null

    Street address; may be null.
  • contactNumber string | null

    Phone number; may be null.
  • 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 be null.
  • officeHours string | null

    Formatted office hours; may be null.
  • accessHours string | null

    Formatted access hours; may be null.
  • identifier string | null

    Slug/identifier; may be null.
  • countryISOCode2 string | null

    Two-letter country code; may be null.
  • googlePlaceId string | null

    Google Place ID; may be null.
  • 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.