Skip to main content
API Reference
Cards
Programs

Programs determine the compliance and commercial terms of Accounts. By default, you have a Commercial Banking program for managing your own funds. If you are lending or managing funds on behalf of your customers, or otherwise engaged in regulated activity, we will work together to create additional Programs for you.

Events
Your application can listen to webhooks about this resource. The events about Programs will have the categories "program.created" or "program.updated" .
The Program object
{
  "bank": "first_internet_bank",
  "billing_account_id": null,
  "created_at": "2020-01-31T23:59:59Z",
  "default_digital_card_profile_id": null,
  "id": "program_i2v2os4mwza1oetokh9i",
  "interest_rate": "0.01",
  "lending": null,
  "name": "Commercial Banking",
  "type": "program",
  "updated_at": "2020-01-31T23:59:59Z"
}
Attributes
bank
enum

The Bank the Program is with.

billing_account_id
string
Nullable

The Program billing account.

More about Accounts.
created_at
string

The ISO 8601 time at which the Program was created.

default_digital_card_profile_id
string
Nullable

The default configuration for digital cards attached to this Program.

More about Digital Card Profiles.
id
string

The Program identifier.

interest_rate
string

The Interest Rate currently being earned on the accounts in this program, as a string containing a decimal number. For example, a 1% interest rate would be represented as “0.01”.

lending
dictionary
Nullable

The lending details for the program.

name
string

The name of the Program.

type
string

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

updated_at
string

The ISO 8601 time at which the Program was last updated.

List Programs
curl \
  --url "${INCREASE_URL}/programs" \
  -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 program of client.programs.list()) {
  console.log(program.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.programs.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.programs.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.Programs.List(context.TODO(), increase.ProgramListParams{})
	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.programs.ProgramListPage;
import com.increase.api.models.programs.ProgramListParams;

public final class Main {
    private Main() {}

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

        ProgramListPage page = client.programs().list();
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.programs.ProgramListPage
import com.increase.api.models.programs.ProgramListParams

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

    val page: ProgramListPage = client.programs().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->programs->list(cursor: 'cursor', limit: 1);

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

IncreaseClient client = new();

ProgramListParams parameters = new();

var page = await client.Programs.List(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
Returns a list response :
{
  "data": [
    { /* Program object */ },
    { /* Program object */ }
    /* ... */
  ],
  "next_cursor": "v57w5d",
}
Parameters
More
cursor
string
limit
integer
Retrieve a Program
curl \
  --url "${INCREASE_URL}/programs/program_i2v2os4mwza1oetokh9i" \
  -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 program = await client.programs.retrieve('program_i2v2os4mwza1oetokh9i');

console.log(program.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
)
program = client.programs.retrieve(
    "program_i2v2os4mwza1oetokh9i",
)
print(program.id)
require "increase"

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

program = increase.programs.retrieve("program_i2v2os4mwza1oetokh9i")

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

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.programs.Program;
import com.increase.api.models.programs.ProgramRetrieveParams;

public final class Main {
    private Main() {}

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

        Program program = client.programs().retrieve("program_i2v2os4mwza1oetokh9i");
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.programs.Program
import com.increase.api.models.programs.ProgramRetrieveParams

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

    val program: Program = client.programs().retrieve("program_i2v2os4mwza1oetokh9i")
}
<?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 {
  $program = $client->programs->retrieve('program_i2v2os4mwza1oetokh9i');

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

IncreaseClient client = new();

ProgramRetrieveParams parameters = new()
{
    ProgramID = "program_i2v2os4mwza1oetokh9i"
};

var program = await client.Programs.Retrieve(parameters);

Console.WriteLine(program);
Parameters
program_id
string
Required

The identifier of the Program to retrieve.

More about Programs.
Sandbox: Create a Program

Simulates a Program being created in your group. By default, your group has one program called Commercial Banking. Note that when your group operates more than one program, program_id is a required field when creating accounts.

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/programs" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "name": "For Benefit Of"
  }'
import Increase from 'increase';

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

const program = await client.simulations.programs.create({ name: 'For Benefit Of' });

console.log(program.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
)
program = client.simulations.programs.create(
    name="For Benefit Of",
)
print(program.id)
require "increase"

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

program = increase.simulations.programs.create(name: "For Benefit Of")

puts(program)
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
	)
	program, err := client.Simulations.Programs.New(context.TODO(), increase.SimulationProgramNewParams{
		Name: increase.F("For Benefit Of"),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", program.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.programs.Program;
import com.increase.api.models.simulations.programs.ProgramCreateParams;

public final class Main {
    private Main() {}

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

        ProgramCreateParams params = ProgramCreateParams.builder()
            .name("For Benefit Of")
            .build();
        Program program = client.simulations().programs().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.programs.Program
import com.increase.api.models.simulations.programs.ProgramCreateParams

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

    val params: ProgramCreateParams = ProgramCreateParams.builder()
        .name("For Benefit Of")
        .build()
    val program: Program = client.simulations().programs().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 {
  $program = $client->simulations->programs->create(
    name: 'For Benefit Of',
    bank: 'core_bank',
    lendingMaximumExtendableCredit: 0,
    reserveAccountID: 'reserve_account_id',
  );

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

IncreaseClient client = new();

ProgramCreateParams parameters = new() { Name = "For Benefit Of" };

var program = await client.Simulations.Programs.Create(parameters);

Console.WriteLine(program);
Parameters
bank
enum

The bank for the program’s accounts, defaults to First Internet Bank.

lending_maximum_extendable_credit
integer

The maximum extendable credit of the program being added.

name
string
Required

The name of the program being added.

Between 1 and 200 characters
reserve_account_id
string

The identifier of the Account the Program should be added to is for.

More about Accounts.