Aaron's · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Aaron's Hosted Payment Page

5 actions 5 updates documentation extends ../openapi/aarons-hpp-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Aaron's's API. It is a proposal applied on top of the contract, not a document Aaron's publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

descriptiontermsOfServicecontacturlsummary

Targets 5

$.info
$.externalDocs
$.tags
$.securityDefinitions.Bearer
$.paths['/ping'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Aaron's Hosted Payment Page
  version: 1.0.0
extends: ../openapi/aarons-hpp-openapi.json
x-provenance:
  generated: '2026-08-29'
  method: generated
  source: >-
    Derived entirely from the verbatim contract at https://hpp.aarons.com/openapi.json plus probes
    recorded in this repo. Nothing below asserts behaviour Aaron's has not published or that we did
    not observe. The original document is never mutated.
  note: >-
    The upstream document is machine-generated by ServiceStack and carries no info.description, no
    contact, no licence, no external docs, no operation summaries or descriptions, and no 4xx/5xx
    responses. This overlay supplies only the descriptive metadata we can honestly state.
actions:
  - target: $.info
    description: Add a substantive description, contact and terms to an otherwise bare info block.
    update:
      description: >-
        Aaron's Hosted Payment Page (HPP) service. Creates a payment session, collects and tokenises
        a customer card, runs a zero-dollar authorisation with AVS/CVV2 verification, authorises the
        session, and receives authorisation and card-vault postbacks from the Fiserv and Repay
        payment gateways. Used by Aaron's own lease-payment and EZPay experiences. There is no
        public developer program: bearer tokens are not issued to third parties.
      termsOfService: https://www.aarons.com/terms-of-service.html
      contact:
        name: Aaron's Customer Service
        url: https://www.aarons.com/contact
  - target: $.externalDocs
    description: There is no published developer documentation; point at the closest real page.
    update:
      description: >-
        Aaron's publishes no developer documentation for this contract. The link below is the
        consumer-facing EZPay page, which is the nearest human-readable description of the flow.
      url: https://www.aarons.com/ezpay.html
  - target: $.tags
    description: Group the 14 machine-generated tags into the flows they actually belong to.
    update:
      - name: CreateSession
        description: Session lifecycle — opens the hosted payment session a card is collected into.
      - name: CustomerData
        description: Customer context attached to a session (application id, email, language, consent to save on file).
      - name: CreateToken
        description: Card tokenisation.
      - name: SaveToken
        description: Persists a tokenised instrument against the customer, with a terms version.
      - name: AuthorizeSession
        description: Authorises the payment for an open session.
      - name: MemoryBearerToken
        description: Short-lived bearer token exchange for the hosted page.
      - name: MemoryTokenGuid
        description: Token GUID exchange for the hosted page.
      - name: SaveDeviceIntelligence
        description: Device fingerprint / navigator data captured for fraud screening.
      - name: AutoPayCustomerRetry
        description: Retries a failed automatic (EZPay) payment by payment GUID.
      - name: UpdateCustomerRetryNotification
        description: Updates the customer notification state for a retried payment.
      - name: FiservPostback
        description: Inbound authorisation callback from the Fiserv gateway.
      - name: RepayAuthPostback
        description: Inbound authorisation event from the Repay gateway, in Repay's versioned event envelope.
      - name: RepayCardVaultPostback
        description: Inbound stored-payment lifecycle event from the Repay card vault.
      - name: ping
        description: Unauthenticated liveness check.
  - target: $.securityDefinitions.Bearer
    description: State what the bearer token is and how it is obtained, since the contract does not.
    update:
      description: >-
        Bearer token supplied in the Authorization header. Not self-service: tokens are minted by
        Aaron's for its own hosted-page session flow (see /MemoryBearerToken and /CreateToken).
        No lifetime, rotation or scope model is published.
  - target: $.paths['/ping'].get
    description: Mark the one operation that is genuinely callable without credentials.
    update:
      summary: Liveness check.
      description: >-
        Unauthenticated liveness endpoint. Observed live returning HTTP 200 with an HTML "Ping
        Snapshot" page at https://hpp.aarons.com/ping on 2026-08-29.
x-notes:
  - >-
    NOT applied by this overlay, deliberately: the upstream document declares GET, PUT, POST and
    DELETE on all 15 paths — a ServiceStack any-verb routing artefact, not a designed method
    contract. Pruning the phantom verbs would require knowing which one is real for each route, and
    Aaron's does not publish that. Recorded as a finding in conventions/aarons-conventions.yml
    instead of guessed at here.
  - >-
    NOT applied: error responses. Adding 4xx/5xx responses would improve our derived artifacts while
    misrepresenting the provider's contract quality. The gap is recorded in
    errors/aarons-problem-types.yml.