Storable Ledgers & Payments API

Tenant ledgers, payments, payment methods, invoices.

OpenAPI Specification

storable-ledgers-payments-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Storable Edge (storEDGE) Delinquency & Auctions Ledgers & Payments API
  description: A representative OpenAPI reference for the Storable Edge (storEDGE) REST API, the modern property-management API in the Storable brand family (SiteLink, storEDGE, SpareFoot). The endpoint paths, HTTP methods, and parameter names below are taken from Storable's public v1 API reference at https://api.storedgefms.com/docs/v1.html. That page enumerates roughly 150 endpoints across tenants, units, ledgers, leads, move-ins/outs, gate access, insurance, tasks, documents/eSign, delinquency/auctions, and reporting; this document models a representative subset of those confirmed paths per resource area rather than every documented route. Response/request body schemas below are reasonably modeled from the named resources (tenant, unit, ledger, lead, etc.) since the source page documents endpoints and parameters but was not captured with full field-by-field JSON schemas - treat schema properties as illustrative, not a verbatim contract. All calls are scoped to a facility (or company) by path parameter and authenticated with one-legged OAuth 1.0 (API access key + secret issued to a storEDGE customer, used as the OAuth consumer key/secret with no additional handshake).
  version: '1.0'
  contact:
    name: Storable
    url: https://www.storable.com/products/edge/
servers:
- url: https://api.storedgefms.com/v1
  description: Storable Edge (storEDGE) production API, one-legged OAuth 1.0
security:
- oauth1: []
tags:
- name: Ledgers & Payments
  description: Tenant ledgers, payments, payment methods, invoices.
paths:
  /{facility_id}/ledgers:
    get:
      operationId: listLedgers
      tags:
      - Ledgers & Payments
      summary: List tenant ledgers
      parameters:
      - $ref: '#/components/parameters/facilityId'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/perPage'
      responses:
        '200':
          description: A page of ledgers.
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    $ref: '#/components/schemas/Meta'
                  ledgers:
                    type: array
                    items:
                      $ref: '#/components/schemas/Ledger'
  /{facility_id}/ledgers/{id}:
    get:
      operationId: getLedger
      tags:
      - Ledgers & Payments
      summary: Get a ledger by ID
      parameters:
      - $ref: '#/components/parameters/facilityId'
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The ledger.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ledger'
  /{facility_id}/ledgers/{ledger_id}/make_payment:
    post:
      operationId: makeLedgerPayment
      tags:
      - Ledgers & Payments
      summary: Make a payment against a ledger
      parameters:
      - $ref: '#/components/parameters/facilityId'
      - name: ledger_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInput'
      responses:
        '200':
          description: Payment result.
  /{facility_id}/ledgers/{ledger_id}/update_autopay:
    put:
      operationId: updateLedgerAutopay
      tags:
      - Ledgers & Payments
      summary: Enable, disable, or update autopay on a ledger
      parameters:
      - $ref: '#/components/parameters/facilityId'
      - name: ledger_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
                payment_method_id:
                  type: string
      responses:
        '200':
          description: Autopay updated.
  /{facility_id}/tenants/{tenant_id}/payment_methods:
    get:
      operationId: listTenantPaymentMethods
      tags:
      - Ledgers & Payments
      summary: List a tenant's stored payment methods
      parameters:
      - $ref: '#/components/parameters/facilityId'
      - $ref: '#/components/parameters/tenantId'
      responses:
        '200':
          description: Payment methods.
    post:
      operationId: createTenantPaymentMethod
      tags:
      - Ledgers & Payments
      summary: Add a payment method for a tenant
      parameters:
      - $ref: '#/components/parameters/facilityId'
      - $ref: '#/components/parameters/tenantId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentMethodInput'
      responses:
        '201':
          description: Payment method created.
  /{facility_id}/payment_intents:
    get:
      operationId: listPaymentIntents
      tags:
      - Ledgers & Payments
      summary: List payment intents
      parameters:
      - $ref: '#/components/parameters/facilityId'
      responses:
        '200':
          description: Payment intents.
  /{facility_id}/invoices/{id}:
    get:
      operationId: getInvoice
      tags:
      - Ledgers & Payments
      summary: Get an invoice by ID
      parameters:
      - $ref: '#/components/parameters/facilityId'
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The invoice.
  /{facility_id}/invoiceable_items:
    get:
      operationId: listInvoiceableItems
      tags:
      - Ledgers & Payments
      summary: List invoiceable items (fees, retail, insurance, services)
      parameters:
      - $ref: '#/components/parameters/facilityId'
      responses:
        '200':
          description: Invoiceable items.
  /{facility_id}/authorize_funds:
    post:
      operationId: authorizeFunds
      tags:
      - Ledgers & Payments
      summary: Authorize funds on a payment method (e.g. digital wallet)
      parameters:
      - $ref: '#/components/parameters/facilityId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                payment_method_id:
                  type: string
                amount:
                  type: number
      responses:
        '200':
          description: Authorization result.
components:
  parameters:
    perPage:
      name: per_page
      in: query
      description: Items per page for paginated collection endpoints (default 100).
      schema:
        type: integer
        default: 100
    tenantId:
      name: tenant_id
      in: path
      required: true
      schema:
        type: string
    page:
      name: page
      in: query
      description: Page number for paginated collection endpoints.
      schema:
        type: integer
        default: 1
    facilityId:
      name: facility_id
      in: path
      required: true
      description: The storEDGE facility ID the request is scoped to.
      schema:
        type: string
  schemas:
    PaymentMethodInput:
      type: object
      properties:
        type:
          type: string
          enum:
          - credit_card
          - ach
          - digital_wallet
        token:
          type: string
    Meta:
      type: object
      description: Every storEDGE response body includes a meta hash with request parameters, method, pagination, and status/error details.
      properties:
        status_code:
          type: integer
        status_message:
          type: string
        error_code:
          type: integer
          nullable: true
        request_id:
          type: string
        page:
          type: integer
        per_page:
          type: integer
        total_count:
          type: integer
    Ledger:
      type: object
      properties:
        id:
          type: string
        tenant_id:
          type: string
        unit_id:
          type: string
        balance:
          type: number
        next_due_date:
          type: string
          format: date
        autopay_enabled:
          type: boolean
        delinquent:
          type: boolean
    PaymentInput:
      type: object
      properties:
        payment_method_id:
          type: string
        amount:
          type: number
  securitySchemes:
    oauth1:
      type: http
      scheme: oauth1
      description: 'Non-standard OpenAPI representation of storEDGE''s actual scheme: one-legged OAuth 1.0. The API access key issued to a storEDGE customer is used as the OAuth consumer key and the API secret key as the consumer secret, signing each request; there is no three-legged redirect/token exchange.'