ACH Transfers — Increase

Skip to main content

Increase home

Docs

Guides API Reference Changelog Search

Status Dashboard

ACH Transfers

Guides\ \ Explanatory and how-to content API Reference\ \ Technical documentation Changelog\ \ Release notes Dashboard\ \ Manage your account Status\ \ Service status

API Reference

Overview

API Reference

Overview Authorization and Testing OpenAPI SDKs OAuth Requests and Responses Object Lists Errors Idempotency Sandbox Simulations

Accounts

Accounts

Overview The Account object List Accounts Create an Account Retrieve an Account Update an Account Retrieve an Account Balance Close an Account Sandbox: Create an account revenue payment Sandbox: Create an interest payment

Account Numbers

Overview The Account Number object List Account Numbers Create an Account Number Retrieve an Account Number Update an Account Number

Account Transfers

Overview The Account Transfer object List Account Transfers Create an Account Transfer Retrieve an Account Transfer Approve an Account Transfer Cancel an Account Transfer

Transactions

Transactions

Overview The Transaction object List Transactions Retrieve a Transaction

Pending Transactions

Overview The Pending Transaction object List Pending Transactions Create a Pending Transaction Retrieve a Pending Transaction Release a user-initiated Pending Transaction Sandbox: Release an Inbound Funds Hold

Declined Transactions

Overview The Declined Transaction object List Declined Transactions Retrieve a Declined Transaction

Ach Transfers

ACH Transfers

Overview The ACH Transfer object List ACH Transfers Create an ACH Transfer Retrieve an ACH Transfer Approve an ACH Transfer Cancel a pending ACH Transfer Sandbox: Acknowledge an ACH Transfer Sandbox: Create a Notification of Change for an ACH Transfer Sandbox: Return an ACH Transfer Sandbox: Settle an ACH Transfer Sandbox: Submit an ACH Transfer

Inbound ACH Transfers

Overview The Inbound ACH Transfer object List Inbound ACH Transfers Retrieve an Inbound ACH Transfer Create a notification of change for an Inbound ACH Transfer Decline an Inbound ACH Transfer Return an Inbound ACH Transfer Sandbox: Create an Inbound ACH Transfer

ACH Prenotifications

Overview The ACH Prenotification object List ACH Prenotifications Create an ACH Prenotification Retrieve an ACH Prenotification

Check Transfers

Check Transfers

Overview The Check Transfer object List Check Transfers Create a Check Transfer Retrieve a Check Transfer Approve a Check Transfer Cancel a pending Check Transfer Stop payment on a Check Transfer Sandbox: Mail a Check Transfer

Inbound Check Deposits

Overview The Inbound Check Deposit object List Inbound Check Deposits Retrieve an Inbound Check Deposit Decline an Inbound Check Deposit Return an Inbound Check Deposit Sandbox: Create an Inbound Check Deposit Sandbox: Accept an Inbound Check Deposit Sandbox: Create an Inbound Check Deposit Adjustment

Physical Check Batches

Overview The Physical Check Batch object Create a Physical Check Batch Cancel a Physical Check Batch Complete a Physical Check Batch

Real Time Payments Transfers

Real-Time Payments Transfers

Overview The Real-Time Payments Transfer object List Real-Time Payments Transfers Create a Real-Time Payments Transfer Retrieve a Real-Time Payments Transfer Approve a Real-Time Payments Transfer Cancel a pending Real-Time Payments Transfer Sandbox: Complete a Real-Time Payments Transfer

Inbound Real-Time Payments Transfers

Overview The Inbound Real-Time Payments Transfer object List Inbound Real-Time Payments Transfers Retrieve an Inbound Real-Time Payments Transfer Sandbox: Create an Inbound Real-Time Payments Transfer

Real-Time Payments Requests for Payment

Overview The Real-Time Payments Request for Payment object List Real-Time Payments Requests for Payment Create a Real-Time Payments Request for Payment Retrieve a Real-Time Payments Request for Payment

Inbound Real-Time Payments Requests for Payment

Overview The Inbound Real-Time Payments Request for Payment object List Inbound Real-Time Payments Requests for Payment Retrieve an Inbound Real-Time Payments Request for Payment

Fednow Transfers

FedNow Transfers

Overview The FedNow Transfer object List FedNow Transfers Create a FedNow Transfer Retrieve a FedNow Transfer Approve a FedNow Transfer Cancel a pending FedNow Transfer Sandbox: Complete a FedNow Transfer

Inbound FedNow Transfers

Overview The Inbound FedNow Transfer object List Inbound FedNow Transfers Retrieve an Inbound FedNow Transfer Sandbox: Create an Inbound FedNow Transfer

Swift Transfers

Swift Transfers

Overview The Swift Transfer object List Swift Transfers Create a Swift Transfer Retrieve a Swift Transfer Approve a Swift Transfer Cancel a pending Swift Transfer

Wire Transfers

Wire Transfers

Overview The Wire Transfer object List Wire Transfers Create a Wire Transfer Retrieve a Wire Transfer Approve a Wire Transfer Cancel a pending Wire Transfer Sandbox: Reverse a Wire Transfer Sandbox: Submit a Wire Transfer

Inbound Wire Transfers

Overview The Inbound Wire Transfer object List Inbound Wire Transfers Retrieve an Inbound Wire Transfer Reverse an Inbound Wire Transfer Sandbox: Create an Inbound Wire Transfer

Wire Drawdown Requests

Overview The Wire Drawdown Request object List Wire Drawdown Requests Create a Wire Drawdown Request Retrieve a Wire Drawdown Request Sandbox: Refuse a Wire Drawdown Request Sandbox: Submit a Wire Drawdown Request

Inbound Wire Drawdown Requests

Overview The Inbound Wire Drawdown Request object List Inbound Wire Drawdown Requests Retrieve an Inbound Wire Drawdown Request Sandbox: Create an Inbound Wire Drawdown request

Card Transfers

Card Tokens

Overview The Card Token object List Card Tokens Retrieve a Card Token Retrieve the capabilities of a Card Token Sandbox: Create a Card Token

Card Push Transfers

Overview The Card Push Transfer object List Card Push Transfers Create a Card Push Transfer Retrieve a Card Push Transfer Approve a Card Push Transfer Cancel a pending Card Push Transfer

Card Validations

Overview The Card Validation object List Card Validations Create a Card Validation Retrieve a Card Validation

Check Deposits

Check Deposits

Overview The Check Deposit object List Check Deposits Create a Check Deposit Retrieve a Check Deposit Sandbox: Adjust a Check Deposit Sandbox: Reject a Check Deposit Sandbox: Return a Check Deposit Sandbox: Submit a Check Deposit

Lockbox Addresses

Overview The Lockbox Address object List Lockbox Addresses Create a Lockbox Address Retrieve a Lockbox Address Update a Lockbox Address

Lockbox Recipients

Overview The Lockbox Recipient object List Lockbox Recipients Create a Lockbox Recipient Retrieve a Lockbox Recipient Update a Lockbox Recipient

Inbound Mail Items

Overview The Inbound Mail Item object List Inbound Mail Items Retrieve an Inbound Mail Item Action an Inbound Mail Item Sandbox: Create an Inbound Mail Item

Cards

Cards

Overview The Card object List Cards Create a Card Retrieve a Card Update a Card Create a Card details iframe Retrieve sensitive details for a Card Update a Card's PIN

Card Payments

Overview The Card Payment object List Card Payments Retrieve a Card Payment Sandbox: Create a Card Authentication attempt Sandbox: Create a Card Authentication Challenge attempt Sandbox: Create an initial Card Authentication Challenge Sandbox: Expire a Card Authorization Sandbox: Create a Card Authorization Sandbox: Create a Card Balance Inquiry Sandbox: Confirm the fuel pump amount for a Card Authorization Sandbox: Increment a Card Authorization Sandbox: Refund a card transaction Sandbox: Reverse a Card Authorization Sandbox: Settle a Card Authorization

Card Purchase Supplements

Overview The Card Purchase Supplement object List Card Purchase Supplements Retrieve a Card Purchase Supplement Sandbox: Create a Card Purchase Supplement

Card Disputes

Overview The Card Dispute object List Card Disputes Create a Card Dispute Retrieve a Card Dispute Submit a User Submission for a Card Dispute Withdraw a Card Dispute Sandbox: Advance the state of a Card Dispute

Physical Cards

Overview The Physical Card object List Physical Cards Create a Physical Card Retrieve a Physical Card Update a Physical Card Sandbox: Advance the shipment status of a Physical Card Sandbox: Create a Physical Card Shipment Tracking Update

Digital Card Profiles

Overview The Digital Card Profile object List Card Profiles Create a Digital Card Profile Retrieve a Digital Card Profile Archive a Digital Card Profile Clones a Digital Card Profile

Physical Card Profiles

Overview The Physical Card Profile object List Physical Card Profiles Create a Physical Card Profile Retrieve a Card Profile Archive a Physical Card Profile Clone a Physical Card Profile

Digital Wallet Tokens

Overview The Digital Wallet Token object List Digital Wallet Tokens Retrieve a Digital Wallet Token Sandbox: Create a digital wallet token request

Compliance

Entities

Overview The Entity object List Entities Create an Entity Retrieve an Entity Update an Entity Archive an Entity Sandbox: Simulate validation of an Entity

Beneficial Owners

Overview The Beneficial Owner object List Beneficial Owners Create a Beneficial Owner Retrieve a Beneficial Owner Update a Beneficial Owner Archive a Beneficial Owner

Supplemental Documents

Overview The Supplemental Document object List Entity Supplemental Document Submissions Create a supplemental document for an Entity

Entity Onboarding Sessions

Overview The Entity Onboarding Session object List Entity Onboarding Session Create an Entity Onboarding Session Retrieve an Entity Onboarding Session Expire an Entity Onboarding Session Sandbox: Submit an Entity Onboarding Session

Programs

Overview The Program object List Programs Retrieve a Program Sandbox: Create a Program

Events and Webhooks

Events

Overview The Event object List Events Retrieve an Event

Event Subscriptions

Overview The Event Subscription object List Event Subscriptions Create an Event Subscription Retrieve an Event Subscription Update an Event Subscription

Real-Time Decisions

Overview The Real-Time Decision object Retrieve a Real-Time Decision Action a Real-Time Decision

External Accounts

Routing Numbers

Overview The Routing Number object List Routing Numbers

External Accounts

Overview The External Account object List External Accounts Create an External Account Retrieve an External Account Update an External Account

Files and Exports

Account Statements

Overview The Account Statement object List Account Statements Retrieve an Account Statement Sandbox: Create an Account Statement

Files

Overview The File object List Files Create a File Retrieve a File Get File Contents

File Links

Overview The File Link object Create a File Link

Exports

Overview The Export object List Exports Create an Export Retrieve an Export Sandbox: Generate a Tax Form Export

OAuth

Groups

Overview The Group object Retrieve Group details

OAuth Applications

Overview The OAuth Application object List OAuth Applications Retrieve an OAuth Application

OAuth Connections

Overview The OAuth Connection object List OAuth Connections Retrieve an OAuth Connection

OAuth Tokens

Overview The OAuth Token object Create an OAuth Token

Intrafi

IntraFi Account Enrollments

Overview The IntraFi Account Enrollment object List IntraFi Account Enrollments Enroll an account in the IntraFi deposit sweep network Get an IntraFi Account Enrollment Unenroll an account from IntraFi

IntraFi Balances

Overview The IntraFi Balance object Get IntraFi balance

IntraFi Exclusions

Overview The IntraFi Exclusion object List IntraFi Exclusions Create an IntraFi Exclusion Get an IntraFi Exclusion Archive an IntraFi Exclusion

ACH Transfers

Copy for LLM

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

Events

Your application can listen to webhooks about this resource. The events about ACH Transfers will have the categories "ach_transfer.created" or "ach_transfer.updated" .

The ACH Transfer object

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

{
  "account_id": "account_in71c4amph0vgo2qllky",
  "account_number": "987654321",
  "acknowledgement": {
    "acknowledged_at": "2020-01-31T23:59:59Z"
  },
  "addenda": null,
  "amount": 100,
  "approval": {
    "approved_at": "2020-01-31T23:59:59Z",
    "approved_by": null
  },
  "cancellation": null,
  "company_descriptive_date": null,
  "company_discretionary_data": null,
  "company_entry_description": null,
  "company_id": "1234987601",
  "company_name": "National Phonograph Company",
  "created_at": "2020-01-31T23:59:59Z",
  "created_by": {
    "category": "user",
    "user": {
      "email": "user@example.com"
    }
  },
  "currency": "USD",
  "destination_account_holder": "business",
  "external_account_id": "external_account_ukk55lr923a3ac0pp7iv",
  "funding": "checking",
  "id": "ach_transfer_uoxatyh3lt5evrsdvo7q",
  "idempotency_key": null,
  "inbound_funds_hold": null,
  "individual_id": null,
  "individual_name": "Ian Crease",
  "network": "ach",
  "notifications_of_change": [],
  "pending_transaction_id": null,
  "preferred_effective_date": {
    "date": null,
    "settlement_schedule": "same_day"
  },
  "return": null,
  "routing_number": "101050001",
  "settlement": null,
  "standard_entry_class_code": "corporate_credit_or_debit",
  "statement_descriptor": "Statement descriptor",
  "status": "returned",
  "submission": {
    "administrative_returns_expected_by": "2020-02-05T11:00:00Z",
    "effective_date": "2020-01-31",
    "expected_funds_settlement_at": "2020-02-03T13:30:00Z",
    "expected_settlement_schedule": "future_dated",
    "submitted_at": "2020-01-31T23:59:59Z",
    "trace_number": "058349238292834"
  },
  "transaction_id": "transaction_uyrp7fld2ium70oa7oi",
  "type": "ach_transfer"
}

Attributes

account_id

string

The Account to which the transfer belongs.

More about Accounts.

account_number

string

The receiver’s account number.

acknowledgement

dictionary

Nullable

After the transfer is acknowledged by FedACH, this will contain supplemental details. The Federal Reserve sends an acknowledgement message for each file that Increase submits.

Child attributes

addenda

dictionary

Nullable

Additional information that will be sent to the recipient.

Child attributes

amount

integer

The transfer amount in USD cents. A positive amount indicates a credit transfer pushing funds to the receiving account. A negative amount indicates a debit transfer pulling funds from the receiving account.

approval

dictionary

Nullable

If your account requires approvals for transfers and the transfer was approved, this will contain details of the approval.

Child attributes

cancellation

dictionary

Nullable

If your account requires approvals for transfers and the transfer was not approved, this will contain details of the cancellation.

Child attributes

company_descriptive_date

string

Nullable

The description of the date of the transfer.

company_discretionary_data

string

Nullable

The data you chose to associate with the transfer.

company_entry_description

string

Nullable

The description of the transfer you set to be shown to the recipient.

company_id

string

The company ID associated with the transfer.

company_name

string

Nullable

The name by which the recipient knows you.

created_at

string

The ISO 8601 date and time at which the transfer was created.

created_by

dictionary

Nullable

What object created the transfer, either via the API or the dashboard.

Child attributes

currency

enum

The ISO 4217 code for the transfer’s currency. For ACH transfers this is always equal to usd.

Possible values

destination_account_holder

enum

The type of entity that owns the receiver’s account.

Possible values

external_account_id

string

Nullable

The identifier of the External Account the transfer was made to, if any.

More about External Accounts.

funding

enum

The type of the receiver’s bank account.

Possible values

id

string

The ACH transfer’s identifier.

idempotency_key

string

Nullable

The idempotency key you chose for this object. This value is unique across Increase and is used to ensure that a request is only processed once. Learn more about idempotency.

inbound_funds_hold

dictionary

Nullable

Increase will sometimes hold the funds for ACH debit transfers. If funds are held, this sub-object will contain details of the hold.

Child attributes

individual_id

string

Nullable

Your internal identifier for the transfer recipient. This value is informational and not verified by the recipient’s bank.

individual_name

string

Nullable

The name of the transfer recipient. This value is informational and not verified by the recipient’s bank.

network

string

The transfer’s network.

notifications_of_change

array

If the receiving bank notifies that future transfers should use different details, this will contain those details.

Child attributes

pending_transaction_id

string

Nullable

The ID for the pending transaction representing the transfer. A pending transaction is created when the transfer requires approval by someone else in your organization.

More about Pending Transactions.

preferred_effective_date

dictionary

Configuration for how the effective date of the transfer will be set. This determines same-day vs future-dated settlement timing. If not set, defaults to a settlement_schedule of same_day. If set, exactly one of the child attributes must be set.

Child attributes

return

dictionary

Nullable

If your transfer is returned, this will contain details of the return.

Child attributes

routing_number

string

The American Bankers’ Association (ABA) Routing Transit Number (RTN) of the receiver’s bank.

settlement

dictionary

Nullable

A subhash containing information about when and how the transfer settled at the Federal Reserve.

Child attributes

standard_entry_class_code

enum

The Standard Entry Class (SEC) code to use for the transfer.

Possible values

statement_descriptor

string

The descriptor that will show on the recipient’s bank statement.

status

enum

The lifecycle status of the transfer.

Possible values

submission

dictionary

Nullable

After the transfer is submitted to FedACH, this will contain supplemental details. Increase batches transfers and submits a file to the Federal Reserve roughly every 30 minutes. The Federal Reserve processes ACH transfers during weekdays according to their posted schedule.

Child attributes

transaction_id

string

Nullable

The ID for the transaction funding the transfer.

More about Transactions.

type

string

A constant representing the object’s type. For this resource it will always be ach_transfer.

List ACH Transfers

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

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

1

2

3

4

5

6

7

8

9

10

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const achTransfer of client.achTransfers.list()) {
  console.log(achTransfer.id);
}

1

2

3

4

5

6

7

8

9

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
page = client.ach_transfers.list()
page = page.data[0]
print(page.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

page = increase.ach_transfers.list

puts(page)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    page, err := client.ACHTransfers.List(context.TODO(), increase.ACHTransferListParams{})
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", page)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransferListPage;
import com.increase.api.models.achtransfers.AchTransferListParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransferListPage page = client.achTransfers().list();
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransferListPage
import com.increase.api.models.achtransfers.AchTransferListParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val page: AchTransferListPage = client.achTransfers().list()
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $page = $client->achTransfers->list(
    accountID: 'account_id',
    createdAt: [\
      'after' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),\
      'before' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),\
      'onOrAfter' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),\
      'onOrBefore' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),\
    ],
    cursor: 'cursor',
    externalAccountID: 'external_account_id',
    idempotencyKey: 'x',
    limit: 1,
    status: ['in' => ['pending_approval']],
  );

var_dump($page);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

using System;
using Increase.Api;
using Increase.Api.Models.AchTransfers;

IncreaseClient client = new();

AchTransferListParams parameters = new();

var page = await client.AchTransfers.List(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}

Returns a list response :

1

2

3

4

5

6

7

8

{
  "data": [\
    { /* ACH Transfer object */ },\
    { /* ACH Transfer object */ }\
    /* ... */\
  ],
  "next_cursor": "v57w5d",
}

Parameters

account_id

string

Filter ACH Transfers to those that originated from the specified Account.

More about Accounts.

external_account_id

string

Filter ACH Transfers to those made to the specified External Account.

More about External Accounts.

idempotency_key

string

Filter records to the one with the specified idempotency_key you chose for that object. This value is unique across Increase and is used to ensure that a request is only processed once. Learn more about idempotency.

Between 1 and 200 characters

status.in

array of strings

Return results whose value is in the provided list. For GET requests, this should be encoded as a comma-delimited string, such as ?in=one,two,three.

Possible values

More parameters

Expand all

cursor

string

limit

integer

created_at.after

string

created_at.before

string

created_at.on_or_after

string

created_at.on_or_before

string

Create an ACH Transfer

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

4

5

6

7

8

9

10

11

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"
  }'

1

2

3

4

5

6

7

8

9

10

11

12

13

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.achTransfers.create({
  account_id: 'account_in71c4amph0vgo2qllky',
  amount: 100,
  statement_descriptor: 'New ACH transfer',
});

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

11

12

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.ach_transfers.create(
    account_id="account_in71c4amph0vgo2qllky",
    amount=100,
    statement_descriptor="New ACH transfer",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

10

11

12

13

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.ach_transfers.create(
  account_id: "account_in71c4amph0vgo2qllky",
  amount: 100,
  statement_descriptor: "New ACH transfer"
)

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.ACHTransfers.New(context.TODO(), increase.ACHTransferNewParams{
        AccountID:           increase.F("account_in71c4amph0vgo2qllky"),
        Amount:              increase.F(int64(100)),
        StatementDescriptor: increase.F("New ACH transfer"),
    })
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.achtransfers.AchTransferCreateParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransferCreateParams params = AchTransferCreateParams.builder()
            .accountId("account_in71c4amph0vgo2qllky")
            .amount(100L)
            .statementDescriptor("New ACH transfer")
            .build();
        AchTransfer achTransfer = client.achTransfers().create(params);
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.achtransfers.AchTransferCreateParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val params: AchTransferCreateParams = AchTransferCreateParams.builder()
        .accountId("account_in71c4amph0vgo2qllky")
        .amount(100L)
        .statementDescriptor("New ACH transfer")
        .build()
    val achTransfer: AchTransfer = client.achTransfers().create(params)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->achTransfers->create(
    accountID: 'account_in71c4amph0vgo2qllky',
    amount: 100,
    statementDescriptor: 'New ACH transfer',
    accountNumber: '987654321',
    addenda: [\
      'category' => 'freeform',\
      'freeform' => [\
        'entries' => [\
          ['paymentRelatedInformation' => 'payment_related_information']\
        ],\
      ],\
      'paymentOrderRemittanceAdvice' => [\
        'invoices' => [['invoiceNumber' => 'sq', 'paidAmount' => 0]]\
      ],\
    ],
    companyDescriptiveDate: 'J!',
    companyDiscretionaryData: 'J!',
    companyEntryDescription: 'J!',
    companyName: 'company_name',
    destinationAccountHolder: 'business',
    externalAccountID: 'external_account_id',
    funding: 'checking',
    individualID: 'individual_id',
    individualName: 'individual_name',
    preferredEffectiveDate: [\
      'date' => '2019-12-27', 'settlementSchedule' => 'same_day'\
    ],
    requireApproval: true,
    routingNumber: '101050001',
    standardEntryClassCode: 'corporate_credit_or_debit',
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

using System;
using Increase.Api;
using Increase.Api.Models.AchTransfers;

IncreaseClient client = new();

AchTransferCreateParams parameters = new()
{
    AccountID = "account_in71c4amph0vgo2qllky",
    Amount = 100,
    StatementDescriptor = "New ACH transfer",
};

var achTransfer = await client.AchTransfers.Create(parameters);

Console.WriteLine(achTransfer);

Parameters

account_id

string

Required

The Increase identifier for the account that will send the transfer.

More about Accounts.

account_number

string

The receiver’s account number. For credit transfers (positive amount) this is the account that funds will be sent to. For debit transfers (negative amount) this is the account that funds will be pulled from.

Between 1 and 17 characters, character restrictions apply

addenda

dictionary

Additional information passed through to the receiving bank with the transfer. Most ACH transfers do not need this. Only set this if your recipient has asked for addendum data, typically unstructured remittance information. Corporate Trade Exchange (CTX) flows can carry structured X12 remittance advice instead.

Child attributes

amount

integer

Required

The transfer amount in USD cents. A positive amount originates a credit transfer pushing funds to the receiving account. A negative amount originates a debit transfer pulling funds from the receiving account.

company_descriptive_date

string

A description of the transfer date (typically YYMMDD), sent in the company batch header. This value is informational and does not affect funds movement, settlement timing, or returns. Only set this if your recipient has asked for it.

Between 1 and 6 characters, character restrictions apply

company_discretionary_data

string

Custom data sent in the company batch header. This value is informational and does not affect funds movement, settlement timing, or returns. Most ACH transfers do not need this. Only set this if your recipient has asked for it.

Between 1 and 20 characters, character restrictions apply

company_entry_description

string

A short description sent in the company batch header. Most receivers do not surface this. Only set this if your recipient has asked for a specific value or if Nacha mandates one for your Standard Entry Class (SEC) code and use case. For example, Prearranged Payment and Deposit (PPD) payroll credits must use PAYROLL, and reversals must use REVERSAL.

Between 1 and 10 characters, character restrictions apply

company_name

string

The name by which the recipient knows you, sent in the company batch header. We recommend setting this on every transfer; if you do not, we fall back to the ACH company name configured on your account.

Between 1 and 16 characters, character restrictions apply

destination_account_holder

enum

The type of entity that owns the receiver’s account.

Possible values

external_account_id

string

The ID of an External Account to initiate a transfer to. If this parameter is provided, account_number, routing_number, and funding must be absent.

More about External Accounts.

funding

enum

The type of the receiver’s bank account.

Defaults to checking

Possible values

individual_id

string

Your internal identifier for the transfer recipient. This value is informational and not verified by the recipient’s bank. Most callers can leave this unset.

Between 1 and 15 characters, character restrictions apply

individual_name

string

The name of the transfer recipient. This value is informational and not verified by the recipient’s bank.

Between 1 and 22 characters, character restrictions apply

preferred_effective_date

dictionary

Child attributes

require_approval

boolean

Whether the transfer requires explicit approval via the dashboard or API.

routing_number

string

The American Bankers’ Association (ABA) Routing Transit Number (RTN) of the receiver’s bank.

Exactly 9 characters, character restrictions apply

standard_entry_class_code

enum

The Standard Entry Class (SEC) code to use for the transfer. If not provided, the default is corporate_credit_or_debit.

Possible values

statement_descriptor

string

Required

A description you choose to give the transfer. This will be saved with the transfer details, displayed in the dashboard, and returned by the API. If individual_name and company_name are not explicitly set by this API, the statement_descriptor will be sent in those fields to the receiving bank to help the customer recognize the transfer. You are highly encouraged to pass individual_name and company_name instead of relying on this fallback.

Between 1 and 200 characters, character restrictions apply

Retrieve an ACH Transfer

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

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

1

2

3

4

5

6

7

8

9

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.achTransfers.retrieve('ach_transfer_uoxatyh3lt5evrsdvo7q');

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.ach_transfers.retrieve(
    "ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.ach_transfers.retrieve("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.ACHTransfers.Get(context.TODO(), "ach_transfer_uoxatyh3lt5evrsdvo7q")
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.achtransfers.AchTransferRetrieveParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.achTransfers().retrieve("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.achtransfers.AchTransferRetrieveParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.achTransfers().retrieve("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->achTransfers->retrieve(
    'ach_transfer_uoxatyh3lt5evrsdvo7q'
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.AchTransfers;

IncreaseClient client = new();

AchTransferRetrieveParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.AchTransfers.Retrieve(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the ACH Transfer.

More about ACH Transfers.

Approve an ACH Transfer

Approves an ACH Transfer in a pending_approval state.

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

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

1

2

3

4

5

6

7

8

9

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.achTransfers.approve('ach_transfer_uoxatyh3lt5evrsdvo7q');

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.ach_transfers.approve(
    "ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.ach_transfers.approve("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.ACHTransfers.Approve(context.TODO(), "ach_transfer_uoxatyh3lt5evrsdvo7q")
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.achtransfers.AchTransferApproveParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.achTransfers().approve("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.achtransfers.AchTransferApproveParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.achTransfers().approve("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->achTransfers->approve(
    'ach_transfer_uoxatyh3lt5evrsdvo7q'
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.AchTransfers;

IncreaseClient client = new();

AchTransferApproveParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.AchTransfers.Approve(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the ACH Transfer to approve.

More about ACH Transfers.

Cancel a pending ACH Transfer

Cancels an ACH Transfer in a pending_approval state.

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

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

1

2

3

4

5

6

7

8

9

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.achTransfers.cancel('ach_transfer_uoxatyh3lt5evrsdvo7q');

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.ach_transfers.cancel(
    "ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.ach_transfers.cancel("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.ACHTransfers.Cancel(context.TODO(), "ach_transfer_uoxatyh3lt5evrsdvo7q")
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.achtransfers.AchTransferCancelParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.achTransfers().cancel("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.achtransfers.AchTransferCancelParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.achTransfers().cancel("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->achTransfers->cancel(
    'ach_transfer_uoxatyh3lt5evrsdvo7q'
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.AchTransfers;

IncreaseClient client = new();

AchTransferCancelParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.AchTransfers.Cancel(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the pending ACH Transfer to cancel.

More about ACH Transfers.

Sandbox: Acknowledge an ACH Transfer

Simulates the acknowledgement of an ACH Transfer by the Federal Reserve. This transfer must first have a status of submitted. In production, the Federal Reserve generally acknowledges submitted ACH files within 30 minutes. Since sandbox ACH Transfers are not submitted to the Federal Reserve, this endpoint allows you to skip that delay and add the acknowledgement subresource to the ACH Transfer.

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

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

1

2

3

4

5

6

7

8

9

10

11

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.simulations.achTransfers.acknowledge(
  'ach_transfer_uoxatyh3lt5evrsdvo7q',
);

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.simulations.ach_transfers.acknowledge(
    "ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.simulations.ach_transfers.acknowledge("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.Simulations.ACHTransfers.Acknowledge(context.TODO(), "ach_transfer_uoxatyh3lt5evrsdvo7q")
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.simulations.achtransfers.AchTransferAcknowledgeParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.simulations().achTransfers().acknowledge("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.simulations.achtransfers.AchTransferAcknowledgeParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.simulations().achTransfers().acknowledge("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->simulations->achTransfers->acknowledge(
    'ach_transfer_uoxatyh3lt5evrsdvo7q'
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.Simulations.AchTransfers;

IncreaseClient client = new();

AchTransferAcknowledgeParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.Simulations.AchTransfers.Acknowledge(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the ACH Transfer you wish to become acknowledged.

More about ACH Transfers.

Sandbox: Create a Notification of Change for an ACH Transfer

Simulates receiving a Notification of Change for an ACH Transfer.

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

4

5

6

7

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/create_notification_of_change" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "corrected_routing_number": "123456789"
  }'

1

2

3

4

5

6

7

8

9

10

11

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.simulations.achTransfers.createNotificationOfChange(
  'ach_transfer_uoxatyh3lt5evrsdvo7q',
);

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.simulations.ach_transfers.create_notification_of_change(
    ach_transfer_id="ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.simulations.ach_transfers.create_notification_of_change("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.Simulations.ACHTransfers.NewNotificationOfChange(
        context.TODO(),
        "ach_transfer_uoxatyh3lt5evrsdvo7q",
        increase.SimulationACHTransferNewNotificationOfChangeParams{},
    )
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.simulations.achtransfers.AchTransferCreateNotificationOfChangeParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.simulations().achTransfers().createNotificationOfChange("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.simulations.achtransfers.AchTransferCreateNotificationOfChangeParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.simulations().achTransfers().createNotificationOfChange("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->simulations->achTransfers->createNotificationOfChange(
    'ach_transfer_uoxatyh3lt5evrsdvo7q',
    correctedAccountFunding: 'checking',
    correctedAccountNumber: 'x',
    correctedIndividualID: 'x',
    correctedRoutingNumber: '123456789',
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.Simulations.AchTransfers;

IncreaseClient client = new();

AchTransferCreateNotificationOfChangeParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.Simulations.AchTransfers.CreateNotificationOfChange(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the ACH Transfer you wish to create a notification of change for.

More about ACH Transfers.

corrected_account_funding

enum

The corrected account funding type.

Possible values

corrected_account_number

string

The corrected account number.

Between 1 and 17 characters

corrected_individual_id

string

The corrected individual identifier.

Between 1 and 22 characters

corrected_routing_number

string

The corrected routing number.

Exactly 9 characters, character restrictions apply

Sandbox: Return an ACH Transfer

Simulates the return of an ACH Transfer by the Federal Reserve due to an error condition. This will also create a Transaction to account for the returned funds. This transfer must first have a status of submitted.

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

4

5

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/return" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{}'

1

2

3

4

5

6

7

8

9

10

11

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.simulations.achTransfers.return(
  'ach_transfer_uoxatyh3lt5evrsdvo7q',
);

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.simulations.ach_transfers.return_(
    ach_transfer_id="ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.simulations.ach_transfers.return_("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.Simulations.ACHTransfers.Return(
        context.TODO(),
        "ach_transfer_uoxatyh3lt5evrsdvo7q",
        increase.SimulationACHTransferReturnParams{},
    )
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.simulations.achtransfers.AchTransferReturnParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.simulations().achTransfers().return_("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.simulations.achtransfers.AchTransferReturnParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.simulations().achTransfers().return_("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->simulations->achTransfers->return(
    'ach_transfer_uoxatyh3lt5evrsdvo7q',
    addendaInformation: 'x',
    reason: 'insufficient_fund',
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.Simulations.AchTransfers;

IncreaseClient client = new();

AchTransferReturnParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.Simulations.AchTransfers.Return(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the ACH Transfer you wish to return.

More about ACH Transfers.

addenda_information

string

Free-form information the returning bank includes in the return addenda. For a file_record_edit_criteria (R17) return, set this to QUESTIONABLE to simulate a return the bank believes was initiated under questionable circumstances.

Between 1 and 200 characters

reason

enum

The reason why the Federal Reserve or destination bank returned this transfer.

Defaults to no_account

Possible values

Sandbox: Settle an ACH Transfer

Simulates the settlement of an ACH Transfer by the Federal Reserve. This transfer must first have a status of pending_submission or submitted. For convenience, if the transfer is in status: pending_submission, the simulation will also submit the transfer. Without this simulation the transfer will eventually settle on its own following the same Federal Reserve timeline as in production. Additionally, you can specify the behavior of the inbound funds hold that is created when the ACH Transfer is settled. If no behavior is specified, the inbound funds hold will be released immediately in order for the funds to be available for use.

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

4

5

6

7

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/ach_transfers/ach_transfer_uoxatyh3lt5evrsdvo7q/settle" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "inbound_funds_hold_behavior": "release_immediately"
  }'

1

2

3

4

5

6

7

8

9

10

11

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.simulations.achTransfers.settle(
  'ach_transfer_uoxatyh3lt5evrsdvo7q',
);

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.simulations.ach_transfers.settle(
    ach_transfer_id="ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.simulations.ach_transfers.settle("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.Simulations.ACHTransfers.Settle(
        context.TODO(),
        "ach_transfer_uoxatyh3lt5evrsdvo7q",
        increase.SimulationACHTransferSettleParams{},
    )
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.simulations.achtransfers.AchTransferSettleParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.simulations().achTransfers().settle("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.simulations.achtransfers.AchTransferSettleParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.simulations().achTransfers().settle("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->simulations->achTransfers->settle(
    'ach_transfer_uoxatyh3lt5evrsdvo7q',
    inboundFundsHoldBehavior: 'release_immediately',
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.Simulations.AchTransfers;

IncreaseClient client = new();

AchTransferSettleParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.Simulations.AchTransfers.Settle(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the ACH Transfer you wish to become settled.

More about ACH Transfers.

inbound_funds_hold_behavior

enum

The behavior of the inbound funds hold that is created when the ACH Transfer is settled. If no behavior is specified, the inbound funds hold will be released immediately in order for the funds to be available for use.

Possible values

Sandbox: Submit an ACH Transfer

Simulates the submission of an ACH Transfer to the Federal Reserve. This transfer must first have a status of pending_approval or pending_submission. In production, Increase submits ACH Transfers to the Federal Reserve three times per day on weekdays. Since sandbox ACH Transfers are not submitted to the Federal Reserve, this endpoint allows you to skip that delay and transition the ACH Transfer to a status of submitted.

cURL TypeScript Python Ruby Go Java Kotlin PHP C#

1

2

3

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

1

2

3

4

5

6

7

8

9

10

11

import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const achTransfer = await client.simulations.achTransfers.submit(
  'ach_transfer_uoxatyh3lt5evrsdvo7q',
);

console.log(achTransfer.id);

1

2

3

4

5

6

7

8

9

10

import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
ach_transfer = client.simulations.ach_transfers.submit(
    "ach_transfer_uoxatyh3lt5evrsdvo7q",
)
print(ach_transfer.id)

1

2

3

4

5

6

7

8

9

require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

ach_transfer = increase.simulations.ach_transfers.submit("ach_transfer_uoxatyh3lt5evrsdvo7q")

puts(ach_transfer)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

package main

import (
    "context"
    "fmt"
    "os"

"github.com/Increase/increase-go"
    "github.com/Increase/increase-go/option"
)

func main() {
    client := increase.NewClient(
        option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
    )
    achTransfer, err := client.Simulations.ACHTransfers.Submit(context.TODO(), "ach_transfer_uoxatyh3lt5evrsdvo7q")
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%+v\n", achTransfer.ID)
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.achtransfers.AchTransfer;
import com.increase.api.models.simulations.achtransfers.AchTransferSubmitParams;

public final class Main {
    private Main() {}

public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

AchTransfer achTransfer = client.simulations().achTransfers().submit("ach_transfer_uoxatyh3lt5evrsdvo7q");
    }
}

1

2

3

4

5

6

7

8

9

10

11

12

package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.achtransfers.AchTransfer
import com.increase.api.models.simulations.achtransfers.AchTransferSubmitParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

val achTransfer: AchTransfer = client.simulations().achTransfers().submit("ach_transfer_uoxatyh3lt5evrsdvo7q")
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $achTransfer = $client->simulations->achTransfers->submit(
    'ach_transfer_uoxatyh3lt5evrsdvo7q'
  );

var_dump($achTransfer);
} catch (APIException $e) {
  echo $e->getMessage();
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

using System;
using Increase.Api;
using Increase.Api.Models.Simulations.AchTransfers;

IncreaseClient client = new();

AchTransferSubmitParams parameters = new()
{
    AchTransferID = "ach_transfer_uoxatyh3lt5evrsdvo7q"
};

var achTransfer = await client.Simulations.AchTransfers.Submit(parameters);

Console.WriteLine(achTransfer);

Parameters

ach_transfer_id

string

Required

The identifier of the ACH Transfer you wish to submit.

More about ACH Transfers.