Prerequisites
To make a payment for a move-in, lease, or tenant balance, your API credentials must include permissions for the following endpoints:
Start Lightbox Session
Make Lease Payment
Make Tenant Payment
Complete Move-In
Read Lease Balance Due
Read Tenant Balance Due
π‘ Optional but recommended: Have access to the QMS App for testing the payment flow end-to-end.
Payment Types
1. Tenant Balance Payment
Must pay the entire tenant balance.
Partial payments are not allowed.
2. Lease Balance Payment
Partial payments are allowed, mainly for delinquency purposes.
You can choose to pay any portion of the lease balance.
Workflow: Paying a Lease Balance
Step 1 β Fetch Lease Balance
Endpoint
βGET /api/v2/companies/{companyCode}/facilities/{facilityCode}/end-users/{endUserId}/leases/{leaseId}/balance-due
Example Request URL
https://public.trial.quikstor.com/api/v2/companies/long/facilities/atx/end-users/afbf2f50-a477-4f84-bec9-b8ce72687689/leases/1641d032-2ae7-4e38-99a4-9f5b3f7f2e21/balance-due
Example Response
{ "balanceDue": 281.50 }
Step 2 β Initiate Lease Payment
Endpoint
βPOST /api/v2/companies/{companyCode}/facilities/{facilityCode}/end-users/{endUserId}/leases/{leaseId}/payment
Example Request URL
https://public.trial.quikstor.com/api/v2/companies/long/facilities/atx/end-users/afbf2f50-a477-4f84-bec9-b8ce72687689/leases/1641d032-2ae7-4e38-99a4-9f5b3f7f2e21/payment
Depending on the payment method, payments can be made in three ways:
Payment Methods
A. Credit Card (via Elavon Lightbox)
Required fields:
amountexternalId(Elavon Lightbox transaction ID)
Example
{
"idempotencyKey": "f4b88111-dd1c-b51f-0308-425d52b192ae",
"payment": {
"paymentType": "Lightbox",
"paymentCreditCardLightbox": {
"amount": 281.50,
"externalId": "{{elavon_lightbox_ssl_txn_id}}"
}
}
}Note: For GDPR compliance, raw credit card details are never stored.
Use the Lightbox payment gateway to securely collect card information and return a transaction token (ssl_txn_id).
See Elavon Lightbox Overview for details.
B. ACH Payment
Required fields:
amountBank Account Info:
accountHolderName,accountNumber,routingNumberBilling Info:
firstName,lastName,street1,city,state,postalCode,country
Example
{
"idempotencyKey": "f4b88111-dd1c-b51f-0308-425d52b192ae",
"payment": {
"paymentType": "ACH",
"paymentAch": {
"amount": 281.50,
"bankAccount": {
"accountHolderName": "Example",
"accountNumber": "490000018",
"routingNumber": "12345679"
},
"billingInfo": {
"city": "Los Angeles",
"country": "US",
"firstName": "John",
"lastName": "Doe",
"postalCode": "90001",
"street1": "S Western Avenue",
"state": "CA"
}
}
}
}C. Payment on File
Use when the tenant already has a saved payment method.
Fetch saved methods
βGET /api/v2/companies/{companyCode}/facilities/{facilityCode}/end-users/{endUserId}/leases/{leaseId}/auto-billing
Example Response
{
"creditCardMethodsOnFile": [
{
"id": "6e2f9956-4527-4aa3-82c5-109d8e3bcb9e",
"name": "John Doe VISA",
"firstName": "John",
"lastName": "Doe",
"state": "CA",
"city": "Los Angeles",
"postalCode": "90001",
"street1": "S Western Avenue",
"cardholderName": "John Doe",
"last4CreditCardDigits": "1111",
"creditCardType": "Visa",
"expirationYear": 2030,
"expirationMonth": 12,
"useForAutoBilling": false,
"autoPaymentPriority": 0
}
],
"achEftMethodsOnFile": [
{
"id": "8e48e074-2b1d-47f1-93c5-de0380e5e4c8",
"name": "John Doe Checking",
"firstName": "John",
"lastName": "Doe",
"city": "Los Angeles",
"state": "CA",
"postalCode": "90001",
"street1": "S Western Avenue",
"accountHolderName": "John Doe",
"last4BankAccountDigits": "5679",
"useForAutoBilling": false,
"autoPaymentPriority": 0
}
]
}
Required fields:
amountmethodOnFileIdpaymentType:"CreditCardOnFile"or"AchOnFile"
Example
{
"idempotencyKey": "f4b88111-dd1c-b51f-0308-425d52b192ae",
"payment": {
"paymentType": "CreditCardOnFile",
"paymentOnFile": {
"amount": 281.50,
"methodOnFileId": "6e2f9956-4527-4aa3-82c5-109d8e3bcb9e"
}
}
}Using Elavon Lightbox (Credit Card Tokenization)
To securely collect card data, start a Lightbox session.
Endpoint
βPOST /api/v2/companies/{companyCode}/facilities/{facilityCode}/payments/lightbox-sessions
Example Request
https://public.trial.quikstor.com/api/v2/companies/long/facilities/atx/payments/lightbox-sessions
Body
{
"amount": 281.50,
"billingInfo": {
"city": "Los Angeles",
"country": "US",
"firstName": "John",
"lastName": "Doe",
"postalCode": "90001",
"street1": "S Western Avenue",
"state": "CA"
}
}Example Response
{ "sessionToken": "k302MVRuTuOtG2KTbbvMxgAAAZm/AmfT" }
Testing Lightbox
You can test payments via the QMS Playground:
URL:
βhttps://app.trial.quikstor.com/{{companyCode}}/api/playground
Steps to test payment using lightbox playground:
Enter your Lightbox session token.
Click Proceed to Payment.
Use the following test credentials:
Field | Value |
Card Number |
|
Expiration |
|
CVV2 | any 3β4 digit number (e.g. |
When payment completes, a response from lightbox is logged in the console containing:
"ssl_txn_id": "071025C45-F597105F-97B0-43C7-A775-BAC302F3A8F2"
Use this ssl_txn_id as the externalId in your payment request.
β οΈ Important Notice:
Before rendering the Elavon Lightbox payment form, your domain must be whitelisted in our system.
Lightbox sessions can only be initiated and displayed from approved (whitelisted) domains. If your domain is not whitelisted, the payment modal will fail to load due to security restrictions.
Please contact us at [email protected] to have your testing or production domain added to the allowed origin list before proceeding with integration.
External References
Test Cards: Elavon Test Cards
Elavon Lightbox Documentation: Lightbox Overview
Bluefin Integration Reference: Elavon PayConex Docs




