API Reference

Welcome! You can use the Increase API to access your transactions, open accounts, receive transfers, make payments, and generally access all US depository account functionality.

To learn more about building your integration, check out our documentation here.

Get your API key

API Reference

The Increase API is organized around REST. It has predictable resource-oriented URLs, accepts and returns JSON-encoded payloads, and uses standard HTTP response codes, authentication, and verbs.

 

While we're continually adding new features to the API, we're committed to doing so in a way that doesn't break existing integrations. You can read more in our versioning and backwards compatibility guide.

Authorization and Testing

The API accepts Bearer Authentication. When you sign up for an Increase account, we make you a pair of API keys: one for production and one for our sandbox environment in which no real money moves. You can create and revoke API keys from the dashboard and should securely store them using a secret management system.

Production API requests should be to https://api.increase.com and sandbox requests should be to https://sandbox.increase.com. We'll put these into environment variables to make our code examples easier to follow.

In the sandbox :

INCREASE_URL="https://sandbox.increase.com"
INCREASE_API_KEY="<secret>"

In production (you'll need to retrieve your API key from the dashboard):

INCREASE_URL="https://api.increase.com"
INCREASE_API_KEY="<secret>"

You can then make an API request like this using cURL:

curl --url "${INCREASE_URL}" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

OpenAPI

This reference also exists in OpenAPI 3 format. This spec is in beta and subject to change. If you find it useful, or have feedback, let us know!

Software Development Kits

Increase maintains open source SDKs for TypeScript, Python, Java, and Kotlin. Check out the documentation here or read the source code on Github.

OAuth

If you're interested in building an application that connects to other Increase users' data, you can build an OAuth application. Learn more about this in our OAuth guide.

Requests and Responses

When making a POST request to the API, use a Content-Type of application/json and specify parameters via JSON in the request body:

curl -X "POST" \
  --url "${INCREASE_URL}/accounts" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d $'{
    "name": "New Account!"
  }'

When making a GET request to the API, you should specify parameters in the query string of the URL. Join nested parameters, such as timestamp-based filters, with a . – for example, created_at.before:

curl \
  --url "${INCREASE_URL}/transactions?created_at.before=2022-01-15T06:34:23Z&created_at.after=2022-01-08T06:34:16Z" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

All responses from the API will have a Content-Type of application/json.

Object Lists

List endpoints return a wrapper object with the data and a cursor. The API will return the next page of results if you submit the next_cursor as a query parameter with the name cursor. Any filter parameters passed to the original list request must be included if next_cursor is specified. The maximum (and default) page size is 100 objects. You can adjust it using the limit parameter.

{
  "data": [],
  "next_cursor": "RWFzdGVyIGVnZw=="
}

Errors

The API uses standard HTTP response codes to indicate the success or failure of requests. Codes in the 2xx range indicate success; codes in the 4xx and 5xx range indicate errors. Error objects conform to RFC 7807 and can be distinguished by their type attribute.

{
  "detail": "There's an insufficient balance in the account.",
  "status": "400",
  "title": "The action you specified can't be performed on the object in its current state.",
  "type": "invalid_operation_error"
}

Idempotency

The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. This is useful when an API call is disrupted in transit and you do not receive a response. For example, if a request to create an ACH Transfer does not respond due to a network connection error, you can retry the request with the same idempotency key to guarantee that no more than one transfer is created.

To perform an idempotent request, provide an additional, unique Idempotency-Key request header per intended request. We recommend using a V4 UUID. Reusing the key in subsequent requests will return the same response code and body as the original request along with an additional HTTP header (Idempotent-Replayed: true). This applies to both success and error responses. In situations where your request results in a validation error, you'll need to update your request and retry with a new idempotency key.

Idempotency keys will persist in the API for at least 1 hour. If an original request is still being processed when an idempotency key is reused, the API will return a 409 Conflict error. Subsequent requests must be identical to the original request or the API will return a 422 Unprocessable Entity error. We discourage setting an idempotency key on GET and DELETE requests as these requests are inherently idempotent.

curl -X "POST" \
  --url "${INCREASE_URL}/accounts" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H 'Idempotency-Key: RANDOM_UUID' \
  -H 'Content-Type: application/json' \
  -d $'{
    "name": "New Account!"
  }'

Accounts

Accounts are your bank accounts with Increase. They store money, receive transfers, and send payments. They earn interest and have depository insurance.

The Account Object

{
  "balances": {
    "current_balance": 100,
    "available_balance": 100
  },
  "bank": "first_internet_bank",
  "created_at": "2020-01-31T23:59:59Z",
  "currency": "USD",
  "entity_id": "entity_n8y8tnk2p9339ti393yi",
  "informational_entity_id": null,
  "id": "account_in71c4amph0vgo2qllky",
  "interest_accrued": "0.01",
  "interest_accrued_at": "2020-01-31",
  "interest_rate": "0.055",
  "name": "My first account!",
  "status": "open",
  "replacement": {
    "replaced_account_id": null,
    "replaced_by_account_id": null
  },
  "type": "account"
}

Create an Account

POST/accounts
curl -X "POST" \
  --url "${INCREASE_URL}/accounts" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "name": "New Account!"
  }'

List Accounts

GET/accounts
curl \
  --url "${INCREASE_URL}/accounts?entity_id=entity_n8y8tnk2p9339ti393yi" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Update an Account

PATCH/accounts/{account_id}
curl -X "PATCH" \
  --url "${INCREASE_URL}/accounts/account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "name": "My renamed account"
  }'

Retrieve an Account

GET/accounts/{account_id}
curl \
  --url "${INCREASE_URL}/accounts/account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Close an Account

POST/accounts/{account_id}/close
curl -X "POST" \
  --url "${INCREASE_URL}/accounts/account_in71c4amph0vgo2qllky/close" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Balance Lookups

Represents a request to lookup the balance of an Account at a given point in time.

The Balance Lookup Object

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "current_balance": 100,
  "available_balance": 100,
  "type": "balance_lookup"
}

Look up the balance for an Account

POST/balance_lookups
curl -X "POST" \
  --url "${INCREASE_URL}/balance_lookups" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky"
  }'

Account Numbers

Each account can have multiple account and routing numbers. We recommend that you use a set per vendor. This is similar to how you use different passwords for different websites. Account numbers can also be used to seamlessly reconcile inbound payments. Generating a unique account number per vendor ensures you always know the originator of an incoming payment.

The Account Number Object

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "account_number": "987654321",
  "id": "account_number_v18nkfqm6afpsrvy82b2",
  "created_at": "2020-01-31T23:59:59Z",
  "name": "ACH",
  "routing_number": "101050001",
  "status": "active",
  "replacement": {
    "replaced_account_number_id": null,
    "replaced_by_account_number_id": null
  },
  "type": "account_number"
}

Create an Account Number

POST/account_numbers
curl -X "POST" \
  --url "${INCREASE_URL}/account_numbers" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "name": "Rent payments"
  }'

List Account Numbers

GET/account_numbers
curl \
  --url "${INCREASE_URL}/account_numbers" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Update an Account Number

PATCH/account_numbers/{account_number_id}
curl -X "PATCH" \
  --url "${INCREASE_URL}/account_numbers/account_number_v18nkfqm6afpsrvy82b2" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "status": "disabled"
  }'

Retrieve an Account Number

GET/account_numbers/{account_number_id}
curl \
  --url "${INCREASE_URL}/account_numbers/account_number_v18nkfqm6afpsrvy82b2" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Cards

Cards are commercial credit cards. They'll immediately work for online purchases after you create them. All cards maintain a credit limit of 100% of the Account’s available balance at the time of transaction. Funds are deducted from the Account upon transaction settlement.

The Card Object

{
  "id": "card_oubs0hwk5rn6knuecxg2",
  "account_id": "account_in71c4amph0vgo2qllky",
  "created_at": "2020-01-31T23:59:59Z",
  "description": "Office Expenses",
  "last4": "4242",
  "expiration_month": 11,
  "expiration_year": 2028,
  "status": "active",
  "billing_address": {
    "line1": "33 Liberty Street",
    "line2": null,
    "city": "New York",
    "state": "NY",
    "postal_code": "10045"
  },
  "digital_wallet": {
    "email": "user@example.com",
    "phone": "+15551234567",
    "card_profile_id": "card_profile_cox5y73lob2eqly18piy"
  },
  "replacement": {
    "replaced_card_id": null,
    "replaced_by_card_id": null
  },
  "type": "card"
}

Create a Card

POST/cards
curl -X "POST" \
  --url "${INCREASE_URL}/cards" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "description": "Card for Ian Crease"
  }'

List Cards

GET/cards
curl \
  --url "${INCREASE_URL}/cards?account_id=account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve sensitive details for a Card

GET/cards/{card_id}/details
curl \
  --url "${INCREASE_URL}/cards/card_oubs0hwk5rn6knuecxg2/details" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Update a Card

PATCH/cards/{card_id}
curl -X "PATCH" \
  --url "${INCREASE_URL}/cards/card_oubs0hwk5rn6knuecxg2" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "description": "New description"
  }'

Retrieve a Card

GET/cards/{card_id}
curl \
  --url "${INCREASE_URL}/cards/card_oubs0hwk5rn6knuecxg2" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Card Disputes

If unauthorized activity occurs on a card, you can create a Card Dispute and we'll return the funds if appropriate.

The Card Dispute Object

{
  "id": "card_dispute_h9sc95nbl1cgltpp7men",
  "explanation": "Unauthorized recurring purchase",
  "status": "pending_reviewing",
  "created_at": "2020-01-31T23:59:59Z",
  "disputed_transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "acceptance": null,
  "rejection": null,
  "type": "card_dispute"
}

Create a Card Dispute

POST/card_disputes
curl -X "POST" \
  --url "${INCREASE_URL}/card_disputes" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "disputed_transaction_id": "transaction_uyrp7fld2ium70oa7oi",
    "explanation": "Unauthorized recurring transaction."
  }'

List Card Disputes

GET/card_disputes
curl \
  --url "${INCREASE_URL}/card_disputes" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Card Dispute

GET/card_disputes/{card_dispute_id}
curl \
  --url "${INCREASE_URL}/card_disputes/card_dispute_h9sc95nbl1cgltpp7men" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Card Profiles

This contains artwork and metadata relating to a Card's appearance in digital wallet apps like Apple Pay and Google Pay. For more information, see our guide on digital card artwork

The Card Profile Object

{
  "id": "card_profile_cox5y73lob2eqly18piy",
  "created_at": "2020-01-31T23:59:59Z",
  "status": "active",
  "description": "My Card Profile",
  "digital_wallets": {
    "text_color": {
      "red": 26,
      "green": 43,
      "blue": 59
    },
    "issuer_name": "MyBank",
    "card_description": "MyBank Signature Card",
    "contact_website": "https://example.com",
    "contact_email": "user@example.com",
    "contact_phone": "+18885551212",
    "background_image_file_id": "file_1ai913suu1zfn1pdetru",
    "app_icon_file_id": "file_8zxqkwlh43wo144u8yec"
  },
  "type": "card_profile"
}

Create a Card Profile

POST/card_profiles
curl -X "POST" \
  --url "${INCREASE_URL}/card_profiles" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "description": "My Card Profile",
    "digital_wallets": {
      "text_color": {
        "red": 26,
        "green": 43,
        "blue": 59
      },
      "issuer_name": "MyBank",
      "card_description": "MyBank Signature Card",
      "contact_website": "https://example.com",
      "contact_email": "user@example.com",
      "contact_phone": "+18885551212",
      "background_image_file_id": "file_1ai913suu1zfn1pdetru",
      "app_icon_file_id": "file_8zxqkwlh43wo144u8yec"
    }
  }'

List Card Profiles

GET/card_profiles
curl \
  --url "${INCREASE_URL}/card_profiles" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Card Profile

GET/card_profiles/{card_profile_id}
curl \
  --url "${INCREASE_URL}/card_profiles/card_profile_cox5y73lob2eqly18piy" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Digital Wallet Tokens

A Digital Wallet Token is created when a user adds a Card to their Apple Pay or Google Pay app. The Digital Wallet Token can be used for purchases just like a Card.

The Digital Wallet Token Object

{
  "id": "digital_wallet_token_izi62go3h51p369jrie0",
  "card_id": "card_oubs0hwk5rn6knuecxg2",
  "created_at": "2020-01-31T23:59:59Z",
  "status": "active",
  "token_requestor": "apple_pay",
  "type": "digital_wallet_token"
}

List Digital Wallet Tokens

GET/digital_wallet_tokens
curl \
  --url "${INCREASE_URL}/digital_wallet_tokens?card_id=card_oubs0hwk5rn6knuecxg2" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Digital Wallet Token

GET/digital_wallet_tokens/{digital_wallet_token_id}
curl \
  --url "${INCREASE_URL}/digital_wallet_tokens/digital_wallet_token_izi62go3h51p369jrie0" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Transactions

Transactions are the immutable additions and removals of money from your bank account. They're the equivalent of line items on your bank statement.

The Transaction Object

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "amount": 100,
  "currency": "USD",
  "created_at": "2020-01-31T23:59:59Z",
  "description": "Frederick S. Holmes",
  "id": "transaction_uyrp7fld2ium70oa7oi",
  "route_id": "account_number_v18nkfqm6afpsrvy82b2",
  "route_type": "account_number",
  "source": {
    "category": "inbound_ach_transfer",
    "inbound_ach_transfer": {
      "amount": 100,
      "originator_company_name": "BIG BANK",
      "originator_company_descriptive_date": null,
      "originator_company_discretionary_data": null,
      "originator_company_entry_description": "RESERVE",
      "originator_company_id": "0987654321",
      "receiver_id_number": "12345678900",
      "receiver_name": "IAN CREASE",
      "trace_number": "021000038461022"
    }
  },
  "type": "transaction"
}

List Transactions

GET/transactions
curl \
  --url "${INCREASE_URL}/transactions" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Transaction

GET/transactions/{transaction_id}
curl \
  --url "${INCREASE_URL}/transactions/transaction_uyrp7fld2ium70oa7oi" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Pending Transactions

Pending Transactions are potential future additions and removals of money from your bank account.

The Pending Transaction Object

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "amount": 100,
  "currency": "USD",
  "completed_at": null,
  "created_at": "2020-01-31T23:59:59Z",
  "description": "Frederick S. Holmes",
  "id": "pending_transaction_k1sfetcau2qbvjbzgju4",
  "route_id": "card_oubs0hwk5rn6knuecxg2",
  "route_type": "card",
  "source": {
    "category": "ach_transfer_instruction",
    "ach_transfer_instruction": {
      "amount": 100,
      "transfer_id": "ach_transfer_uoxatyh3lt5evrsdvo7q"
    }
  },
  "status": "pending",
  "type": "pending_transaction"
}

List Pending Transactions

GET/pending_transactions
curl \
  --url "${INCREASE_URL}/pending_transactions" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Pending Transaction

GET/pending_transactions/{pending_transaction_id}
curl \
  --url "${INCREASE_URL}/pending_transactions/pending_transaction_k1sfetcau2qbvjbzgju4" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Declined Transactions

Declined Transactions are refused additions and removals of money from your bank account. For example, Declined Transactions are caused when your Account has an insufficient balance or your Limits are triggered.

The Declined Transaction Object

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "amount": 1750,
  "currency": "USD",
  "created_at": "2020-01-31T23:59:59Z",
  "description": "Frederick S. Holmes",
  "id": "declined_transaction_17jbn0yyhvkt4v4ooym8",
  "route_id": "account_number_v18nkfqm6afpsrvy82b2",
  "route_type": "account_number",
  "source": {
    "category": "ach_decline",
    "ach_decline": {
      "amount": 1750,
      "originator_company_name": "BIG BANK",
      "originator_company_descriptive_date": null,
      "originator_company_discretionary_data": null,
      "originator_company_id": "0987654321",
      "reason": "insufficient_funds",
      "receiver_id_number": "12345678900",
      "receiver_name": "IAN CREASE",
      "trace_number": "021000038461022"
    }
  },
  "type": "declined_transaction"
}

List Declined Transactions

GET/declined_transactions
curl \
  --url "${INCREASE_URL}/declined_transactions" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Declined Transaction

GET/declined_transactions/{declined_transaction_id}
curl \
  --url "${INCREASE_URL}/declined_transactions/declined_transaction_17jbn0yyhvkt4v4ooym8" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Limits

You can set limits at the Account, Account Number, or Card level. Limits applied to Accounts will apply to all Account Numbers and Cards in the Account. You can specify any number of Limits and they will all be applied to inbound debits and card authorizations. Volume and count Limits are designed to prevent unauthorized debits.

The Limit Object

{
  "id": "limit_fku42k0qtc8ulsuas38q",
  "interval": "month",
  "metric": "volume",
  "model_id": "account_number_v18nkfqm6afpsrvy82b2",
  "model_type": "account_number",
  "status": "active",
  "type": "limit",
  "value": 0
}

Create a Limit

POST/limits
curl -X "POST" \
  --url "${INCREASE_URL}/limits" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "metric": "volume",
    "interval": "month",
    "model_id": "account_in71c4amph0vgo2qllky",
    "value": 1234
  }'

List Limits

GET/limits
curl \
  --url "${INCREASE_URL}/limits?model_id=account_number_v18nkfqm6afpsrvy82b2&status=active" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Update a Limit

PATCH/limits/{limit_id}
curl -X "PATCH" \
  --url "${INCREASE_URL}/limits/limit_fku42k0qtc8ulsuas38q" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "status": "inactive"
  }'

Retrieve a Limit

GET/limits/{limit_id}
curl \
  --url "${INCREASE_URL}/limits/limit_fku42k0qtc8ulsuas38q" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Account Transfers

Account transfers move funds between your own accounts at Increase.

The Account Transfer Object

{
  "id": "account_transfer_7k9qe1ysdgqztnt63l7n",
  "amount": 100,
  "account_id": "account_in71c4amph0vgo2qllky",
  "currency": "USD",
  "destination_account_id": "account_uf16sut2ct5bevmq3eh",
  "destination_transaction_id": "transaction_j3itv8dtk5o8pw3p1xj4",
  "created_at": "2020-01-31T23:59:59Z",
  "description": "Move money into savings",
  "network": "account",
  "status": "complete",
  "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "approval": {
    "approved_at": "2020-01-31T23:59:59Z",
    "approved_by": null
  },
  "cancellation": null,
  "type": "account_transfer"
}

Create an Account Transfer

POST/account_transfers
curl -X "POST" \
  --url "${INCREASE_URL}/account_transfers" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "amount": 100,
    "description": "Creating liquidity",
    "destination_account_id": "account_uf16sut2ct5bevmq3eh"
  }'

List Account Transfers

GET/account_transfers
curl \
  --url "${INCREASE_URL}/account_transfers?account_id=account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve an Account Transfer

GET/account_transfers/{account_transfer_id}
curl \
  --url "${INCREASE_URL}/account_transfers/account_transfer_7k9qe1ysdgqztnt63l7n" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Approve an Account Transfer

POST/account_transfers/{account_transfer_id}/approve
curl -X "POST" \
  --url "${INCREASE_URL}/account_transfers/account_transfer_7k9qe1ysdgqztnt63l7n/approve" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Cancel an Account Transfer

POST/account_transfers/{account_transfer_id}/cancel
curl -X "POST" \
  --url "${INCREASE_URL}/account_transfers/account_transfer_7k9qe1ysdgqztnt63l7n/cancel" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

ACH Transfers

ACH transfers move funds between your Increase account and any other account accessible by the Automated Clearing House (ACH).

The ACH Transfer Object

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "account_number": "987654321",
  "addendum": null,
  "amount": 100,
  "currency": "USD",
  "approval": {
    "approved_at": "2020-01-31T23:59:59Z",
    "approved_by": null
  },
  "cancellation": null,
  "created_at": "2020-01-31T23:59:59Z",
  "external_account_id": "external_account_ukk55lr923a3ac0pp7iv",
  "id": "ach_transfer_uoxatyh3lt5evrsdvo7q",
  "network": "ach",
  "notifications_of_change": [],
  "return": null,
  "routing_number": "101050001",
  "statement_descriptor": "Statement descriptor",
  "status": "returned",
  "submission": {
    "trace_number": "058349238292834",
    "submitted_at": "2020-01-31T23:59:59Z"
  },
  "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "company_descriptive_date": null,
  "company_discretionary_data": null,
  "company_entry_description": null,
  "company_name": "National Phonograph Company",
  "funding": "checking",
  "individual_id": null,
  "individual_name": "Ian Crease",
  "effective_date": null,
  "standard_entry_class_code": "corporate_credit_or_debit",
  "type": "ach_transfer"
}

Create an ACH Transfer

POST/ach_transfers
curl -X "POST" \
  --url "${INCREASE_URL}/ach_transfers" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "account_number": "987654321",
    "amount": 100,
    "routing_number": "101050001",
    "statement_descriptor": "New ACH transfer"
  }'

List ACH Transfers

GET/ach_transfers
curl \
  --url "${INCREASE_URL}/ach_transfers?account_id=account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve an ACH Transfer

GET/ach_transfers/{ach_transfer_id}
curl \
  --url "${INCREASE_URL}/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Approve an ACH Transfer

Approves an ACH Transfer in a pending_approval state.

POST/ach_transfers/{ach_transfer_id}/approve
curl -X "POST" \
  --url "${INCREASE_URL}/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/approve" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Cancel a pending ACH Transfer

Cancels an ACH Transfer in a pending_approval state.

POST/ach_transfers/{ach_transfer_id}/cancel
curl -X "POST" \
  --url "${INCREASE_URL}/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/cancel" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

ACH Prenotifications

ACH Prenotifications are one way you can verify account and routing numbers by Automated Clearing House (ACH).

The ACH Prenotification Object

{
  "id": "ach_prenotification_ubjf9qqsxl3obbcn1u34",
  "account_number": "987654321",
  "addendum": null,
  "company_descriptive_date": null,
  "company_discretionary_data": null,
  "company_entry_description": null,
  "company_name": null,
  "credit_debit_indicator": null,
  "effective_date": null,
  "routing_number": "101050001",
  "prenotification_return": null,
  "created_at": "2020-01-31T23:59:59Z",
  "status": "submitted",
  "type": "ach_prenotification"
}

Create an ACH Prenotification

POST/ach_prenotifications
curl -X "POST" \
  --url "${INCREASE_URL}/ach_prenotifications" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_number": "987654321",
    "routing_number": "101050001"
  }'

List ACH Prenotifications

GET/ach_prenotifications
curl \
  --url "${INCREASE_URL}/ach_prenotifications" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve an ACH Prenotification

GET/ach_prenotifications/{ach_prenotification_id}
curl \
  --url "${INCREASE_URL}/ach_prenotifications/ach_prenotification_ubjf9qqsxl3obbcn1u34" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Inbound ACH Transfer Returns

If unauthorized activity occurs via ACH, you can create an Inbound ACH Transfer Return and we'll reverse the transaction. You can create an Inbound ACH Transfer return the first two days after receiving an Inbound ACH Transfer.

The Inbound ACH Transfer Return Object

{
  "id": "inbound_ach_transfer_return_fhcxk5huskwhmt7iz0gk",
  "class_name": "inbound_ach_transfer_return",
  "inbound_ach_transfer_transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "transaction_id": null,
  "status": "submitted",
  "reason": "payment_stopped",
  "submission": {
    "trace_number": "058349238292834",
    "submitted_at": "2020-01-31T23:59:59Z"
  },
  "type": "inbound_ach_transfer_return"
}

Create an ACH Return

POST/inbound_ach_transfer_returns
curl -X "POST" \
  --url "${INCREASE_URL}/inbound_ach_transfer_returns" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
    "reason": "payment_stopped"
  }'

List Inbound ACH Transfer Returns

GET/inbound_ach_transfer_returns
curl \
  --url "${INCREASE_URL}/inbound_ach_transfer_returns" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve an Inbound ACH Transfer Return

GET/inbound_ach_transfer_returns/{inbound_ach_transfer_return_id}
curl \
  --url "${INCREASE_URL}/inbound_ach_transfer_returns/inbound_ach_transfer_return_fhcxk5huskwhmt7iz0gk" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Wire Transfers

Wire transfers move funds between your Increase account and any other account accessible by Fedwire.

The Wire Transfer Object

{
  "id": "wire_transfer_5akynk7dqsq25qwk9q2u",
  "message_to_recipient": "Message to recipient",
  "amount": 100,
  "currency": "USD",
  "account_number": "987654321",
  "beneficiary_name": null,
  "beneficiary_address_line1": null,
  "beneficiary_address_line2": null,
  "beneficiary_address_line3": null,
  "beneficiary_financial_institution_identifier_type": null,
  "beneficiary_financial_institution_identifier": null,
  "beneficiary_financial_institution_name": null,
  "beneficiary_financial_institution_address_line1": null,
  "beneficiary_financial_institution_address_line2": null,
  "beneficiary_financial_institution_address_line3": null,
  "account_id": "account_in71c4amph0vgo2qllky",
  "external_account_id": "external_account_ukk55lr923a3ac0pp7iv",
  "routing_number": "101050001",
  "approval": {
    "approved_at": "2020-01-31T23:59:59Z",
    "approved_by": null
  },
  "cancellation": null,
  "reversal": null,
  "created_at": "2020-01-31T23:59:59Z",
  "network": "wire",
  "status": "complete",
  "submission": null,
  "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "type": "wire_transfer"
}

Create a Wire Transfer

POST/wire_transfers
curl -X "POST" \
  --url "${INCREASE_URL}/wire_transfers" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "account_number": "987654321",
    "routing_number": "101050001",
    "amount": 100,
    "message_to_recipient": "New account transfer",
    "beneficiary_name": "Ian Crease",
    "beneficiary_address_line1": "33 Liberty Street",
    "beneficiary_address_line2": "New York",
    "beneficiary_address_line3": "NY 10045"
  }'

List Wire Transfers

GET/wire_transfers
curl \
  --url "${INCREASE_URL}/wire_transfers?account_id=account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Wire Transfer

GET/wire_transfers/{wire_transfer_id}
curl \
  --url "${INCREASE_URL}/wire_transfers/wire_transfer_5akynk7dqsq25qwk9q2u" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Approve a Wire Transfer

POST/wire_transfers/{wire_transfer_id}/approve
curl -X "POST" \
  --url "${INCREASE_URL}/wire_transfers/wire_transfer_5akynk7dqsq25qwk9q2u/approve" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Cancel a pending Wire Transfer

POST/wire_transfers/{wire_transfer_id}/cancel
curl -X "POST" \
  --url "${INCREASE_URL}/wire_transfers/wire_transfer_5akynk7dqsq25qwk9q2u/cancel" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Wire Drawdown Requests

Wire drawdown requests enable you to request that someone else send you a wire. This feature is in beta; reach out to support@increase.com to learn more.

The Wire Drawdown Request Object

{
  "type": "wire_drawdown_request",
  "id": "wire_drawdown_request_q6lmocus3glo0lr2bfv3",
  "account_number_id": "account_number_v18nkfqm6afpsrvy82b2",
  "recipient_account_number": "987654321",
  "recipient_routing_number": "101050001",
  "amount": 10000,
  "currency": "USD",
  "message_to_recipient": "Invoice 29582",
  "recipient_name": "Ian Crease",
  "recipient_address_line1": "33 Liberty Street",
  "recipient_address_line2": "New York, NY, 10045",
  "recipient_address_line3": null,
  "submission": {
    "input_message_accountability_data": "20220118MMQFMP0P000003"
  },
  "fulfillment_transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "status": "fulfilled"
}

Create a Wire Drawdown Request

POST/wire_drawdown_requests
curl -X "POST" \
  --url "${INCREASE_URL}/wire_drawdown_requests" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_number_id": "account_number_v18nkfqm6afpsrvy82b2",
    "amount": 10000,
    "message_to_recipient": "Invoice 29582",
    "recipient_account_number": "987654321",
    "recipient_routing_number": "101050001",
    "recipient_name": "Ian Crease",
    "recipient_address_line1": "33 Liberty Street",
    "recipient_address_line2": "New York, NY, 10045"
  }'

List Wire Drawdown Requests

GET/wire_drawdown_requests
curl \
  --url "${INCREASE_URL}/wire_drawdown_requests" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Wire Drawdown Request

GET/wire_drawdown_requests/{wire_drawdown_request_id}
curl \
  --url "${INCREASE_URL}/wire_drawdown_requests/wire_drawdown_request_q6lmocus3glo0lr2bfv3" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Inbound Wire Drawdown Requests

Inbound wire drawdown requests are requests from someone else to send them a wire. This feature is in beta; reach out to support@increase.com to learn more.

The Inbound Wire Drawdown Request Object

{
  "type": "inbound_wire_drawdown_request",
  "id": "inbound_wire_drawdown_request_u5a92ikqhz1ytphn799e",
  "recipient_account_number_id": "account_number_v18nkfqm6afpsrvy82b2",
  "originator_account_number": "987654321",
  "originator_routing_number": "101050001",
  "beneficiary_account_number": "987654321",
  "beneficiary_routing_number": "101050001",
  "amount": 10000,
  "currency": "USD",
  "message_to_recipient": "Invoice 29582",
  "originator_to_beneficiary_information_line1": null,
  "originator_to_beneficiary_information_line2": null,
  "originator_to_beneficiary_information_line3": null,
  "originator_to_beneficiary_information_line4": null,
  "originator_name": "Ian Crease",
  "originator_address_line1": "33 Liberty Street",
  "originator_address_line2": "New York, NY, 10045",
  "originator_address_line3": null,
  "beneficiary_name": "Ian Crease",
  "beneficiary_address_line1": "33 Liberty Street",
  "beneficiary_address_line2": "New York, NY, 10045",
  "beneficiary_address_line3": null
}

List Inbound Wire Drawdown Requests

GET/inbound_wire_drawdown_requests
curl \
  --url "${INCREASE_URL}/inbound_wire_drawdown_requests" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve an Inbound Wire Drawdown Request

GET/inbound_wire_drawdown_requests/{inbound_wire_drawdown_request_id}
curl \
  --url "${INCREASE_URL}/inbound_wire_drawdown_requests/inbound_wire_drawdown_request_u5a92ikqhz1ytphn799e" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Check Transfers

Check Transfers move funds from your Increase account by mailing a physical check.

The Check Transfer Object

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "address_line1": "33 Liberty Street",
  "address_line2": null,
  "address_city": "New York",
  "address_state": "NY",
  "address_zip": "10045",
  "return_address": null,
  "amount": 1000,
  "created_at": "2020-01-31T23:59:59Z",
  "currency": "USD",
  "approval": null,
  "cancellation": null,
  "id": "check_transfer_30b43acfu9vw8fyc4f5",
  "mailed_at": "2020-01-31T23:59:59Z",
  "message": "Invoice 29582",
  "note": null,
  "recipient_name": "Ian Crease",
  "status": "mailed",
  "submitted_at": "2020-01-31T23:59:59Z",
  "submission": {
    "submitted_at": "2020-01-31T23:59:59Z",
    "check_number": "130670"
  },
  "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "stop_payment_request": null,
  "deposit": null,
  "return_details": {
    "transfer_id": "check_transfer_30b43acfu9vw8fyc4f5",
    "returned_at": "2020-01-31T23:59:59Z",
    "file_id": null,
    "reason": "mail_delivery_failure",
    "transaction_id": "transaction_uyrp7fld2ium70oa7oi"
  },
  "type": "check_transfer"
}

Create a Check Transfer

POST/check_transfers
curl -X "POST" \
  --url "${INCREASE_URL}/check_transfers" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "address_line1": "33 Liberty Street",
    "address_city": "New York",
    "address_state": "NY",
    "address_zip": "10045",
    "amount": 1000,
    "message": "Check payment",
    "recipient_name": "Ian Crease"
  }'

List Check Transfers

GET/check_transfers
curl \
  --url "${INCREASE_URL}/check_transfers?account_id=account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Check Transfer

GET/check_transfers/{check_transfer_id}
curl \
  --url "${INCREASE_URL}/check_transfers/check_transfer_30b43acfu9vw8fyc4f5" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Approve a Check Transfer

POST/check_transfers/{check_transfer_id}/approve
curl -X "POST" \
  --url "${INCREASE_URL}/check_transfers/check_transfer_30b43acfu9vw8fyc4f5/approve" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Cancel a pending Check Transfer

POST/check_transfers/{check_transfer_id}/cancel
curl -X "POST" \
  --url "${INCREASE_URL}/check_transfers/check_transfer_30b43acfu9vw8fyc4f5/cancel" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Request a stop payment on a Check Transfer

POST/check_transfers/{check_transfer_id}/stop_payment
curl -X "POST" \
  --url "${INCREASE_URL}/check_transfers/check_transfer_30b43acfu9vw8fyc4f5/stop_payment" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Check Deposits

Check Deposits allow you to deposit images of paper checks into your account.

The Check Deposit Object

{
  "id": "check_deposit_f06n9gpg7sxn8t19lfc1",
  "amount": 1000,
  "created_at": "2020-01-31T23:59:59Z",
  "currency": "USD",
  "status": "submitted",
  "account_id": "account_in71c4amph0vgo2qllky",
  "front_image_file_id": "file_makxrc67oh9l6sg7w9yc",
  "back_image_file_id": null,
  "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "deposit_acceptance": null,
  "deposit_rejection": null,
  "deposit_return": null,
  "type": "check_deposit"
}

Create a Check Deposit

POST/check_deposits
curl -X "POST" \
  --url "${INCREASE_URL}/check_deposits" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "amount": 1000,
    "currency": "USD",
    "front_image_file_id": "file_hkv175ovmc2tb2v2zbrm",
    "back_image_file_id": "file_26khfk98mzfz90a11oqx"
  }'

List Check Deposits

GET/check_deposits
curl \
  --url "${INCREASE_URL}/check_deposits?account_id=account_in71c4amph0vgo2qllky" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve a Check Deposit

GET/check_deposits/{check_deposit_id}
curl \
  --url "${INCREASE_URL}/check_deposits/check_deposit_instruction_q2shv7x9qhevfm71kor8" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Routing Numbers

Routing numbers are used to identify your bank in a financial transaction.

The Routing Number Object

{
  "name": "Chase",
  "routing_number": "021000021",
  "type": "routing_number",
  "ach_transfers": "supported",
  "real_time_payments_transfers": "supported",
  "wire_transfers": "supported"
}

List Routing Numbers

You can use this API to confirm if a routing number is valid, such as when a user is providing you with bank account details. Since routing numbers uniquely identify a bank, this will always return 0 or 1 entry. In Sandbox, the only valid routing number for this method is 110000000.

GET/routing_numbers
curl \
  --url "${INCREASE_URL}/routing_numbers?routing_number=021000021" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

External Accounts

External Accounts represent accounts at financial institutions other than Increase. You can use this API to store their details for reuse.

The External Account Object

{
  "id": "external_account_ukk55lr923a3ac0pp7iv",
  "created_at": "2020-01-31T23:59:59Z",
  "description": "Landlord",
  "status": "active",
  "routing_number": "101050001",
  "account_number": "987654321",
  "funding": "checking",
  "verification_status": "verified",
  "type": "external_account"
}

Create an External Account

POST/external_accounts
curl -X "POST" \
  --url "${INCREASE_URL}/external_accounts" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "routing_number": "101050001",
    "account_number": "987654321",
    "description": "Landlord"
  }'

List External Accounts

GET/external_accounts
curl \
  --url "${INCREASE_URL}/external_accounts" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Update an External Account

PATCH/external_accounts/{external_account_id}
curl -X "PATCH" \
  --url "${INCREASE_URL}/external_accounts/external_account_ukk55lr923a3ac0pp7iv" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "description": "New description"
  }'

Retrieve an External Account

GET/external_accounts/{external_account_id}
curl \
  --url "${INCREASE_URL}/external_accounts/external_account_ukk55lr923a3ac0pp7iv" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Entities

Entities are the legal entities that own accounts. They can be people, corporations, partnerships, or trusts.

The Entity Object

{
  "id": "entity_n8y8tnk2p9339ti393yi",
  "structure": "corporation",
  "corporation": {
    "name": "National Phonograph Company",
    "website": "https://example.com",
    "tax_identifier": "602214076",
    "incorporation_state": "NY",
    "address": {
      "line1": "33 Liberty Street",
      "line2": null,
      "city": "New York",
      "state": "NY",
      "zip": "10045"
    },
    "beneficial_owners": [
      {
        "individual": {
          "name": "Ian Crease",
          "date_of_birth": "1970-01-31",
          "address": {
            "line1": "33 Liberty Street",
            "line2": null,
            "city": "New York",
            "state": "NY",
            "zip": "10045"
          },
          "identification": {
            "method": "social_security_number",
            "number_last4": "1120",
            "country": "US"
          }
        },
        "company_title": "CEO",
        "prong": "control"
      }
    ]
  },
  "natural_person": null,
  "joint": null,
  "trust": null,
  "type": "entity",
  "description": null,
  "relationship": "informational",
  "supplemental_documents": [
    {
      "file_id": "file_makxrc67oh9l6sg7w9yc",
      "created_at": "2020-01-31T23:59:59Z",
      "type": "entity_supplemental_document"
    }
  ]
}

Create an Entity

POST/entities
curl -X "POST" \
  --url "${INCREASE_URL}/entities" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "structure": "corporation",
    "corporation": {
      "name": "National Phonograph Company",
      "website": "https://example.com",
      "tax_identifier": "602214076",
      "incorporation_state": "NY",
      "address": {
        "line1": "33 Liberty Street",
        "city": "New York",
        "state": "NY",
        "zip": "10045"
      },
      "beneficial_owners": [
        {
          "individual": {
            "name": "Ian Crease",
            "date_of_birth": "1970-01-31",
            "address": {
              "line1": "33 Liberty Street",
              "city": "New York",
              "state": "NY",
              "zip": "10045"
            },
            "identification": {
              "method": "social_security_number",
              "number": "078051120"
            }
          },
          "prong": "control",
          "company_title": "CEO"
        }
      ]
    },
    "relationship": "informational",
    "supplemental_documents": [
      {
        "file_id": "file_makxrc67oh9l6sg7w9yc"
      }
    ]
  }'

List Entities

GET/entities
curl \
  --url "${INCREASE_URL}/entities" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Retrieve an Entity

GET/entities/{entity_id}
curl \
  --url "${INCREASE_URL}/entities/entity_n8y8tnk2p9339ti393yi" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"

Supplemental Documents

Supplemental Documents are uploaded files connected to an Entity during onboarding.

The Supplemental Document Object

{
  "file_id": "file_makxrc67oh9l6sg7w9yc",
  "created_at": "2020-01-31T23:59:59Z",
  "type": "entity_supplemental_document"
}