Increase Card Payments API
Follow the full lifecycle of a card authorization and settlement via Card Payments and Card Purchase Supplements, approve or decline authorizations in real time through Real-Time Decisions, and manage Card Disputes.
Follow the full lifecycle of a card authorization and settlement via Card Payments and Card Purchase Supplements, approve or decline authorizations in real time through Real-Time Decisions, and manage Card Disputes.
openapi: 3.1.0
info:
title: Increase API
description: >-
Increase is a bank-grade payments and financial infrastructure platform that
exposes a single REST API for moving and holding money in the United States.
This document models the primary resources of the Increase API - Accounts,
Account Numbers, Cards, Card Payments, ACH / Wire / Real-Time Payments / Check
transfers, Transactions, Entities, Events and webhooks, Bookkeeping, Card
Profiles and Digital Wallets, Lockboxes, and Simulations. It is grounded in
Increase's public OpenAPI 3.1 spec (https://api.increase.com/openapi.json) and
the Stainless-generated SDKs. Authentication is a Bearer API key. All endpoints
are HTTPS REST; state changes are delivered as Events over HTTP webhooks (no
WebSocket surface). Requests support idempotency via the `Idempotency-Key`
header. This is a representative, not exhaustive, subset of the full API.
version: '0.0.1'
contact:
name: Increase
url: https://increase.com
license:
name: Increase Documentation
url: https://increase.com/documentation
servers:
- url: https://api.increase.com
description: Production
- url: https://sandbox.increase.com
description: Sandbox
security:
- bearerAuth: []
tags:
- name: Accounts
description: Deposit accounts held at Increase partner banks.
- name: Account Numbers
description: Routing and account number pairs that can receive funds.
- name: External Accounts
description: Counterparty bank accounts you send to or debit.
- name: Cards
description: Virtual and physical commercial cards.
- name: Card Payments
description: Card authorization and settlement lifecycle.
- name: ACH Transfers
description: FedACH credit and debit transfers, inbound and outbound.
- name: Wire Transfers
description: Fedwire transfers and drawdown requests.
- name: Real-Time Payments
description: Instant RTP transfers, inbound and outbound.
- name: Check Transfers
description: Printed and mailed checks and check deposits.
- name: Transactions
description: Settled, pending, and declined ledger transactions.
- name: Entities
description: KYC/KYB entities that own accounts.
- name: Events
description: Events and webhook Event Subscriptions.
- name: Bookkeeping
description: Double-entry sub-ledger built on Increase money movement.
- name: Card Profiles
description: Digital and physical card profiles and wallet tokens.
- name: Lockboxes
description: Physical lockbox addresses and inbound mail.
- name: Simulations
description: Sandbox-only endpoints for deterministic testing.
paths:
/accounts:
get:
operationId: listAccounts
tags: [Accounts]
summary: List Accounts
parameters:
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/AccountList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createAccount
tags: [Accounts]
summary: Create an Account
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [name]
properties:
name: { type: string }
entity_id: { type: string }
program_id: { type: string }
informational_entity_id: { type: string }
responses:
'200':
$ref: '#/components/responses/Account'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/accounts/{account_id}:
parameters:
- $ref: '#/components/parameters/AccountId'
get:
operationId: retrieveAccount
tags: [Accounts]
summary: Retrieve an Account
responses:
'200':
$ref: '#/components/responses/Account'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateAccount
tags: [Accounts]
summary: Update an Account
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name: { type: string }
responses:
'200':
$ref: '#/components/responses/Account'
/accounts/{account_id}/balance:
parameters:
- $ref: '#/components/parameters/AccountId'
get:
operationId: retrieveAccountBalance
tags: [Accounts]
summary: Retrieve an Account Balance
responses:
'200':
description: Account balance.
content:
application/json:
schema:
type: object
properties:
current_balance: { type: integer }
available_balance: { type: integer }
/accounts/{account_id}/close:
parameters:
- $ref: '#/components/parameters/AccountId'
post:
operationId: closeAccount
tags: [Accounts]
summary: Close an Account
responses:
'200':
$ref: '#/components/responses/Account'
/account_numbers:
get:
operationId: listAccountNumbers
tags: [Account Numbers]
summary: List Account Numbers
parameters:
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: A list of Account Numbers.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNumberList'
post:
operationId: createAccountNumber
tags: [Account Numbers]
summary: Create an Account Number
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_id, name]
properties:
account_id: { type: string }
name: { type: string }
responses:
'200':
description: The created Account Number.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNumber'
/account_numbers/{account_number_id}:
parameters:
- name: account_number_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveAccountNumber
tags: [Account Numbers]
summary: Retrieve an Account Number
responses:
'200':
description: The Account Number.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNumber'
patch:
operationId: updateAccountNumber
tags: [Account Numbers]
summary: Update an Account Number
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name: { type: string }
status: { type: string, enum: [active, disabled, canceled] }
responses:
'200':
description: The updated Account Number.
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNumber'
/external_accounts:
get:
operationId: listExternalAccounts
tags: [External Accounts]
summary: List External Accounts
responses:
'200':
description: A list of External Accounts.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/ExternalAccount' }
post:
operationId: createExternalAccount
tags: [External Accounts]
summary: Create an External Account
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [routing_number, account_number, description]
properties:
routing_number: { type: string }
account_number: { type: string }
description: { type: string }
funding: { type: string, enum: [checking, savings, other] }
responses:
'200':
description: The created External Account.
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalAccount'
/external_accounts/{external_account_id}:
parameters:
- name: external_account_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveExternalAccount
tags: [External Accounts]
summary: Retrieve an External Account
responses:
'200':
description: The External Account.
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalAccount'
patch:
operationId: updateExternalAccount
tags: [External Accounts]
summary: Update an External Account
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description: { type: string }
status: { type: string, enum: [active, archived] }
responses:
'200':
description: The updated External Account.
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalAccount'
/routing_numbers:
get:
operationId: listRoutingNumbers
tags: [External Accounts]
summary: List Routing Numbers
description: Look up which real-time payment rails a given routing number supports.
parameters:
- name: routing_number
in: query
required: true
schema: { type: string }
responses:
'200':
description: Routing number details.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
additionalProperties: true
/cards:
get:
operationId: listCards
tags: [Cards]
summary: List Cards
parameters:
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: A list of Cards.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/Card' }
post:
operationId: createCard
tags: [Cards]
summary: Create a Card
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_id]
properties:
account_id: { type: string }
description: { type: string }
entity_id: { type: string }
responses:
'200':
description: The created Card.
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
/cards/{card_id}:
parameters:
- name: card_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveCard
tags: [Cards]
summary: Retrieve a Card
responses:
'200':
description: The Card.
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
patch:
operationId: updateCard
tags: [Cards]
summary: Update a Card
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description: { type: string }
status: { type: string, enum: [active, disabled, canceled] }
responses:
'200':
description: The updated Card.
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
/cards/{card_id}/details:
parameters:
- name: card_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveCardDetails
tags: [Cards]
summary: Retrieve sensitive Card details
description: Returns the PAN, expiration, and CVC for a Card. Restricted; typically retrieved via a secure iframe.
responses:
'200':
description: Sensitive card details.
content:
application/json:
schema:
type: object
properties:
card_id: { type: string }
primary_account_number: { type: string }
expiration_month: { type: integer }
expiration_year: { type: integer }
verification_code: { type: string }
/card_payments:
get:
operationId: listCardPayments
tags: [Card Payments]
summary: List Card Payments
parameters:
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: A list of Card Payments.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/CardPayment' }
/card_payments/{card_payment_id}:
parameters:
- name: card_payment_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveCardPayment
tags: [Card Payments]
summary: Retrieve a Card Payment
responses:
'200':
description: The Card Payment with its full element timeline.
content:
application/json:
schema:
$ref: '#/components/schemas/CardPayment'
/card_disputes:
get:
operationId: listCardDisputes
tags: [Card Payments]
summary: List Card Disputes
responses:
'200':
description: A list of Card Disputes.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { type: object, additionalProperties: true }
post:
operationId: createCardDispute
tags: [Card Payments]
summary: Create a Card Dispute
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [disputed_transaction_id, explanation]
properties:
disputed_transaction_id: { type: string }
explanation: { type: string }
responses:
'200':
description: The created Card Dispute.
content:
application/json:
schema:
type: object
additionalProperties: true
/real_time_decisions/{real_time_decision_id}:
parameters:
- name: real_time_decision_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveRealTimeDecision
tags: [Card Payments]
summary: Retrieve a Real-Time Decision
responses:
'200':
description: The Real-Time Decision awaiting your action.
content:
application/json:
schema:
type: object
additionalProperties: true
/real_time_decisions/{real_time_decision_id}/action:
parameters:
- name: real_time_decision_id
in: path
required: true
schema: { type: string }
post:
operationId: actionRealTimeDecision
tags: [Card Payments]
summary: Action a Real-Time Decision
description: Approve or decline a card authorization, digital wallet token provisioning, or digital wallet authentication in real time.
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: The updated Real-Time Decision.
content:
application/json:
schema:
type: object
additionalProperties: true
/ach_transfers:
get:
operationId: listACHTransfers
tags: [ACH Transfers]
summary: List ACH Transfers
parameters:
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: A list of ACH Transfers.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/ACHTransfer' }
post:
operationId: createACHTransfer
tags: [ACH Transfers]
summary: Create an ACH Transfer
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_id, amount, statement_descriptor]
properties:
account_id: { type: string }
amount: { type: integer, description: Cents. Positive credits the destination, negative debits it. }
statement_descriptor: { type: string }
account_number: { type: string }
routing_number: { type: string }
external_account_id: { type: string }
funding: { type: string, enum: [checking, savings] }
responses:
'200':
description: The created ACH Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/ACHTransfer'
/ach_transfers/{ach_transfer_id}:
parameters:
- name: ach_transfer_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveACHTransfer
tags: [ACH Transfers]
summary: Retrieve an ACH Transfer
responses:
'200':
description: The ACH Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/ACHTransfer'
/ach_transfers/{ach_transfer_id}/approve:
parameters:
- name: ach_transfer_id
in: path
required: true
schema: { type: string }
post:
operationId: approveACHTransfer
tags: [ACH Transfers]
summary: Approve an ACH Transfer
responses:
'200':
description: The approved ACH Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/ACHTransfer'
/ach_transfers/{ach_transfer_id}/cancel:
parameters:
- name: ach_transfer_id
in: path
required: true
schema: { type: string }
post:
operationId: cancelACHTransfer
tags: [ACH Transfers]
summary: Cancel a pending ACH Transfer
responses:
'200':
description: The canceled ACH Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/ACHTransfer'
/inbound_ach_transfers/{inbound_ach_transfer_id}/decline:
parameters:
- name: inbound_ach_transfer_id
in: path
required: true
schema: { type: string }
post:
operationId: declineInboundACHTransfer
tags: [ACH Transfers]
summary: Decline an Inbound ACH Transfer
responses:
'200':
description: The declined Inbound ACH Transfer.
content:
application/json:
schema:
type: object
additionalProperties: true
/ach_prenotifications:
post:
operationId: createACHPrenotification
tags: [ACH Transfers]
summary: Create an ACH Prenotification
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_id, account_number, routing_number]
properties:
account_id: { type: string }
account_number: { type: string }
routing_number: { type: string }
responses:
'200':
description: The created ACH Prenotification.
content:
application/json:
schema:
type: object
additionalProperties: true
/wire_transfers:
get:
operationId: listWireTransfers
tags: [Wire Transfers]
summary: List Wire Transfers
responses:
'200':
description: A list of Wire Transfers.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/WireTransfer' }
post:
operationId: createWireTransfer
tags: [Wire Transfers]
summary: Create a Wire Transfer
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_id, amount, message_to_recipient]
properties:
account_id: { type: string }
amount: { type: integer }
message_to_recipient: { type: string }
beneficiary_name: { type: string }
account_number: { type: string }
routing_number: { type: string }
external_account_id: { type: string }
responses:
'200':
description: The created Wire Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/WireTransfer'
/wire_transfers/{wire_transfer_id}:
parameters:
- name: wire_transfer_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveWireTransfer
tags: [Wire Transfers]
summary: Retrieve a Wire Transfer
responses:
'200':
description: The Wire Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/WireTransfer'
/wire_transfers/{wire_transfer_id}/approve:
parameters:
- name: wire_transfer_id
in: path
required: true
schema: { type: string }
post:
operationId: approveWireTransfer
tags: [Wire Transfers]
summary: Approve a Wire Transfer
responses:
'200':
description: The approved Wire Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/WireTransfer'
/wire_transfers/{wire_transfer_id}/cancel:
parameters:
- name: wire_transfer_id
in: path
required: true
schema: { type: string }
post:
operationId: cancelWireTransfer
tags: [Wire Transfers]
summary: Cancel a pending Wire Transfer
responses:
'200':
description: The canceled Wire Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/WireTransfer'
/wire_drawdown_requests:
post:
operationId: createWireDrawdownRequest
tags: [Wire Transfers]
summary: Create a Wire Drawdown Request
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_number_id, amount, recipient_account_number, recipient_routing_number]
properties:
account_number_id: { type: string }
amount: { type: integer }
recipient_account_number: { type: string }
recipient_routing_number: { type: string }
recipient_name: { type: string }
responses:
'200':
description: The created Wire Drawdown Request.
content:
application/json:
schema:
type: object
additionalProperties: true
/real_time_payments_transfers:
get:
operationId: listRealTimePaymentsTransfers
tags: [Real-Time Payments]
summary: List Real-Time Payments Transfers
responses:
'200':
description: A list of Real-Time Payments Transfers.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/RealTimePaymentsTransfer' }
post:
operationId: createRealTimePaymentsTransfer
tags: [Real-Time Payments]
summary: Create a Real-Time Payments Transfer
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [source_account_number_id, amount, creditor_name, remittance_information]
properties:
source_account_number_id: { type: string }
amount: { type: integer }
creditor_name: { type: string }
remittance_information: { type: string }
destination_account_number: { type: string }
destination_routing_number: { type: string }
external_account_id: { type: string }
responses:
'200':
description: The created Real-Time Payments Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/RealTimePaymentsTransfer'
/real_time_payments_transfers/{real_time_payments_transfer_id}:
parameters:
- name: real_time_payments_transfer_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveRealTimePaymentsTransfer
tags: [Real-Time Payments]
summary: Retrieve a Real-Time Payments Transfer
responses:
'200':
description: The Real-Time Payments Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/RealTimePaymentsTransfer'
/inbound_real_time_payments_transfers/{inbound_real_time_payments_transfer_id}:
parameters:
- name: inbound_real_time_payments_transfer_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveInboundRealTimePaymentsTransfer
tags: [Real-Time Payments]
summary: Retrieve an Inbound Real-Time Payments Transfer
responses:
'200':
description: The Inbound Real-Time Payments Transfer.
content:
application/json:
schema:
type: object
additionalProperties: true
/check_transfers:
get:
operationId: listCheckTransfers
tags: [Check Transfers]
summary: List Check Transfers
responses:
'200':
description: A list of Check Transfers.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/CheckTransfer' }
post:
operationId: createCheckTransfer
tags: [Check Transfers]
summary: Create a Check Transfer
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_id, amount]
properties:
account_id: { type: string }
amount: { type: integer }
source_account_number_id: { type: string }
fulfillment_method: { type: string, enum: [physical_check, third_party] }
responses:
'200':
description: The created Check Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckTransfer'
/check_transfers/{check_transfer_id}:
parameters:
- name: check_transfer_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveCheckTransfer
tags: [Check Transfers]
summary: Retrieve a Check Transfer
responses:
'200':
description: The Check Transfer.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckTransfer'
/check_transfers/{check_transfer_id}/stop_payment:
parameters:
- name: check_transfer_id
in: path
required: true
schema: { type: string }
post:
operationId: stopPaymentCheckTransfer
tags: [Check Transfers]
summary: Stop payment on a Check Transfer
responses:
'200':
description: The Check Transfer with a stop payment applied.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckTransfer'
/check_deposits:
get:
operationId: listCheckDeposits
tags: [Check Transfers]
summary: List Check Deposits
responses:
'200':
description: A list of Check Deposits.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { type: object, additionalProperties: true }
post:
operationId: createCheckDeposit
tags: [Check Transfers]
summary: Create a Check Deposit
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [account_id, amount, front_image_file_id, back_image_file_id]
properties:
account_id: { type: string }
amount: { type: integer }
front_image_file_id: { type: string }
back_image_file_id: { type: string }
responses:
'200':
description: The created Check Deposit.
content:
application/json:
schema:
type: object
additionalProperties: true
/transactions:
get:
operationId: listTransactions
tags: [Transactions]
summary: List Transactions
parameters:
- name: account_id
in: query
schema: { type: string }
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/Limit'
responses:
'200':
description: A list of Transactions.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items: { $ref: '#/components/schemas/Transaction' }
/transactions/{transaction_id}:
parameters:
- name: transaction_id
in: path
required: true
schema: { type: string }
get:
operationId: retrieveTransaction
tags: [Transactions]
summary: Retrieve a Transaction
responses:
'200':
description: The Transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
/pending_transactions:
get:
operationId: listPendingTransactions
tags: [Transactions]
summary: List Pending Transaction
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/increase-com/refs/heads/main/openapi/increase-com-openapi.yml