Aeropay · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Aeropay v2 API
11 actions
11 updates
servers
extends
openapi/aeropay-v2-openapi.yml
Derived by API Evangelist
Built from the contracts Aeropay publishes. Aeropay did not publish this file.
What the actions change
x-agentic-consequencex-reversalx-idempotencyx-side-effectx-apievangelist-profilex-apievangelist-harvested-fromx-apievangelist-harvested-oncontact
Targets 10
$.info
$
$.components.securitySchemes
$.paths['/v2/transaction'].post
$.paths['/v2/payoutTransaction'].post
$.paths['/v2/capturePreauthTransaction'].post
$.paths['/v2/paymentLink'].post
$.paths['/v2/preauthTransaction'].delete
$.paths['/v2/user'].post
$.paths['/v2/transactionSearch'].post
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Aeropay v2 API
version: 1.0.0
extends: openapi/aeropay-v2-openapi.yml
x-apievangelist:
generated: '2026-09-10'
method: generated
source: 'Enhancements derived from the Aeropay documentation on dev.aero.inc and from the artifacts in
this repository. Applies our findings WITHOUT mutating the harvested contract in
openapi/_original/aeropay-v2-openapi.json.'
note: 'Every action below records something Aeropay states in its own documentation but does not express
in the machine-readable contract. Nothing here invents behaviour.'
actions:
- target: $.info
description: Record the profile, its provenance, and the production server the contract omits.
update:
x-apievangelist-profile: https://apis.io/provider/aeropay
x-apievangelist-harvested-from: https://dash.readme.com/api/v1/api-registry/dsdmfqmtkajkc6
x-apievangelist-harvested-on: '2026-09-10'
contact:
name: Aeropay Support
email: support@aeropay.com
url: https://dev.aero.inc/docs/getting-started
- target: $
description: 'The published contract lists only the SANDBOX host in servers[]. Aeropay documents the
production base as https://api.aeropay.com/v2 in its getting-started guide and in the curl examples on
the webhooks page. Adding it, rather than replacing the sandbox entry.'
update:
servers:
- url: https://api.sandbox-pay.aero.inc
description: Sandbox. Credentials issued by Aeropay on request.
variables: {}
- url: https://api.aeropay.com
description: Production. Access granted after Aeropay reviews the integration.
variables: {}
- target: $.components.securitySchemes
description: 'The contract declares components.securitySchemes as an EMPTY object while 31 of 32
operations require an `authorization: Bearer {{token}}` header. Declaring the scheme Aeropay documents
at https://dev.aero.inc/docs/token-scopes.'
update:
AeropayBearerToken:
type: http
scheme: bearer
bearerFormat: JWT
description: 'A transient JWT from POST /v2/token, valid for 30 minutes. The token''s `scope`
(merchant or userForMerchant) determines which operations it may call.'
- target: $.paths['/v2/transaction'].post
description: Record the reversal path and window for the primary money-movement create.
update:
x-agentic-consequence: irreversible-after-window
x-reversal:
operation: POST /v2/reverseTransaction
window: 'Same business day — voided outright before batching; after batching a reverse-direction
refund transaction is created and takes 2-3 business days.'
partial: true
x-idempotency:
header: Idempotency-Key
optional: true
retention: 1 day
lookup: GET /v2/transaction/idempotency/{idempotencyKey}
- target: $.paths['/v2/payoutTransaction'].post
description: Payout has no documented reversal.
update:
x-agentic-consequence: irreversible
x-reversal:
operation: null
note: 'No reversal is documented for a payout. POST /v2/reverseTransaction states its id "is only for
AeroTransactions".'
- target: $.paths['/v2/capturePreauthTransaction'].post
description: Capture moves money and carries no idempotency key.
update:
x-agentic-consequence: irreversible-after-window
x-idempotency:
supported: false
note: 'Unlike the other three money-movement creates, capture declares no Idempotency-Key header. A
retried capture has no replay protection.'
- target: $.paths['/v2/paymentLink'].post
description: Sends an SMS or email immediately with no recall.
update:
x-agentic-consequence: irreversible
x-side-effect: Sends an SMS or email to the named recipient on success.
- target: $.paths['/v2/preauthTransaction'].delete
description: The cancel path for an authorization.
update:
x-reversal-of: POST /v2/preauthTransaction
x-window: 'Before capture. AP312/AP313 once the window has closed.'
- target: $.paths['/v2/user'].post
description: Record that user creation cannot be undone through the API.
update:
x-agentic-consequence: irreversible
x-side-effect: Sends an SMS OTP to the supplied phone number.
x-no-delete-operation: true
- target: $.paths['/v2/transactionSearch'].post
description: A read operation expressed as a POST.
update:
x-read-only: true
x-pagination:
style: page-number
request: [page, perPage, sortBy, orderBy]
response: paging
- target: $
description: Point at the artifacts that carry what the contract does not express.
update:
x-apievangelist-artifacts:
error_codes: errors/aeropay-error-codes.yml
decline_codes: errors/aeropay-decline-codes.yml
conventions: conventions/aeropay-conventions.yml
authentication: authentication/aeropay-authentication.yml
sandbox: sandbox/aeropay-sandbox.yml
webhooks: asyncapi/aeropay-webhooks-asyncapi.yml
data_model: data-model/aeropay-data-model.yml
mcp: mcp/aeropay-mcp.yml
x-apievangelist-contract-gaps:
- No operationId on any of the 32 operations.
- components.securitySchemes is an empty object.
- servers[] names only the sandbox host.
- No tags[] and no operation-level tags.
- No 5xx response declared anywhere.
- No 429 response and no rate-limit headers.
- Errors are predominantly returned inside an HTTP 200 body.
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/aeropay-v2-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.