SpareSpare Docs
GuidesAPI Reference

Bank Account Setup

Register creditor bank accounts and set a default for settlements.

Integration guide

Goal: Register the bank account that receives settled payments and mark it as default.

Estimated time: 10 minutes

Prerequisites

  • Valid IBAN for your operating region
  • Sandbox credentials

List existing accounts (optional)

curl https://api.sandbox.tryspare.ae/payment/bank-account \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "x-tenant: UAE"
const existing = await client.bankAccounts.list();
existing = client.bank_accounts.list()
var existing = client.bankAccounts().list(ListBankAccounts.builder().build());
var existing = await client.BankAccounts.ListAsync(new ListBankAccounts());
existing, err := client.BankAccounts.List(ctx, &spareapi.ListBankAccounts{})
if err != nil {
    log.Fatal(err)
}

Register a new account

curl -X POST https://api.sandbox.tryspare.ae/payment/bank-account \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "x-tenant: UAE" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Settlement Account",
    "type": "Business",
    "accountDetails": {
      "scheme": "IBAN",
      "identificationNumber": "AE070331234567890123456"
    },
    "accountHolderDetails": {
      "name": "Acme Trading LLC"
    },
    "bankDetails": {
      "name": "Example Bank"
    }
  }'
const account = await client.bankAccounts.create({
  iban: "AE070331234567890123456",
  accountHolderName: "Acme Trading LLC",
  bankName: "Example Bank",
});
account = client.bank_accounts.create(
    iban="AE070331234567890123456",
    account_holder_name="Acme Trading LLC",
    bank_name="Example Bank",
)
var account = client.bankAccounts().create(CreateBankAccount.builder()
    .iban("AE070331234567890123456")
    .accountHolderName("Acme Trading LLC")
    .bankName("Example Bank")
    .build());
var account = await client.BankAccounts.CreateAsync(new CreateBankAccount
{
    Iban              = "AE070331234567890123456",
    AccountHolderName = "Acme Trading LLC",
    BankName          = "Example Bank",
});
account, err := client.BankAccounts.Create(ctx, &spareapi.CreateBankAccount{
    Iban:              "AE070331234567890123456",
    AccountHolderName: "Acme Trading LLC",
    BankName:          "Example Bank",
})
if err != nil {
    log.Fatal(err)
}

Set as default

curl -X PUT "https://api.sandbox.tryspare.ae/payment/bank-account/default?id=BANK_ACCOUNT_ID&isDefault=true" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "x-tenant: UAE"
await client.bankAccounts.setDefault({
  bankAccountId: account.data.id,
});
client.bank_accounts.set_default(bank_account_id=account.data.id)
client.bankAccounts().setDefault(SetDefaultBankAccount.builder()
    .bankAccountId(account.getData().getId())
    .build());
await client.BankAccounts.SetDefaultAsync(new SetDefaultBankAccount
{
    BankAccountId = account.Data.Id,
});
_, err = client.BankAccounts.SetDefault(ctx, &spareapi.SetDefaultBankAccount{
    BankAccountId: account.Data.Id,
})
if err != nil {
    log.Fatal(err)
}

Verify default

curl https://api.sandbox.tryspare.ae/payment/bank-account/default \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "x-tenant: UAE"
const defaultAccount = await client.bankAccounts.getDefault();
default_account = client.bank_accounts.get_default()
var defaultAccount = client.bankAccounts().getDefault(GetDefaultBankAccount.builder().build());
var defaultAccount = await client.BankAccounts.GetDefaultAsync(new GetDefaultBankAccount());
defaultAccount, err := client.BankAccounts.GetDefault(ctx, &spareapi.GetDefaultBankAccount{})
if err != nil {
    log.Fatal(err)
}

Key takeaways

  • Register creditor accounts before creating payment requests that settle to your business.
  • Only one account should be default, update with setDefault when your banking details change.

On this page