Financial accounts
Use this reference for exact request attributes, response envelopes, object shape, and examples. For setup flows, payout-destination routing, and account eligibility, start with Set up financial accounts and Manage payout destinations.
Use the operation response code and error body when deciding whether to retry, reconnect, change capability state, or ask the account owner for new details.
Operations
The financial account object
The response shape varies slightly by operation. Lookup and page return the complete readable state; disconnect and reconnect return a compact account summary. Optional fields are omitted when no value is stored.
Properties
Connect a financial account
Register an existing mobile-money wallet or Ghana bank account so it can be selected by supported money-movement flows. The API also accepts a Dosh account resource for recordkeeping, but it does not store type-specific Dosh details and payouts do not support it as a destination. For a supported payout destination, set push_configuration.enabled to true, then map the returned account ID with Set payout destinations.
Validation rules
labelandreference: Both must be 5–40 characters. Uselabelfor human-readable names,referencefor your internal identifiers.currency: Currentlyghs.owner: Wallet and Dosh requests requireowner.nameandowner.address.country. Bank requests may supply those values in either top-levelownerorbank_account.ghana_bank_account.holder; missing values are filled between the two objects.type: Determines which nested object is required.walletneedswallet,bank_accountneedsbank_account, anddosh_accountneeds an emptydosh_accountobject.- Wallet-specific: When
typeiswallet,wallet.typemust bemobile_money. A Dosh account uses the top-leveldosh_accounttype and adosh_accountobject. - Bank account-specific: When
typeisbank_account, providebank_account.typeasghana_bank_account, an accountnumber, and at least one ofsort_codeorswift_code. - Push/Pull config:
push_configuration.enabledandpull_configuration.enabledare optional booleans. Connect only records whether pull is enabled; use Enable pull capability when you need to submit authorization context.
Validation failures return 400; missing or invalid authentication returns 401; unexpected persistence or enrichment failures return 500.
Required attributes
Optional attributes
custom_dataobjectClick or tap to expandYour metadata object. String values are stored directly; other JSON values are serialized to strings. Keys may be at most 256 characters and the serialized object may be at most 25 KB. See Custom data.
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/connect \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-connect-001" \
-d '{
"label": "Konadu Tailoring Collections",
"reference": "KONADU-MOMO-SETTLEMENT",
"description": "Primary settlement wallet for Konadu B2C operations.",
"type": "wallet",
"currency": "ghs",
"owner": {
"address": {
"city": "Accra",
"country": "Ghana",
"line_1": "123 High Street",
"name": "Konadu Tailoring Ltd",
"region": "Greater Accra"
},
"name": "Konadu Tailoring Ltd"
},
"wallet": {
"type": "mobile_money",
"mobile_money": {
"network": "mtn",
"account_number": "0242057831"
}
},
"push_configuration": { "enabled": true },
"pull_configuration": { "enabled": false }
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.connect({
label: "Konadu Tailoring Collections",
reference: "KONADU-MOMO-SETTLEMENT",
description: "Primary settlement wallet for Konadu B2C operations.",
type: Inttegro.FinancialAccountTypes.Wallet,
currency: "ghs",
owner: {
address: {
city: "Accra",
country: "Ghana",
line1: "123 High Street",
name: "Konadu Tailoring Ltd",
region: "Greater Accra",
},
name: "Konadu Tailoring Ltd",
},
wallet: {
type: Inttegro.wallets.WalletTypes.MobileMoney,
mobileMoney: {
network: Inttegro.MobileMoneyNetworks.MTN,
accountNumber: "0242057831",
},
},
pushConfiguration: {
enabled: true,
},
pullConfiguration: {
enabled: false,
},
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
"github.com/zebodotdev/inttegro-sdk-go/v4/bankaccounts"
"github.com/zebodotdev/inttegro-sdk-go/v4/paymentmethods"
"github.com/zebodotdev/inttegro-sdk-go/v4/wallets"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := inttegro.FinancialAccountCreateParams{
Label: "Konadu Tailoring Collections",
Reference: "KONADU-MOMO-SETTLEMENT",
Description: "Primary settlement wallet for Konadu B2C operations.",
Type: inttegro.FinancialAccountTypeWallet,
Currency: "ghs",
Owner: &bankaccounts.Owner{
Address: bankaccounts.OwnerAddress{
City: "Accra",
Country: "Ghana",
Line1: "123 High Street",
Name: "Konadu Tailoring Ltd",
Region: "Greater Accra",
},
Name: "Konadu Tailoring Ltd",
},
Wallet: &wallets.Config{
Type: wallets.TypeMobileMoney,
MobileMoney: &wallets.MobileMoney{
Network: paymentmethods.MobileMoneyNetworkMTN,
AccountNumber: "0242057831",
},
},
PushConfiguration: &inttegro.PullPushConfig{
Enabled: inttegro.Bool(true),
},
PullConfiguration: &inttegro.PullPushConfig{
Enabled: inttegro.Bool(false),
},
}
result, err := client.FinancialAccounts.Connect(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.connect(inttegro.financial_accounts.CreateWalletRequest(
label="Konadu Tailoring Collections",
reference="KONADU-MOMO-SETTLEMENT",
description="Primary settlement wallet for Konadu B2C operations.",
type=inttegro.FinancialAccountType.WALLET,
currency="ghs",
owner=inttegro.bank_accounts.OwnerParams(
address=inttegro.bank_accounts.OwnerAddressParams(
city="Accra",
country="Ghana",
line_1="123 High Street",
name="Konadu Tailoring Ltd",
region="Greater Accra",
),
name="Konadu Tailoring Ltd",
),
wallet=inttegro.wallets.Params(
type=inttegro.wallets.WalletType.MOBILE_MONEY,
mobile_money=inttegro.wallets.MobileMoneyParams(
network=inttegro.MobileMoneyNetwork.MTN,
account_number="0242057831",
),
),
push_configuration=inttegro.financial_accounts.WalletPushConfiguration(
enabled=True,
),
pull_configuration=inttegro.financial_accounts.WalletPullConfiguration(
enabled=False,
),
))
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->connect([
'label' => 'Konadu Tailoring Collections',
'reference' => 'KONADU-MOMO-SETTLEMENT',
'description' => 'Primary settlement wallet for Konadu B2C operations.',
'type' => \Inttegro\FinancialAccountType::Wallet,
'currency' => 'ghs',
'owner' => [
'address' => [
'city' => 'Accra',
'country' => 'Ghana',
'line_1' => '123 High Street',
'name' => 'Konadu Tailoring Ltd',
'region' => 'Greater Accra',
],
'name' => 'Konadu Tailoring Ltd',
],
'wallet' => [
'type' => \Inttegro\Wallets\WalletType::MobileMoney,
'mobile_money' => [
'network' => \Inttegro\MobileMoneyNetwork::MTN,
'account_number' => '0242057831',
],
],
'push_configuration' => [
'enabled' => true,
],
'pull_configuration' => [
'enabled' => false,
],
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.connect(
label: "Konadu Tailoring Collections",
reference: "KONADU-MOMO-SETTLEMENT",
description: "Primary settlement wallet for Konadu B2C operations.",
type: Inttegro::FinancialAccountType::WALLET,
currency: "ghs",
owner: {
address: {
city: "Accra",
country: "Ghana",
line_1: "123 High Street",
name: "Konadu Tailoring Ltd",
region: "Greater Accra",
},
name: "Konadu Tailoring Ltd",
},
wallet: {
type: Inttegro::Wallets::WalletType::MOBILE_MONEY,
mobile_money: {
network: Inttegro::MobileMoneyNetwork::MTN,
account_number: "0242057831",
},
},
push_configuration: {
enabled: true,
},
pull_configuration: {
enabled: false,
}
)
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountCreateParams;
import com.inttegro.financialaccounts.FinancialAccountType;
import com.inttegro.bankaccounts.BankAccountOwner;
import com.inttegro.bankaccounts.BankAccountOwnerAddress;
import com.inttegro.wallets.WalletConfig;
import com.inttegro.wallets.WalletType;
import com.inttegro.wallets.WalletMobileMoney;
import com.inttegro.paymentmethods.MobileMoneyNetwork;
import com.inttegro.financialaccounts.PullPushConfig;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountCreateParams.builder()
.label("Konadu Tailoring Collections")
.reference("KONADU-MOMO-SETTLEMENT")
.description("Primary settlement wallet for Konadu B2C operations.")
.type(FinancialAccountType.WALLET)
.currency("ghs")
.owner(BankAccountOwner.builder()
.address(BankAccountOwnerAddress.builder()
.city("Accra")
.country("Ghana")
.line1("123 High Street")
.name("Konadu Tailoring Ltd")
.region("Greater Accra")
.build())
.name("Konadu Tailoring Ltd")
.build())
.wallet(WalletConfig.builder()
.type(WalletType.MOBILE_MONEY)
.mobileMoney(WalletMobileMoney.builder()
.network(MobileMoneyNetwork.MTN)
.accountNumber("0242057831")
.build())
.build())
.pushConfiguration(PullPushConfig.builder()
.enabled(true)
.build())
.pullConfiguration(PullPushConfig.builder()
.enabled(false)
.build())
.build();
var result = client.financialAccounts().connect(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.ConnectAsync(new {
label = "Konadu Tailoring Collections",
reference = "KONADU-MOMO-SETTLEMENT",
description = "Primary settlement wallet for Konadu B2C operations.",
type = Inttegro.FinancialAccountType.Wallet,
currency = "ghs",
owner = new {
address = new {
city = "Accra",
country = "Ghana",
line_1 = "123 High Street",
name = "Konadu Tailoring Ltd",
region = "Greater Accra",
},
name = "Konadu Tailoring Ltd",
},
wallet = new {
type = Inttegro.Wallets.WalletType.MobileMoney,
mobile_money = new {
network = Inttegro.MobileMoneyNetwork.MTN,
account_number = "0242057831",
},
},
push_configuration = new {
enabled = true,
},
pull_configuration = new {
enabled = false,
},
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"created_at": "2025-03-18T10:22:11.745Z",
"currency": "ghs",
"description": "Primary settlement wallet for Konadu B2C operations.",
"label": "Konadu Tailoring Collections",
"owner": { … },
"push_configuration": { … },
"reference": "KONADU-MOMO-SETTLEMENT",
"type": "wallet",
"wallet": { … }
}
}
Disconnect a financial account
Stop new money movement to a financial account without deleting its history. The account remains available through lookup and page, and the response sets disconnected_at.
If the account is currently configured as a payout destination for any currency, the request fails unless you either remove it from payout destinations first or set unset_as_payout_destination to true. This prevents accidentally breaking automatic payouts.
Disconnecting an already-disconnected account succeeds without changing the original timestamp. Validation and payout-destination conflicts return 400; missing or invalid authentication returns 401; unexpected lookup or persistence failures return 500.
Request attributes
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/disconnect \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-disconnect-001" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"unset_as_payout_destination": true
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.disconnect({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
unsetAsPayoutDestination: true,
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := inttegro.FinancialAccountDisconnectParams{
AccountID: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
UnsetAsPayoutDestination: inttegro.Bool(true),
}
result, err := client.FinancialAccounts.Disconnect(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.disconnect(
"fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
unset_as_payout_destination=True
)
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->disconnect([
'account_id' => 'fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0',
'unset_as_payout_destination' => true,
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.disconnect(
account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
unset_as_payout_destination: true
)
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountToggleParams;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountToggleParams.builder()
.accountId("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
.unsetAsPayoutDestination(true)
.build();
var result = client.financialAccounts().disconnect(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.DisconnectAsync(new Inttegro.FinancialAccountToggleRequest {
AccountId = "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
UnsetAsPayoutDestination = true,
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"currency": "ghs",
"type": "wallet",
"label": "Vendor settlement - MTN",
"description": "Payout destination for marketplace vendor settlements",
"disconnected_at": "2025-03-22T14:35:18.221Z",
"created_at": "2025-01-15T09:12:33.445Z"
}
}
Reconnect a financial account
Restore a previously disconnected financial account while keeping the same account ID and historical record.
Reconnect only clears the account-level disconnected_at state. It preserves the same account ID, historical payouts or charges, and any existing push or pull configuration already stored on the record. If you removed this account from payout destinations during disconnect, set those destinations again separately.
This endpoint does not perform external authorization or change push and pull configuration. Reconnecting an already-connected account succeeds without changing it. Validation failures return 400; missing or invalid authentication returns 401; unexpected lookup or persistence failures return 500.
Request attributes
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/reconnect \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-reconnect-001" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.reconnect({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.FinancialAccounts.Reconnect(ctx, "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.reconnect("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->reconnect("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.reconnect(account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.financialAccounts().reconnect("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.ReconnectAsync("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"currency": "ghs",
"type": "wallet",
"label": "Vendor settlement - MTN",
"description": "Payout destination for marketplace vendor settlements",
"created_at": "2025-01-15T09:12:33.445Z"
}
}
Create a financial account
Create a financial-account resource from wallet, bank-account, or Dosh account details you already have. This registers the resource; it does not provision a new account at an external institution. Dosh resources do not store type-specific details and cannot be used as payout destinations. For most payout-destination integrations, Connect a financial account expresses that intent more clearly.
Request and response
The request rules match Connect a financial account: owner readiness, type discrimination, supported currency, custom-data limits, and capability configuration are identical. Create responses can additionally include supplied provenance.
Validation failures return 400; missing or invalid authentication returns 401; unexpected persistence or enrichment failures return 500.
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/create \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-create-001" \
-d '{
"label": "Marketplace Seller Sub-Account",
"reference": "SELLER-001-COLLECTION",
"description": "Dedicated collection account for seller 001.",
"type": "wallet",
"currency": "ghs",
"owner": {
"address": {
"city": "Accra",
"country": "Ghana",
"line_1": "45 Market Road",
"name": "Marketplace Seller Ltd",
"region": "Greater Accra"
},
"name": "Marketplace Seller Ltd"
},
"wallet": {
"type": "mobile_money",
"mobile_money": {
"network": "mtn",
"account_number": "0244123456"
}
}
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.create({
label: "Marketplace Seller Sub-Account",
reference: "SELLER-001-COLLECTION",
description: "Dedicated collection account for seller 001.",
type: Inttegro.FinancialAccountTypes.Wallet,
currency: "ghs",
owner: {
address: {
city: "Accra",
country: "Ghana",
line1: "45 Market Road",
name: "Marketplace Seller Ltd",
region: "Greater Accra",
},
name: "Marketplace Seller Ltd",
},
wallet: {
type: Inttegro.wallets.WalletTypes.MobileMoney,
mobileMoney: {
network: Inttegro.MobileMoneyNetworks.MTN,
accountNumber: "0244123456",
},
},
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
"github.com/zebodotdev/inttegro-sdk-go/v4/bankaccounts"
"github.com/zebodotdev/inttegro-sdk-go/v4/paymentmethods"
"github.com/zebodotdev/inttegro-sdk-go/v4/wallets"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := inttegro.FinancialAccountCreateParams{
Label: "Marketplace Seller Sub-Account",
Reference: "SELLER-001-COLLECTION",
Description: "Dedicated collection account for seller 001.",
Type: inttegro.FinancialAccountTypeWallet,
Currency: "ghs",
Owner: &bankaccounts.Owner{
Address: bankaccounts.OwnerAddress{
City: "Accra",
Country: "Ghana",
Line1: "45 Market Road",
Name: "Marketplace Seller Ltd",
Region: "Greater Accra",
},
Name: "Marketplace Seller Ltd",
},
Wallet: &wallets.Config{
Type: wallets.TypeMobileMoney,
MobileMoney: &wallets.MobileMoney{
Network: paymentmethods.MobileMoneyNetworkMTN,
AccountNumber: "0244123456",
},
},
}
result, err := client.FinancialAccounts.Create(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.create(inttegro.financial_accounts.CreateWalletRequest(
label="Marketplace Seller Sub-Account",
reference="SELLER-001-COLLECTION",
description="Dedicated collection account for seller 001.",
type=inttegro.FinancialAccountType.WALLET,
currency="ghs",
owner=inttegro.bank_accounts.OwnerParams(
address=inttegro.bank_accounts.OwnerAddressParams(
city="Accra",
country="Ghana",
line_1="45 Market Road",
name="Marketplace Seller Ltd",
region="Greater Accra",
),
name="Marketplace Seller Ltd",
),
wallet=inttegro.wallets.Params(
type=inttegro.wallets.WalletType.MOBILE_MONEY,
mobile_money=inttegro.wallets.MobileMoneyParams(
network=inttegro.MobileMoneyNetwork.MTN,
account_number="0244123456",
),
),
))
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->create([
'label' => 'Marketplace Seller Sub-Account',
'reference' => 'SELLER-001-COLLECTION',
'description' => 'Dedicated collection account for seller 001.',
'type' => \Inttegro\FinancialAccountType::Wallet,
'currency' => 'ghs',
'owner' => [
'address' => [
'city' => 'Accra',
'country' => 'Ghana',
'line_1' => '45 Market Road',
'name' => 'Marketplace Seller Ltd',
'region' => 'Greater Accra',
],
'name' => 'Marketplace Seller Ltd',
],
'wallet' => [
'type' => \Inttegro\Wallets\WalletType::MobileMoney,
'mobile_money' => [
'network' => \Inttegro\MobileMoneyNetwork::MTN,
'account_number' => '0244123456',
],
],
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.create(
label: "Marketplace Seller Sub-Account",
reference: "SELLER-001-COLLECTION",
description: "Dedicated collection account for seller 001.",
type: Inttegro::FinancialAccountType::WALLET,
currency: "ghs",
owner: {
address: {
city: "Accra",
country: "Ghana",
line_1: "45 Market Road",
name: "Marketplace Seller Ltd",
region: "Greater Accra",
},
name: "Marketplace Seller Ltd",
},
wallet: {
type: Inttegro::Wallets::WalletType::MOBILE_MONEY,
mobile_money: {
network: Inttegro::MobileMoneyNetwork::MTN,
account_number: "0244123456",
},
}
)
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountCreateParams;
import com.inttegro.financialaccounts.FinancialAccountType;
import com.inttegro.bankaccounts.BankAccountOwner;
import com.inttegro.bankaccounts.BankAccountOwnerAddress;
import com.inttegro.wallets.WalletConfig;
import com.inttegro.wallets.WalletType;
import com.inttegro.wallets.WalletMobileMoney;
import com.inttegro.paymentmethods.MobileMoneyNetwork;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountCreateParams.builder()
.label("Marketplace Seller Sub-Account")
.reference("SELLER-001-COLLECTION")
.description("Dedicated collection account for seller 001.")
.type(FinancialAccountType.WALLET)
.currency("ghs")
.owner(BankAccountOwner.builder()
.address(BankAccountOwnerAddress.builder()
.city("Accra")
.country("Ghana")
.line1("45 Market Road")
.name("Marketplace Seller Ltd")
.region("Greater Accra")
.build())
.name("Marketplace Seller Ltd")
.build())
.wallet(WalletConfig.builder()
.type(WalletType.MOBILE_MONEY)
.mobileMoney(WalletMobileMoney.builder()
.network(MobileMoneyNetwork.MTN)
.accountNumber("0244123456")
.build())
.build())
.build();
var result = client.financialAccounts().create(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.CreateAsync(new {
label = "Marketplace Seller Sub-Account",
reference = "SELLER-001-COLLECTION",
description = "Dedicated collection account for seller 001.",
type = Inttegro.FinancialAccountType.Wallet,
currency = "ghs",
owner = new {
address = new {
city = "Accra",
country = "Ghana",
line_1 = "45 Market Road",
name = "Marketplace Seller Ltd",
region = "Greater Accra",
},
name = "Marketplace Seller Ltd",
},
wallet = new {
type = Inttegro.Wallets.WalletType.MobileMoney,
mobile_money = new {
network = Inttegro.MobileMoneyNetwork.MTN,
account_number = "0244123456",
},
},
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_X1Y2Z3A4B5C6D7E8F9G0H1I2J3K4L5M6N7O8P9Q",
"created_at": "2025-03-18T11:30:00.000Z",
"currency": "ghs",
"description": "Dedicated collection account for seller 001.",
"label": "Marketplace Seller Sub-Account",
"owner": { … },
"reference": "SELLER-001-COLLECTION",
"supplied": { … },
"type": "wallet",
"wallet": { … }
}
}
Lookup a financial account
Retrieve the current state of a financial account. Use the result to check connection state and capabilities before changing payout destinations or scheduling money movement.
Lookup returns the complete account shape, including optional fingerprints, institution enrichment, owner details, provenance, and capability configuration when those values are available. Validation failures return 400; missing or invalid authentication returns 401. The current API reports a missing account or read failure as 500, so do not rely on a 404 branch for this operation.
Request attributes
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/lookup \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.lookup({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.FinancialAccounts.Lookup(ctx, "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.lookup("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->lookup("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.lookup(account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
import com.inttegro.Client;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var result = client.financialAccounts().lookup("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.LookupAsync("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"created_at": "2025-03-18T10:22:11.745Z",
"currency": "ghs",
"custom_data": { … },
"description": "Primary settlement wallet for Konadu B2C operations.",
"label": "Konadu Tailoring Collections",
"owner": { … },
"pull_configuration": { … },
"push_configuration": { … },
"reference": "KONADU-MOMO-SETTLEMENT",
"type": "wallet",
"wallet": { … }
}
}
Update a financial account
Change the merchant-controlled metadata on an existing financial account without replacing the underlying destination details.
Unlike Connect or Create, Update doesn't modify the underlying financial account details (network, account number, bank details). It only changes the descriptive metadata and custom data stored in your Inttegro account. To change capabilities (enable/disable push or pull), use the dedicated enable/disable endpoints.
currency, type, and the account-type-specific objects are not accepted by this operation. Create or connect a new financial account when the destination itself changes. Validation failures return 400; missing or invalid authentication returns 401; unexpected lookup or persistence failures return 500.
Request attributes
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/update \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-update-001" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"label": "Konadu Tailoring - Primary",
"custom_data": {
"vendor_id": "VNDR-001",
"region": "Greater Accra"
}
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.update({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
label: "Konadu Tailoring - Primary",
customData: {
vendor_id: "VNDR-001",
region: "Greater Accra",
},
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := map[string]any{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"label": "Konadu Tailoring - Primary",
"custom_data": map[string]any{
"vendor_id": "VNDR-001",
"region": "Greater Accra",
},
}
result, err := client.FinancialAccounts.Update(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.update(inttegro.financial_accounts.UpdateRequest(
account_id="fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
label="Konadu Tailoring - Primary",
custom_data={
"vendor_id": "VNDR-001",
"region": "Greater Accra",
},
))
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->update([
'account_id' => 'fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0',
'label' => 'Konadu Tailoring - Primary',
'custom_data' => [
'vendor_id' => 'VNDR-001',
'region' => 'Greater Accra',
],
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.update(
account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
label: "Konadu Tailoring - Primary",
custom_data: {
vendor_id: "VNDR-001",
region: "Greater Accra",
}
)
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountUpdateParams;
import java.util.Map;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountUpdateParams.builder()
.accountId("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
.label("Konadu Tailoring - Primary")
.customData(Map.<String, String>ofEntries(
Map.entry("vendor_id", "VNDR-001"),
Map.entry("region", "Greater Accra")
))
.build();
var result = client.financialAccounts().update(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.UpdateAsync(new Inttegro.FinancialAccountUpdateRequest {
AccountId = "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
Label = "Konadu Tailoring - Primary",
CustomData = new Dictionary<string, string?> {
["vendor_id"] = "VNDR-001",
["region"] = "Greater Accra",
},
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"created_at": "2025-03-18T10:22:11.745Z",
"currency": "ghs",
"custom_data": { … },
"description": "Primary settlement wallet for Konadu B2C operations.",
"label": "Konadu Tailoring - Primary",
"owner": { … },
"push_configuration": { … },
"reference": "KONADU-MOMO-SETTLEMENT",
"type": "wallet",
"wallet": { … }
}
}
Enable pull capability
Record that a financial account may be used as a funding source in flows that support financial-account pulls. This operation creates the mandate record; it does not debit the account.
You can optionally send the authorization request's ip_address and user_agent. Omit either field when it is unavailable; the API does not derive these values automatically for this operation.
If pull is already enabled, the request succeeds and preserves the existing mandate, including its original enabled_at. New ip_address or user_agent values are not applied until you disable pull and enable it again. Validation failures return 400; missing or invalid authentication returns 401; unexpected lookup or persistence failures return 500.
Request attributes
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/enable_pull \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-enable-pull-001" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.enablePull({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.FinancialAccounts.EnablePull(ctx, "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.enable_pull("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->enablePull("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.enable_pull(account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountToggleParams;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountToggleParams.builder()
.accountId("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
.build();
var result = client.financialAccounts().enablePull(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.EnablePullAsync(new Inttegro.FinancialAccountToggleRequest {
AccountId = "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"created_at": "2025-03-18T10:22:11.745Z",
"currency": "ghs",
"custom_data": {},
"description": "Operations account for collections and transfers.",
"label": "GCB Bank - Collections",
"owner": { … },
"pull_configuration": { … },
"reference": "QUICKPAY-GCB-COLLECTIONS",
"type": "bank_account",
"bank_account": { … }
}
}
Disable pull capability
Revoke the account's current pull mandate. The operation removes pull_configuration from the account response, including the mandate and its enabled_at timestamp. Enabling pull later creates a new mandate, so obtain fresh authorization before doing so.
Disabling an account that already has no pull configuration succeeds without changing it. Validation failures return 400; missing or invalid authentication returns 401; unexpected lookup or persistence failures return 500.
Request attributes
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/disable_pull \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-disable-pull-001" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.disablePull({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.FinancialAccounts.DisablePull(ctx, "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.disable_pull("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->disablePull("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.disable_pull(account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountToggleParams;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountToggleParams.builder()
.accountId("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
.build();
var result = client.financialAccounts().disablePull(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.DisablePullAsync(new Inttegro.FinancialAccountToggleRequest {
AccountId = "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"created_at": "2025-03-18T10:22:11.745Z",
"currency": "ghs",
"custom_data": {},
"description": "Primary settlement wallet for Konadu B2C operations.",
"label": "Konadu Tailoring Collections",
"owner": { … },
"reference": "KONADU-MOMO-SETTLEMENT",
"type": "wallet",
"wallet": { … }
}
}
Enable push capability
Enable push capability on a financial account. This adds push_configuration; it does not schedule a payout or change destination mappings. A supported wallet or Ghana bank account can then qualify as a payout destination when it is connected and its currency matches the payout. Dosh accounts, disconnected accounts, and archived accounts remain ineligible even when push is enabled.
If push is already enabled, the request succeeds and preserves its original enabled_at. Validation failures return 400; missing or invalid authentication returns 401; unexpected lookup or persistence failures return 500.
Request attributes
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/enable_push \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-enable-push-001" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.enablePush({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.FinancialAccounts.EnablePush(ctx, "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.enable_push("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->enablePush("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0");
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.enable_push(account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountToggleParams;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountToggleParams.builder()
.accountId("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
.build();
var result = client.financialAccounts().enablePush(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.EnablePushAsync(new Inttegro.FinancialAccountToggleRequest {
AccountId = "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"created_at": "2025-03-18T10:22:11.745Z",
"currency": "ghs",
"custom_data": {},
"description": "Business account for payroll and vendor settlements.",
"label": "Stanbic Bank - Payroll",
"owner": { … },
"push_configuration": { … },
"reference": "TECHFLOW-STANBIC-PAYROLL",
"type": "bank_account",
"bank_account": { … }
}
}
Disable push capability
Remove push_configuration so the account can no longer qualify as a payout destination.
If the financial account is configured as a payout destination for any currency, the request fails unless you either remove it from payout destinations first or set unset_as_payout_destination to true. This safety check prevents accidentally breaking automatic payouts by disabling push on accounts that are actively receiving settlements.
Disabling an account that already has no push configuration succeeds without changing it. Validation and payout-destination conflicts return 400; missing or invalid authentication returns 401; unexpected lookup or persistence failures return 500.
Request attributes
- Name
unset_as_payout_destination- Type
- boolean
- Description
Optional. When
true, automatically removes this financial account from all payout destinations before disabling push. Defaults tofalse. Set this totrueif you want to disable push on an account that's currently configured as a payout destination—the API will first unset it as a destination, then disable push capability.
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/disable_push \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: financial-account-disable-push-001" \
-d '{
"account_id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.disablePush({
accountId: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
result, err := client.FinancialAccounts.DisablePush(ctx, "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.disable_push(
"fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
)
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->disablePush([
'account_id' => 'fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0',
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.disable_push(
account_id: "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0"
)
import com.inttegro.Client;
import com.inttegro.financialaccounts.FinancialAccountToggleParams;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = FinancialAccountToggleParams.builder()
.accountId("fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0")
.build();
var result = client.financialAccounts().disablePush(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.DisablePushAsync(new Inttegro.FinancialAccountToggleRequest {
AccountId = "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
});
Response
- Object
- JSON
AccountResponse {
account: { … },
}
{
"account": {
"id": "fa_Q90wZdd2P7W8hJ1cN9Mx4Rk5sVWBvY3L6pTz8q0",
"created_at": "2025-03-18T10:22:11.745Z",
"currency": "ghs",
"custom_data": {},
"description": "Settlement account for marketplace operations.",
"label": "Fidelity Bank - Settlement",
"owner": { … },
"reference": "MARKETHUB-FIDELITY-SETTLEMENT",
"type": "bank_account",
"bank_account": { … }
}
}
Page through financial accounts
Retrieve one numbered page of your financial accounts. The API does not promise creation-time ordering, so use account fields rather than list position when reconciling or selecting a destination.
Validation failures return 400; missing or invalid authentication returns 401; unexpected page-read failures return 500.
Request attributes
Response shape
- Top-level
pageobject containsnumber,size, and anaccountsarray - Each account uses the complete readable account shape; optional metadata and lifecycle fields are omitted when they have no stored value
- Type-specific details are nested under
walletorbank_accountwhen available; current Dosh resources omit adosh_accountresponse object - Push/pull configurations are included when enabled:
push_configurationandpull_configuration - The endpoint has no server-side lifecycle filter; inspect
archived_atanddisconnected_atwhen present
Request
- cURL
- TypeScript
- Go
- Python
- PHP
- Ruby
- Java
- C#
curl https://api.inttegro.com/financial_accounts/page \
-H "Authorization: Bearer $INTTEGRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"page_number": 1,
"page_size": 50
}'
import * as Inttegro from '@inttegro/inttegro-sdk'
const inttegro = new Inttegro.InttegroClient({
apiKey: process.env.INTTEGRO_API_KEY!,
})
const result = await inttegro.financialAccounts.page({
pageNumber: 1,
pageSize: 50,
})
package main
import (
"context"
"log"
"os"
inttegro "github.com/zebodotdev/inttegro-sdk-go/v4"
)
func main() {
ctx := context.Background()
client := inttegro.NewClient(os.Getenv("INTTEGRO_API_KEY"))
params := inttegro.PageFinancialAccountsParams{
PageNumber: 1,
PageSize: 50,
}
result, err := client.FinancialAccounts.Page(ctx, params)
if err != nil {
log.Fatal(err)
}
_ = result
}
import os
import inttegro
client = inttegro.InttegroClient(api_key=os.environ["INTTEGRO_API_KEY"])
result = client.financial_accounts.page(inttegro.financial_accounts.PageRequest(
page_number=1,
page_size=50,
))
<?php
use Inttegro\Client;
$client = new Client($_ENV['INTTEGRO_API_KEY']);
$result = $client->financialAccounts->page([
'page_number' => 1,
'page_size' => 50,
]);
require "inttegro"
client = Inttegro::Client.new(api_key: ENV.fetch("INTTEGRO_API_KEY"))
result = client.financial_accounts.page(
page_number: 1,
page_size: 50
)
import com.inttegro.Client;
import com.inttegro.financialaccounts.PageFinancialAccountsParams;
public class Example {
public static void main(String[] args) throws Exception {
var client = new Client(System.getenv("INTTEGRO_API_KEY"));
var params = PageFinancialAccountsParams.builder()
.pageNumber(1)
.pageSize(50)
.build();
var result = client.financialAccounts().page(params);
}
}
using Inttegro;
using var inttegro = new InttegroClient(
Environment.GetEnvironmentVariable("INTTEGRO_API_KEY")!
);
var result = await inttegro.FinancialAccounts.PageAsync(new {
page_number = 1,
page_size = 50,
});
Related resources
- Set payout destinations - Map each payout currency to a connected, push-enabled financial account.
- Schedule a payout - Send available balance funds to an eligible destination.