Interchecks · OpenAPI Overlay 1.0.0

API Evangelist enrichment overlay for the Interchecks Payments API v2

7 actions 7 updates documentation extends openapi/interchecks-payments-api-v2.json
Generated by API Evangelist Written by API Evangelist tooling for Interchecks's API. It is a proposal applied on top of the contract, not a document Interchecks publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

descriptionx-idempotentx-idempotency-headerx-idempotency-conflict-statusx-idempotency-in-flight-statustitlecontactx-documentation

Targets 7

$.info
$.servers
$.components.securitySchemes.sec0
$.paths['/api/v2/{payer_id}/transactions'].post
$.paths['/api/v2/{payer_id}/payments'].post
$.paths['/api/v2/{payer_id}/reports/bank-transactions'].get
$

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enrichment overlay for the Interchecks Payments API v2
  version: 1.0.0
x-generated: '2026-08-23'
x-method: generated
x-source: openapi/interchecks-payments-api-v2.json
x-note: >-
  Non-destructive overlay capturing the enrichment this profile derived from the provider's own
  published documentation. The original spec is never mutated. Every value below is traceable to
  a docs URL recorded in the matching artifact; nothing is invented. The overlay deliberately
  does NOT invent operation tags for the untagged operations beyond the resource families the
  provider's own path structure and reference navigation already declare.
extends: openapi/interchecks-payments-api-v2.json
actions:
- target: $.info
  description: Give the document a real title, contact and licence-free provenance block.
  update:
    title: Interchecks Payments API v2
    description: >-
      REST API for recipient onboarding and TIN verification, destination payment account
      management (bank via Plaid, debit card, PayPal, Venmo, prepaid), payments accepted in the
      Recipient Portal or a hosted widget, and transactions for immediate disbursement or funding
      across ACH standard/same-day, ACH Funding Plus, ACH refund, RTP, Instant Deposit (Visa/
      Mastercard OCT), Instant Funding (AFT), paper check, eCheck and prepaid rails.
    contact:
      name: Interchecks technical support
      email: tech@interchecks.com
      url: https://docs-v2.interchecks.com/docs/getting-started
    x-documentation: https://docs-v2.interchecks.com/docs/getting-started
- target: $.servers
  description: >-
    The published document names only the sandbox host. The provider's own documentation project
    defines productionUrl = https://prod.api.interchecks.io and testSandboxUrl =
    https://test.api.interchecks.io; both are recorded here rather than replacing the original.
  update:
  - url: https://prod.api.interchecks.io
    description: Production
  - url: https://test.api.interchecks.io
    description: Sandbox
- target: $.components.securitySchemes.sec0
  description: >-
    The published oauth2 scheme carries an empty flows object (which the provider's own ReadMe
    validator flags as a warning) or a placeholder example.com tokenUrl. Fill in the real
    clientCredentials flow documented on the Get Access Token reference page.
  update:
    type: oauth2
    description: >-
      OAuth 2.0 client_credentials. POST /api/v2/oauth2/token with an Authorization header of
      Basic base64(clientId:secret) and grant_type=client_credentials. Returns a JWT access_token
      with expires_in 900 seconds, presented as Authorization Bearer on every other call.
    flows:
      clientCredentials:
        tokenUrl: https://prod.api.interchecks.io/api/v2/oauth2/token
        refreshUrl: https://prod.api.interchecks.io/api/v2/oauth2/token
        scopes: {}
        x-scopes-note: >-
          Interchecks defines no OAuth scopes. Authorization is bounded by the payer_id path
          parameter and by payer/aggregator configuration held by the provider.
- target: $.paths['/api/v2/{payer_id}/transactions'].post
  description: Record the reversibility and idempotency semantics documented for create-transaction.
  update:
    x-idempotent: true
    x-idempotency-header: Idempotency-Key
    x-idempotency-conflict-status: 409
    x-idempotency-in-flight-status: 102
    x-reversibility:
      grade: verified
      reversible_methods:
      - method: ACH_FUNDING_PLUS
        reversal_operation_id: update-transaction
        target_status: CANCELLED
        window: while status is PROCESSING or RETRY, before the transaction is sent to the financial institution
      - method: INSTANT_FUNDING
        reversal_operation_id: update-transaction
        target_status: REVERSED
        window: while status is PAID and the transaction is not in an immutable status
      - method: ACH_SAME_DAY / ACH_STANDARD (settled)
        reversal_operation_id: create-transaction
        mechanism: new ACH_REFUND transaction carrying originating_transaction_id
        window: same day if submitted before 2:45PM Eastern on a business day
      irreversible_methods:
      - RTP
      - INSTANT_DEPOSIT
      - CHECK
      - ECHECK
      - PAYPAL
      - VENMO
      - PREPAID
      docs: https://docs-v2.interchecks.com/reference/update-transaction
- target: $.paths['/api/v2/{payer_id}/payments'].post
  description: Record the idempotency semantics documented for create-payment.
  update:
    x-idempotent: true
    x-idempotency-header: Idempotency-Key
    x-idempotency-conflict-status: 409
    x-idempotency-in-flight-status: 102
- target: $.paths['/api/v2/{payer_id}/reports/bank-transactions'].get
  description: >-
    The published document reuses a duplicate-suffixed operationId from the ACH settlement report
    for the Bank Transactions report. Record the corrected identity without editing the original;
    this is a defect worth reporting to the provider, because operationId is what an agent binds
    to.
  update:
    x-operationId-defect: >-
      Published as get-ach-settlement-report-1; this operation returns the Bank Transactions
      report, not the ACH settlement report.
    x-suggested-operationId: get-bank-transactions-report
- target: $
  description: Attach the enrichment cross-reference so a consumer of the spec can find the derived artifacts.
  update:
    x-api-evangelist:
      profile: https://apis.io/provider/interchecks
      error_envelope:
        http_status: integer
        error_code: string
        error_message: string
      error_catalog: errors/interchecks-error-codes.yml
      decline_codes: errors/interchecks-decline-codes.yml
      conventions: conventions/interchecks-conventions.yml
      authentication: authentication/interchecks-authentication.yml
      webhooks: asyncapi/interchecks-webhooks.yml
      sandbox: sandbox/interchecks-sandbox.yml
      data_model: data-model/interchecks-data-model.yml
      conformance: conformance/interchecks-conformance.yml
      known_gaps:
      - components.schemas is empty; every body is inlined, so nothing is reusable
      - no tags are declared on any of the 68 operations
      - no 429 response is declared despite 429 being documented as reachable
      - no rate limit numbers or RateLimit/Retry-After headers are published
      - errors are not RFC 9457 problem+json