Method Financial Payments API
ACH and clearing payments
ACH and clearing payments
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/method-financial-payments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Method Payments API
version: '2026-03-30'
license:
name: Proprietary
url: https://methodfi.com
description: "The Method API enables you to retrieve financial data, create payments, and manage\nentities and accounts programmatically. This specification covers the public API\nsurface for version `2026-03-30`.\n\n## Authentication\n\nMost API requests require a Bearer token in the `Authorization` header.\nUse your secret key (`sk_...`) for server-side requests and public key (`pk_...`)\nfor client-side Element requests. Public Message-Level Encryption key discovery\nendpoints are documented separately and do not require authentication.\n\n## Versioning\n\nThe API version is selected via the `Method-Version` header. This spec targets\nversion `2026-03-30`. The SDK sets this header automatically.\n\n## Response Envelope\n\nMost JSON responses are wrapped in a standard envelope:\n\n```json\n{\n \"success\": true,\n \"data\": { ... },\n \"message\": null\n}\n```\n\nThe `/.well-known/jwks.json` endpoint is an exception and returns a bare JWK set.\n\n## Pagination\n\nList endpoints return pagination metadata in response headers:\n`Pagination-Page`, `Pagination-Page-Count`, `Pagination-Page-Limit`,\n`Pagination-Total-Count`, `Pagination-Page-Cursor-Prev`, `Pagination-Page-Cursor-Next`.\n\n## Expandable Fields\n\nCertain resource fields can be expanded from IDs to full objects using the\n`expand` query parameter. Maximum nesting depth is 4 levels.\n"
contact:
name: Method Financial
url: https://methodfi.com
email: team@methodfi.com
servers:
- url: https://production.methodfi.com
description: Production
x-fern-server-name: Production
- url: https://sandbox.methodfi.com
description: Sandbox
x-fern-server-name: Sandbox
- url: https://dev.methodfi.com
description: Development
x-fern-server-name: Development
security:
- SecretKey: []
tags:
- name: Payments
description: ACH and clearing payments
paths:
/payments:
get:
operationId: listPayments
summary: List all payments
description: Returns a paginated list of payments. Results can be filtered by status, type, accounts, holders, reversal, and date range.
tags:
- Payments
security:
- SecretKey: []
parameters:
- $ref: '#/components/parameters/method_version'
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PageLimitParam'
- $ref: '#/components/parameters/PageCursorParam'
- $ref: '#/components/parameters/FromDateParam'
- $ref: '#/components/parameters/ToDateParam'
- name: status
in: query
required: false
description: Filter payments by status.
schema:
type: string
enum:
- pending
- processing
- sent
- posted
- settled
- failed
- reversed
- canceled
- cashed
- name: source
in: query
required: false
description: Filter payments by source account ID.
schema:
type: string
pattern: ^acc_\w+$
- name: destination
in: query
required: false
description: Filter payments by destination account ID.
schema:
type: string
pattern: ^acc_\w+$
- name: type
in: query
required: false
description: Filter payments by payment type.
schema:
type: string
enum:
- standard
- clearing
- name: reversal_id
in: query
required: false
description: Filter payments by reversal ID.
schema:
type: string
pattern: ^rvs_\w+$
- name: acc_id
in: query
required: false
description: Filter payments by either the source or destination account ID.
schema:
type: string
pattern: ^acc_\w+$
- name: destination_holder_id
in: query
required: false
description: Filter payments by destination entity ID.
schema:
type: string
pattern: ^ent_\w+$
- name: source_holder_id
in: query
required: false
description: Filter payments by source entity ID.
schema:
type: string
pattern: ^ent_\w+$
- name: holder_id
in: query
required: false
description: Filter payments by either the source or destination entity ID.
schema:
type: string
pattern: ^ent_\w+$
- $ref: '#/components/parameters/expand_payments'
responses:
'200':
description: A paginated list of payments.
headers:
Pagination-Page:
$ref: '#/components/headers/Pagination-Page'
Pagination-Page-Count:
$ref: '#/components/headers/Pagination-Page-Count'
Pagination-Page-Limit:
$ref: '#/components/headers/Pagination-Page-Limit'
Pagination-Total-Count:
$ref: '#/components/headers/Pagination-Total-Count'
Pagination-Page-Cursor-Prev:
$ref: '#/components/headers/Pagination-Page-Cursor-Prev'
Pagination-Page-Cursor-Next:
$ref: '#/components/headers/Pagination-Page-Cursor-Next'
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentListResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
post:
operationId: createPayment
summary: Create a payment
description: Creates a new payment to transfer funds from a source account to a destination account.
tags:
- Payments
security:
- SecretKey: []
parameters:
- $ref: '#/components/parameters/method_version'
- $ref: '#/components/parameters/idempotency_key'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentCreateRequest'
examples:
standard:
summary: Create a standard payment
value:
source: acc_b9q2XVAnNFbp3
destination: acc_Y8u3qL9mNa1Bz
amount: 5000
description: Monthly card payment
metadata:
invoice_id: inv_1001
clearing:
summary: Create a clearing payment with a fee
value:
source: acc_b9q2XVAnNFbp3
destination: acc_Y8u3qL9mNa1Bz
amount: 25000
description: Settlement transfer
fee:
type: total
amount: 250
responses:
'200':
description: The newly created payment.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentResponse'
example:
success: true
data:
id: pmt_rPrDPEwyCVUcm
reversal_id: null
source_trace_id: null
destination_trace_id: null
source: acc_b9q2XVAnNFbp3
destination: acc_Y8u3qL9mNa1Bz
amount: 5000
description: Monthly card payment
status: pending
fund_status: transmitting
estimated_completion_date: '2026-01-19'
source_settlement_date: null
destination_settlement_date: null
source_status: null
destination_status: null
destination_payment_method: null
fee: null
type: standard
error: null
metadata:
invoice_id: inv_1001
created_at: '2026-01-15T18:30:00.000Z'
updated_at: '2026-01-15T18:30:00.000Z'
message: null
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
/payments/{paymentId}:
get:
operationId: retrievePayment
summary: Retrieve a payment
description: Retrieves a payment by its unique identifier.
tags:
- Payments
security:
- SecretKey: []
parameters:
- $ref: '#/components/parameters/method_version'
- $ref: '#/components/parameters/PaymentIdParam'
- $ref: '#/components/parameters/expand_payments'
responses:
'200':
description: The requested payment.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
delete:
operationId: deletePayment
summary: Delete a payment
description: Cancels a pending payment. Only payments with a `pending` status can be canceled.
tags:
- Payments
security:
- SecretKey: []
parameters:
- $ref: '#/components/parameters/method_version'
- $ref: '#/components/parameters/PaymentIdParam'
- $ref: '#/components/parameters/idempotency_key'
responses:
'200':
description: The canceled payment.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
components:
schemas:
Account:
type: object
description: 'An Account represents a financial account (ACH, liability, clearing, or debit card) associated with an Entity. The `type` field indicates which nested details object (`ach`, `liability`, `clearing`, or `debit_card`) is populated. `type` is null for accounts that are disabled before a type was determined.
'
required:
- id
- holder_id
- type
- status
- consent_status
- products
- restricted_products
- created_at
- updated_at
properties:
id:
type: string
description: Unique identifier for the account.
pattern: ^acc_\w+$
example: acc_b9q2XVAnNFbp3
holder_id:
type: string
description: The entity ID that owns this account.
pattern: ^ent_\w+$
example: ent_au22b1fbFJbp8
type:
type:
- string
- 'null'
description: The type of account. Null for accounts that are disabled before a type was determined.
enum:
- ach
- liability
- clearing
- debit_card
- null
status:
type: string
description: Current status of the account.
enum:
- active
- disabled
- processing
- pending_exchange
- closed
consent_status:
type: string
description: Current consent status for data access on this account.
enum:
- pending
- withdrawn
- approved
ach:
$ref: '#/components/schemas/AccountACH'
liability:
$ref: '#/components/schemas/AccountLiability'
clearing:
$ref: '#/components/schemas/AccountClearing'
debit_card:
$ref: '#/components/schemas/AccountDebitCard'
error:
$ref: '#/components/schemas/AccountResourceError'
metadata:
$ref: '#/components/schemas/Metadata'
products:
type: array
description: Products currently active for this account.
items:
type: string
restricted_products:
type: array
description: Products restricted from this account.
items:
type: string
subscriptions:
type: array
description: Subscriptions currently active for this account. Only present for liability accounts.
items:
type: string
available_subscriptions:
type: array
description: Subscriptions available to be enrolled for this account. Only present for liability accounts.
items:
type: string
restricted_subscriptions:
type: array
description: Subscriptions restricted from this account. Only present for liability accounts.
items:
type: string
latest_verification_session:
title: AccountExpandableLatestVerificationSession
description: 'The latest verification session ID. This field is expandable. When expanded, returns the full AccountVerificationSession object.
'
oneOf:
- type: string
pattern: ^avf_\w+$
- type: 'null'
- $ref: '#/components/schemas/AccountVerificationSession'
balance:
$ref: '#/components/schemas/AccountExpandableBalance'
payoff:
$ref: '#/components/schemas/AccountExpandablePayoff'
payment_instrument:
$ref: '#/components/schemas/AccountExpandablePaymentInstrument'
card_brand:
$ref: '#/components/schemas/AccountExpandableCardBrand'
update:
$ref: '#/components/schemas/AccountExpandableUpdate'
attribute:
$ref: '#/components/schemas/AccountExpandableAttribute'
sensitive:
$ref: '#/components/schemas/AccountExpandableSensitive'
created_at:
type: string
format: date-time
description: Timestamp when the account was created.
updated_at:
type: string
format: date-time
description: Timestamp when the account was last updated.
AccountVerificationSessionResourceError:
type:
- object
- 'null'
description: Error details when an account verification session fails.
required:
- type
- code
- sub_type
- message
properties:
type:
type: string
description: The category of verification session error.
enum:
- ACCOUNT_VERIFICATION_SESSION_FAILED
code:
type: integer
description: Numeric error code (16XXX range).
enum:
- 16001
- 16002
- 16003
- 16004
sub_type:
type: string
description: Specific verification session error classification.
enum:
- VERIFICATION_TYPE_NOT_SUPPORTED
- INVALID_DETAILS
- VERIFICATION_SESSION_ATTEMPT_LIMIT_REACHED
- MICRO_DEPOSITS_FAILED
message:
type: string
description: Human-readable error description.
example:
type: ACCOUNT_VERIFICATION_SESSION_FAILED
code: 16001
sub_type: VERIFICATION_TYPE_NOT_SUPPORTED
message: The verification type provided is not supported for the merchant.
AccountExpandablePayoff:
title: AccountExpandablePayoff
description: 'The latest payoff ID. This field is expandable. When expanded, returns the full AccountPayoff object.
'
oneOf:
- type: string
pattern: ^pyf_\w+$
- type: 'null'
- $ref: '#/components/schemas/AccountPayoff'
AccountCardBrand:
type: object
description: Card brand information for an account.
required:
- id
- account_id
- status
- created_at
- updated_at
properties:
id:
type: string
description: Unique identifier for the card brand.
pattern: ^cbrd_\w+$
example: cbrd_aTJMbnCjw34yQ
account_id:
type: string
description: The account this card brand belongs to.
pattern: ^acc_\w+$
brands:
type:
- array
- 'null'
description: Array of card brand entries for this account.
items:
type: object
properties:
id:
type: string
description: Unique identifier for the brand entry.
card_product_id:
type:
- string
- 'null'
description: Associated card product ID.
description:
type: string
description: Description of the brand.
name:
type: string
description: Name of the brand.
issuer:
type: string
description: The card issuer.
network:
type: string
description: The card network.
network_tier:
type: string
description: The tier of the card network.
type:
type:
- string
- 'null'
description: The brand type.
url:
type: string
description: URL for the brand image.
source:
type:
- string
- 'null'
description: Source of the card brand data.
enum:
- network
- method
- null
shared:
type: boolean
description: Whether this card brand record is shared.
network:
type:
- string
- 'null'
description: The card network. Deprecated in favor of brands[].network.
enum:
- visa
- mastercard
- amex
- discover
- null
issuer:
type:
- string
- 'null'
description: The card issuer. Deprecated in favor of brands[].issuer.
last4:
type:
- string
- 'null'
description: Last 4 digits of the card number. Deprecated in favor of brands[].
status:
type: string
description: Current status of the card brand request.
enum:
- completed
- pending
- failed
error:
$ref: '#/components/schemas/ResourceError'
created_at:
type: string
format: date-time
description: Timestamp when the card brand was created.
updated_at:
type: string
format: date-time
description: Timestamp when the card brand was last updated.
BalanceResourceError:
type:
- object
- 'null'
description: Error details when a balance sync fails.
required:
- type
- code
- sub_type
- message
properties:
type:
type: string
description: The category of balance error.
enum:
- BALANCE_FAILED
code:
type: integer
description: Numeric error code (20XXX range).
enum:
- 20001
sub_type:
type: string
description: Specific balance error classification.
enum:
- BALANCE_TEMPORARILY_UNAVAILABLE
message:
type: string
description: Human-readable error description.
example:
type: BALANCE_FAILED
code: 20001
sub_type: BALANCE_TEMPORARILY_UNAVAILABLE
message: Balance is temporarily unavailable for this account.
AccountDebitCard:
type:
- object
- 'null'
description: Debit card account details. Present when `type` is `debit_card`.
properties:
network:
type: string
description: The card network.
mask:
type: string
description: Last 4 digits of the card number.
issuer:
type: string
description: The card issuer.
AccountUpdate:
type: object
description: An update record for an account.
required:
- id
- account_id
- status
- type
- created_at
- updated_at
properties:
id:
type: string
description: Unique identifier for the update.
pattern: ^upd_\w+$
example: upd_aTJMbnCjw34yQ
account_id:
type: string
description: The account this update belongs to.
pattern: ^acc_\w+$
status:
type: string
description: Current status of the update.
enum:
- completed
- pending
- failed
type:
type: string
description: The liability type of the account being updated.
enum:
- credit_card
- auto_loan
- mortgage
- personal_loan
- student_loan
- student_loans
- collection
- credit_builder
- insurance
- loan
- medical
- utility
- bnpl
- fintech
source:
type: string
description: The data source used for this update.
enum:
- direct
- snapshot
data_as_of:
type:
- string
- 'null'
format: date-time
description: The timestamp of the data used to complete this update.
credit_card:
type:
- object
- 'null'
description: Credit card update data. Present when `type` is `credit_card`.
properties:
sub_type:
type:
- string
- 'null'
opened_at:
type:
- string
- 'null'
format: date
closed_at:
type:
- string
- 'null'
format: date
balance:
type:
- integer
- 'null'
description: Current balance in cents.
last_payment_amount:
type:
- integer
- 'null'
description: Last payment amount in cents.
last_payment_date:
type:
- string
- 'null'
format: date
next_payment_due_date:
type:
- string
- 'null'
format: date
next_payment_minimum_amount:
type:
- integer
- 'null'
description: Minimum payment due in cents.
interest_rate_type:
type:
- string
- 'null'
interest_rate_percentage_max:
type:
- number
- 'null'
interest_rate_percentage_min:
type:
- number
- 'null'
available_credit:
type:
- integer
- 'null'
description: Available credit in cents.
credit_limit:
type:
- integer
- 'null'
description: Credit limit in cents.
usage_pattern:
type:
- string
- 'null'
auto_loan:
type:
- object
- 'null'
description: Auto loan update data. Present when `type` is `auto_loan`.
properties:
sub_type:
type:
- string
- 'null'
opened_at:
type:
- string
- 'null'
format: date
closed_at:
type:
- string
- 'null'
format: date
balance:
type:
- integer
- 'null'
description: Current balance in cents.
last_payment_amount:
type:
- integer
- 'null'
description: Last payment amount in cents.
last_payment_date:
type:
- string
- 'null'
format: date
next_payment_due_date:
type:
- string
- 'null'
format: date
next_payment_minimum_amount:
type:
- integer
- 'null'
description: Minimum payment due in cents.
interest_rate_type:
type:
- string
- 'null'
expected_payoff_date:
type:
- string
- 'null'
format: date
original_loan_amount:
type:
- integer
- 'null'
description: Original loan amount in cents.
term_length:
type:
- integer
- 'null'
interest_rate_percentage:
type:
- number
- 'null'
interest_rate_source:
type:
- string
- 'null'
mortgage:
type:
- object
- 'null'
description: Mortgage update data. Present when `type` is `mortgage`.
properties:
sub_type:
type:
- string
- 'null'
opened_at:
type:
- string
- 'null'
format: date
closed_at:
type:
- string
- 'null'
format: date
balance:
type:
- integer
- 'null'
description: Current balance in cents.
last_payment_amount:
type:
- integer
- 'null'
description: Last payment amount in cents.
last_payment_date:
type:
- string
- 'null'
format: date
next_payment_due_date:
type:
- string
- 'null'
format: date
next_payment_minimum_amount:
type:
- integer
- 'null'
description: Minimum payment due in cents.
interest_rate_type:
type:
- string
- 'null'
expected_payoff_date:
type:
- string
- 'null'
format: date
original_loan_amount:
type:
- integer
- 'null'
description: Original loan amount in cents.
term_length:
type:
- integer
- 'null'
interest_rate_percentage:
type:
- number
- 'null'
interest_rate_source:
type:
- string
- 'null'
personal_loan:
type:
- object
- 'null'
description: Personal loan update data. Present when `type` is `personal_loan`.
properties:
sub_type:
type:
- string
- 'null'
opened_at:
type:
- string
- 'null'
format: date
closed_at:
type:
- string
- 'null'
format: date
balance:
type:
- integer
- 'null'
description: Current balance in cents.
last_payment_amount:
type:
- integer
- 'null'
description: Last payment amount in cents.
last_payment_date:
type:
- string
- 'null'
format: date
next_payment_due_date:
type:
- string
- 'null'
format: date
next_payment_minimum_amount:
type:
- integer
- 'null'
description: Minimum payment due in cents.
interest_rate_type:
type:
- string
- 'null'
available_credit:
type:
- integer
- 'null'
description: Available credit in cents.
original_loan_amount:
type:
- integer
- 'null'
description: Original loan amount in cents.
term_length:
type:
- integer
- 'null'
interest_rate_percentage:
type:
- number
- 'null'
interest_rate_source:
type:
- string
- 'null'
student_loan:
type:
- object
- 'null'
description: Student loan update data. Present when `type` is `student_loan`.
properties:
sub_type:
type:
- string
- 'null'
opened_at:
type:
- string
- 'null'
format: date
closed_at:
type:
- string
- 'null'
format: date
balance:
type:
- integer
- 'null'
description: Current balance in cents.
last_payment_amount:
type:
- integer
- 'null'
description: Last payment amount in cents.
last_payment_date:
type:
- string
- 'null'
format: date
next_payment_due_date:
type:
- string
- 'null'
format: date
next_payment_minimum_amount:
type:
- integer
- 'null'
description: Minimum payment due in cents.
interest_rate_type:
type:
- string
- 'null'
expected_payoff_date:
type:
- string
- 'null'
format: date
original_loan_amount:
type:
- integer
- 'null'
description: Original loan amount in cents.
term_length:
type:
- integer
- 'null'
interest_rate_percentage:
type:
- number
- 'null'
interest_rate_source:
type:
- string
- 'null'
student_loans:
type:
- object
- 'null'
description: Student loans aggregate update data. Present when `type` is `student_loans`.
properties:
sub_type:
type:
- string
- 'null'
opened_at:
type:
- string
- 'null'
format: date
closed_at:
type:
- string
- 'null'
format: date
balance:
type:
- integ
# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/method-financial/refs/heads/main/openapi/method-financial-payments-api-openapi.yml