Skip to main content
API Reference
Cards
Pending Transactions

Pending Transactions are potential future additions and removals of money from your bank account. They impact your available balance, but not your current balance. To learn more, see Transactions and Transfers.

Events
Your application can listen to webhooks about this resource. The events about Pending Transactions will have the categories "pending_transaction.created" or "pending_transaction.updated" .
The Pending Transaction object
{
  "account_id": "account_in71c4amph0vgo2qllky",
  "amount": 100,
  "completed_at": null,
  "created_at": "2020-01-31T23:59:59Z",
  "currency": "USD",
  "description": "INVOICE 2468",
  "held_amount": 100,
  "id": "pending_transaction_k1sfetcau2qbvjbzgju4",
  "route_id": "card_oubs0hwk5rn6knuecxg2",
  "route_type": "card",
  "source": {
    "ach_transfer_instruction": {
      "amount": 100,
      "transfer_id": "ach_transfer_uoxatyh3lt5evrsdvo7q"
    },
    "category": "ach_transfer_instruction"
  },
  "status": "pending",
  "type": "pending_transaction"
}
Attributes
account_id
string

The identifier for the account this Pending Transaction belongs to.

More about Accounts.
amount
integer

The Pending Transaction amount in the minor unit of its currency. For dollars, for example, this is cents.

completed_at
string
Nullable

The ISO 8601 date on which the Pending Transaction was completed.

created_at
string

The ISO 8601 date on which the Pending Transaction occurred.

currency
enum

The ISO 4217 code for the Pending Transaction’s currency. This will match the currency on the Pending Transaction’s Account.

description
string

For a Pending Transaction related to a transfer, this is the description you provide. For a Pending Transaction related to a payment, this is the description the vendor provides.

held_amount
integer

The amount that this Pending Transaction decrements the available balance of its Account. This is usually the same as amount, but will differ if the amount is positive.

id
string

The Pending Transaction identifier.

route_id
string
Nullable

The identifier for the route this Pending Transaction came through. Routes are things like cards and ACH details.

route_type
enum
Nullable

The type of the route this Pending Transaction came through.

source
dictionary

This is an object giving more details on the network-level event that caused the Pending Transaction. For example, for a card transaction this lists the merchant’s industry and location.

status
enum

Whether the Pending Transaction has been confirmed and has an associated Transaction.

type
string

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

List Pending Transactions
curl \
  --url "${INCREASE_URL}/pending_transactions" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
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 pendingTransaction of client.pendingTransactions.list()) {
  console.log(pendingTransaction.id);
}
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.pending_transactions.list()
page = page.data[0]
print(page.id)
require "increase"

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

page = increase.pending_transactions.list

puts(page)
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.PendingTransactions.List(context.TODO(), increase.PendingTransactionListParams{})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", page)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.pendingtransactions.PendingTransactionListPage;
import com.increase.api.models.pendingtransactions.PendingTransactionListParams;

public final class Main {
    private Main() {}

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

        PendingTransactionListPage page = client.pendingTransactions().list();
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.pendingtransactions.PendingTransactionListPage
import com.increase.api.models.pendingtransactions.PendingTransactionListParams

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

    val page: PendingTransactionListPage = client.pendingTransactions().list()
}
<?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->pendingTransactions->list(
    accountID: 'account_id',
    category: ['in' => ['account_transfer_instruction']],
    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',
    limit: 1,
    routeID: 'route_id',
    status: ['in' => ['pending']],
  );

  var_dump($page);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.PendingTransactions;

IncreaseClient client = new();

PendingTransactionListParams parameters = new();

var page = await client.PendingTransactions.List(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
Returns a list response :
{
  "data": [
    { /* Pending Transaction object */ },
    { /* Pending Transaction object */ }
    /* ... */
  ],
  "next_cursor": "v57w5d",
}
Parameters
account_id
string

Filter pending transactions to those belonging to the specified Account.

More about Accounts.
route_id
string

Filter pending transactions to those belonging to the specified Route.

category.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.

status.in
array of strings

Filter Pending Transactions for those with the specified status. By default only Pending Transactions in with status pending will be returned. For GET requests, this should be encoded as a comma-delimited string, such as ?in=one,two,three.

More
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 a Pending Transaction

Creates a pending transaction on an account. This can be useful to hold funds for an external payment or known future transaction outside of Increase (only negative amounts are supported). The resulting Pending Transaction will have a category of user_initiated_hold and can be released via the API to unlock the held funds.

curl -X "POST" \
  --url "${INCREASE_URL}/pending_transactions" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "account_id": "account_in71c4amph0vgo2qllky",
    "amount": -1000,
    "description": "Hold for pending transaction"
  }'
import Increase from 'increase';

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

const pendingTransaction = await client.pendingTransactions.create({
  account_id: 'account_in71c4amph0vgo2qllky',
  amount: -1000,
});

console.log(pendingTransaction.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
pending_transaction = client.pending_transactions.create(
    account_id="account_in71c4amph0vgo2qllky",
    amount=-1000,
)
print(pending_transaction.id)
require "increase"

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

pending_transaction = increase.pending_transactions.create(account_id: "account_in71c4amph0vgo2qllky", amount: -1000)

puts(pending_transaction)
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
	)
	pendingTransaction, err := client.PendingTransactions.New(context.TODO(), increase.PendingTransactionNewParams{
		AccountID: increase.F("account_in71c4amph0vgo2qllky"),
		Amount:    increase.F(int64(-1000)),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", pendingTransaction.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.pendingtransactions.PendingTransaction;
import com.increase.api.models.pendingtransactions.PendingTransactionCreateParams;

public final class Main {
    private Main() {}

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

        PendingTransactionCreateParams params = PendingTransactionCreateParams.builder()
            .accountId("account_in71c4amph0vgo2qllky")
            .amount(-1000L)
            .build();
        PendingTransaction pendingTransaction = client.pendingTransactions().create(params);
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.pendingtransactions.PendingTransaction
import com.increase.api.models.pendingtransactions.PendingTransactionCreateParams

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

    val params: PendingTransactionCreateParams = PendingTransactionCreateParams.builder()
        .accountId("account_in71c4amph0vgo2qllky")
        .amount(-1000L)
        .build()
    val pendingTransaction: PendingTransaction = client.pendingTransactions().create(params)
}
<?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 {
  $pendingTransaction = $client->pendingTransactions->create(
    accountID: 'account_in71c4amph0vgo2qllky',
    amount: -1000,
    description: 'Hold for pending transaction',
  );

  var_dump($pendingTransaction);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.PendingTransactions;

IncreaseClient client = new();

PendingTransactionCreateParams parameters = new()
{
    AccountID = "account_in71c4amph0vgo2qllky",
    Amount = -1000,
};

var pendingTransaction = await client.PendingTransactions.Create(parameters);

Console.WriteLine(pendingTransaction);
Parameters
account_id
string
Required

The Account to place the hold on.

More about Accounts.
amount
integer
Required

The amount to hold in the minor unit of the account’s currency. For dollars, for example, this is cents. This should be a negative amount - to hold $1.00 from the account, you would pass -100.

description
string

The description you choose to give the hold.

Between 1 and 200 characters
Retrieve a Pending Transaction
curl \
  --url "${INCREASE_URL}/pending_transactions/pending_transaction_k1sfetcau2qbvjbzgju4" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
import Increase from 'increase';

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

const pendingTransaction = await client.pendingTransactions.retrieve(
  'pending_transaction_k1sfetcau2qbvjbzgju4',
);

console.log(pendingTransaction.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
pending_transaction = client.pending_transactions.retrieve(
    "pending_transaction_k1sfetcau2qbvjbzgju4",
)
print(pending_transaction.id)
require "increase"

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

pending_transaction = increase.pending_transactions.retrieve("pending_transaction_k1sfetcau2qbvjbzgju4")

puts(pending_transaction)
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
	)
	pendingTransaction, err := client.PendingTransactions.Get(context.TODO(), "pending_transaction_k1sfetcau2qbvjbzgju4")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", pendingTransaction.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.pendingtransactions.PendingTransaction;
import com.increase.api.models.pendingtransactions.PendingTransactionRetrieveParams;

public final class Main {
    private Main() {}

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

        PendingTransaction pendingTransaction = client.pendingTransactions().retrieve("pending_transaction_k1sfetcau2qbvjbzgju4");
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.pendingtransactions.PendingTransaction
import com.increase.api.models.pendingtransactions.PendingTransactionRetrieveParams

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

    val pendingTransaction: PendingTransaction = client.pendingTransactions().retrieve("pending_transaction_k1sfetcau2qbvjbzgju4")
}
<?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 {
  $pendingTransaction = $client->pendingTransactions->retrieve(
    'pending_transaction_k1sfetcau2qbvjbzgju4'
  );

  var_dump($pendingTransaction);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.PendingTransactions;

IncreaseClient client = new();

PendingTransactionRetrieveParams parameters = new()
{
    PendingTransactionID = "pending_transaction_k1sfetcau2qbvjbzgju4"
};

var pendingTransaction = await client.PendingTransactions.Retrieve(parameters);

Console.WriteLine(pendingTransaction);
Parameters
pending_transaction_id
string
Required

The identifier of the Pending Transaction.

Release a user-initiated Pending Transaction

Release a Pending Transaction you had previously created. The Pending Transaction must have a category of user_initiated_hold and a status of pending. This will unlock the held funds and mark the Pending Transaction as complete.

curl -X "POST" \
  --url "${INCREASE_URL}/pending_transactions/pending_transaction_k1sfetcau2qbvjbzgju4/release" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
import Increase from 'increase';

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

const pendingTransaction = await client.pendingTransactions.release(
  'pending_transaction_k1sfetcau2qbvjbzgju4',
);

console.log(pendingTransaction.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
pending_transaction = client.pending_transactions.release(
    "pending_transaction_k1sfetcau2qbvjbzgju4",
)
print(pending_transaction.id)
require "increase"

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

pending_transaction = increase.pending_transactions.release("pending_transaction_k1sfetcau2qbvjbzgju4")

puts(pending_transaction)
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
	)
	pendingTransaction, err := client.PendingTransactions.Release(context.TODO(), "pending_transaction_k1sfetcau2qbvjbzgju4")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", pendingTransaction.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.pendingtransactions.PendingTransaction;
import com.increase.api.models.pendingtransactions.PendingTransactionReleaseParams;

public final class Main {
    private Main() {}

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

        PendingTransaction pendingTransaction = client.pendingTransactions().release("pending_transaction_k1sfetcau2qbvjbzgju4");
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.pendingtransactions.PendingTransaction
import com.increase.api.models.pendingtransactions.PendingTransactionReleaseParams

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

    val pendingTransaction: PendingTransaction = client.pendingTransactions().release("pending_transaction_k1sfetcau2qbvjbzgju4")
}
<?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 {
  $pendingTransaction = $client->pendingTransactions->release(
    'pending_transaction_k1sfetcau2qbvjbzgju4'
  );

  var_dump($pendingTransaction);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.PendingTransactions;

IncreaseClient client = new();

PendingTransactionReleaseParams parameters = new()
{
    PendingTransactionID = "pending_transaction_k1sfetcau2qbvjbzgju4"
};

var pendingTransaction = await client.PendingTransactions.Release(parameters);

Console.WriteLine(pendingTransaction);
Parameters
pending_transaction_id
string
Required

The identifier of the Pending Transaction to release.

Sandbox: Release an Inbound Funds Hold

This endpoint simulates immediately releasing an Inbound Funds Hold, which might be created as a result of, for example, an ACH debit.

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/pending_transactions/pending_transaction_k1sfetcau2qbvjbzgju4/release_inbound_funds_hold" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
import Increase from 'increase';

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

const pendingTransaction = await client.simulations.pendingTransactions.releaseInboundFundsHold(
  'pending_transaction_k1sfetcau2qbvjbzgju4',
);

console.log(pendingTransaction.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
pending_transaction = client.simulations.pending_transactions.release_inbound_funds_hold(
    "pending_transaction_k1sfetcau2qbvjbzgju4",
)
print(pending_transaction.id)
require "increase"

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

pending_transaction = increase.simulations.pending_transactions.release_inbound_funds_hold(
  "pending_transaction_k1sfetcau2qbvjbzgju4"
)

puts(pending_transaction)
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
	)
	pendingTransaction, err := client.Simulations.PendingTransactions.ReleaseInboundFundsHold(context.TODO(), "pending_transaction_k1sfetcau2qbvjbzgju4")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", pendingTransaction.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.pendingtransactions.PendingTransaction;
import com.increase.api.models.simulations.pendingtransactions.PendingTransactionReleaseInboundFundsHoldParams;

public final class Main {
    private Main() {}

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

        PendingTransaction pendingTransaction = client.simulations().pendingTransactions().releaseInboundFundsHold("pending_transaction_k1sfetcau2qbvjbzgju4");
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.pendingtransactions.PendingTransaction
import com.increase.api.models.simulations.pendingtransactions.PendingTransactionReleaseInboundFundsHoldParams

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

    val pendingTransaction: PendingTransaction = client.simulations().pendingTransactions().releaseInboundFundsHold("pending_transaction_k1sfetcau2qbvjbzgju4")
}
<?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 {
  $pendingTransaction = $client
    ->simulations
    ->pendingTransactions
    ->releaseInboundFundsHold('pending_transaction_k1sfetcau2qbvjbzgju4');

  var_dump($pendingTransaction);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.Simulations.PendingTransactions;

IncreaseClient client = new();

PendingTransactionReleaseInboundFundsHoldParams parameters = new()
{
    PendingTransactionID = "pending_transaction_k1sfetcau2qbvjbzgju4"
};

var pendingTransaction = await client.Simulations.PendingTransactions.ReleaseInboundFundsHold(parameters);

Console.WriteLine(pendingTransaction);
Parameters
pending_transaction_id
string
Required

The pending transaction to release. The pending transaction must have a inbound_funds_hold source.