PayerLane
Sign in
← Back to home
Powered by Epicle, Inc
PayerLane
Facility Launcher
πŸ”
Clients & Facilities
Powered by Epicle, Inc
Admin Console
⬇ Download desktop app

Select a facility to manage

Pick a location from the left sidebar to view its details, or open Settings to create clients, facilities and users.

Users launch & sign in to these facilities from the desktop app.

Location
Site URL
Username
TOTP / 2FA

Settings

Users

Admin creates PayerLane users. Each user signs in and manages only their own clients, facilities and service logins. Developer users additionally get the API Management module (their own API partners, keys and webhooks).

    Login Site

    The site every facility opens for sign-in. Individual facilities may override this with their own URL.

    PayorLogic Elite shows the username, password and Sign In button on one page, so leave the login form URL blank to sign in directly on the site above. (Set it only if your site uses a separate login page.)

    Logout

    Used by the Logout session button (top-right). It clicks the user menu, then the Sign Out link, inside the live browser. Defaults match PayorLogic Elite.

    Two-Factor (2FA)

    When the 6-digit code screen appears, the app enters the TOTP code (2-second gap per digit). If you remember the device, the code screen is skipped until it expires β€” the app detects this automatically and only re-enters a code when the screen reappears.

    FoxyProxy (USA)

    The login screen only loads through the US proxy. Enable this so every browser launch routes through it automatically.

    Clients

      Add Facility

      Copies client, name, location, URL & selectors β€” not the username or password. Then just add the new entry's specifics.
      Current 6-digit code ------
      Advanced β€” custom field selectors (optional)

      API Management

      Expose PayerLane as a service. Partner environments authenticate with their own credentials and pull captured PDF documents through the /v1 API.

      Add a partner

      A partner is an organisation that connects to the API. Each is pinned to a Gateway user, so it can only pull that user's facilities and documents.

      Services this partner may use Leave all unticked to allow every service this scope can use.

      Partners

      Each partner gets one API key β€” a single bearer that consumes the whole API (like OpenAI/Claude). Send it as Authorization: Bearer gwk_…; no token step needed.

      ⚠ Copy this API key now β€” it is shown only once.
      partner api_key
      NameScopeStatusAPI KeyCreds
      No partners yet.

      Credentials

      Pick a partner on the Clients tab, then return here to issue credentials.

      ⚠ Copy this secret now β€” it is shown only once.
      client_id client_secret
      client_idLabelStatusLast used
      No credentials yet.

      Webhooks

      Pick a partner on the Clients tab first.

      When a job finishes, Gateway POSTs each captured document and a job summary to these URLs, signed with X-Gateway-Signature. The partner stores the secret (shown once) to verify it.

      ⚠ Copy this signing secret now β€” shown only once.
      secret
      URLEventsPayloadStatus
      No webhooks registered.

      Recent deliveries

      WhenEventTargetResultTries
      No deliveries yet.

      Captured documents

      Patient captures (demographics + insurance) by the engine, available to partners through the API.
      PatientDate of ServiceTypeFacilityScopeCaptured
      No captures yet.

      Base URL

      All endpoints are served under

      1 Β· Authenticate β€” pick one

      Simplest (recommended): use the partner's single API key directly as a bearer on every call β€” no token step. Generate it on the Clients tab.

      curl /v1/facilities \
        -H "Authorization: Bearer gwk_your_partner_api_key"

      Alternative (OAuth): exchange a client_id/secret for a 1-hour token, then send that token as the bearer.

      curl -X POST /v1/oauth/token \
        -H "Content-Type: application/json" \
        -d '{"grant_type":"client_credentials","client_id":"gw_…","client_secret":"gws_…"}'
      # β†’ { "access_token": "…" }  then:  Authorization: Bearer <access_token>

      2 Β· Set up your configuration (no Selenium on your side)

      Provision everything through the API β€” Gateway runs the browser; you only ever send queries.

      POST   /v1/clients            { "name": "Mercy EMS" }
      GET    /v1/clients
      DELETE /v1/clients/{id}
      
      POST   /v1/facilities         { "client_id": 1, "name": "Mercy North",
                                             "site_url": "…", "username": "…", "password": "…" }
      GET    /v1/facilities?client_id=1
      PUT    /v1/facilities/{id}    (update / rotate credentials)
      DELETE /v1/facilities/{id}

      3 Β· Submit a capture job (async, single or batch)

      Each patient is matched by name + DOB + Date of Service; process picks demo (demographics / DV), insurance (Insurance Discovery / ID) or both.

      POST /v1/report-jobs
      { "facility_id": 7,
        "patients": [
          { "name": "Deborah Hodges", "dob": "10/17/1952", "dos": "06/23/2026", "process": "both" },
          { "name": "John Smith", "dos": "06/20/2026", "process": "insurance" }
        ],
        "mode": "sequential", "client_reference": "your-ticket-id" }
      β†’ 202 { "job_id": "…", "status": "queued", "status_url": "/v1/report-jobs/…" }

      4 Β· Poll the job

      GET /v1/report-jobs/{job_id}
      β†’ { "status": "completed|partial|failed|running",
          "counts": { "done": 2, "failed": 0, "queued": 0, "running": 0 },
          "items": [ { "patient": "Deborah Hodges", "date_of_service": "06/23/2026",
                       "process": "both", "capture_type": "both",
                       "status": "done", "document_id": "…" } ] }

      5 Β· Fetch the capture into your system

      GET /v1/documents?patient=&date_of_service=&capture_type=&facility=   β†’ list (paged)
      GET /v1/documents/{document_id}                   β†’ metadata + counts
      GET /v1/documents/{document_id}/content           β†’ structured JSON (default)
      GET /v1/documents/{document_id}/content?format=pdf β†’ PDF snapshot of the page
      # content (default) β€” the structured capture:
      { "document_id": "…", "patient": "Deborah Hodges", "date_of_service": "06/23/2026",
        "capture_type": "both",
        "demographics": [ { "label": "First Name", "value": "DEBORAH" }, … ],
        "insurance": { "payors": [
          { "name": "Aetna", "hierarchy": "Primary", "confidence": "High Confidence",
            "eligibilities": [ { "date": "…", "fields": […], "subscriber": […],
                                "benefit_sections": [ { "title": "…", "rows": […] } ] } ] } ] } }

      Your system consumes the JSON directly β€” no browser, no desktop agent needed. A human-readable PDF snapshot is also kept (?format=pdf).

      6 Β· (Optional) Get results PUSHED to you

      Instead of polling, register a webhook once. Gateway POSTs each capture and a job summary to your URL when the job finishes. include: download_url (light) or full / base64 (inline the structured capture).

      POST /v1/webhooks
      { "url": "https://you.example.com/hooks/gateway",
        "events": ["document.captured","job.completed"], "include": "full" }
      β†’ 201 { "id": 1, "secret": "whsec_…" }        # store the secret to verify signatures
      
      # Gateway β†’ your URL, on completion:
      POST https://you.example.com/hooks/gateway
      X-Gateway-Signature: sha256=<hmac of body with your secret>
      { "event": "document.captured", "job_id": "…",
        "document": { "document_id": "…", "patient": "Deborah Hodges",
                      "date_of_service": "06/23/2026", "capture_type": "both",
                      "content_url": "/v1/documents/…/content",
                      "capture": { "demographics": […], "insurance": { "payors": […] } } } }
      
      GET  /v1/webhooks                       # list
      POST /v1/webhooks/{id}/test             # fire a ping
      GET  /v1/report-jobs/{job_id}/deliveries  # delivery log

      Verify the signature: HMAC_SHA256(secret, raw_body) must equal the hex in X-Gateway-Signature. Set include: "base64" to receive the PDF bytes inline.