Flowcard Logo/Docs
API Reference
v1.0

Authentication

The Flowcard API uses API keys to authenticate requests. You can view and manage your API keys in the Dashboard.

Authenticate

GET
/v1/auth

Verify your API key and retrieve current session details.

Parameters

Authorizationheader
Bearer <your_api_key>Required
Response200 OK
{
  "authenticated": true,
  "org_id": "org_123456789",
  "scopes": [
    "cards.read",
    "cards.write",
    "wallets.read",
    "wallets.write",
    "transfers.write"
  ]
}

Team & Users

Manage your organization's team members, roles, and access permissions.

List Users

GET
/v1/users

Retrieve a paginated list of all users in your organization.

Parameters

rolequery
Filter by role (admin, member, viewer)
Response200 OK
{
  "data": [
    {
      "id": "usr_123",
      "email": "alex@company.com",
      "role": "admin",
      "status": "active"
    },
    {
      "id": "usr_456",
      "email": "sarah@company.com",
      "role": "member",
      "status": "invited"
    }
  ]
}

Invite User

POST
/v1/users/invite

Invite a new member to your organization via email.

Request BodyJSON
{
  "email": "new.hire@company.com",
  "role": "member",
  "first_name": "John",
  "last_name": "Doe"
}
Response200 OK
{
  "id": "inv_998",
  "email": "new.hire@company.com",
  "status": "pending",
  "expires_at": 1711200000
}

Get User

GET
/v1/users/{id}

Get detailed information about a specific user.

Parameters

idpath
User IDRequired
Response200 OK
{
  "id": "usr_123",
  "email": "alex@company.com",
  "role": "admin",
  "two_factor_enabled": true,
  "last_login": 1710900000
}

Update User

PATCH
/v1/users/{id}

Update a user's role or profile details.

Parameters

idpath
User IDRequired
Request BodyJSON
{
  "role": "admin"
}
Response200 OK
{
  "id": "usr_123",
  "role": "admin",
  "updated_at": 1710950000
}

Suspend User

POST
/v1/users/{id}/suspend

Immediately revoke a user's access to the dashboard and API.

Parameters

idpath
User IDRequired
Response200 OK
{
  "id": "usr_123",
  "status": "suspended"
}

Wallets

Create and manage digital wallets for teams or projects.

Create Wallet

POST
/v1/wallets

Create a new wallet with a specific currency and budget limits.

Request BodyJSON
{
  "name": "Marketing Q4",
  "currency": "EUR",
  "daily_limit": 1000000
}
Response200 OK
{
  "id": "wlt_882",
  "name": "Marketing Q4",
  "balance": 0,
  "status": "active"
}

Get Wallet

GET
/v1/wallets/{id}

Retrieve details of a specific wallet.

Parameters

idpath
Wallet IDRequired
Response200 OK
{
  "id": "wlt_882",
  "balance": 450000,
  "currency": "EUR"
}

Update Wallet

PATCH
/v1/wallets/{id}

Update wallet details.

Parameters

idpath
Wallet IDRequired
Request BodyJSON
{
  "name": "Marketing Q4 - Revised"
}
Response200 OK
{
  "id": "wlt_882",
  "name": "Marketing Q4 - Revised"
}

Freeze Wallet

POST
/v1/wallets/{id}/freeze

Temporarily freeze a wallet.

Parameters

idpath
Wallet IDRequired
Response200 OK
{
  "id": "wlt_882",
  "status": "frozen"
}

Close Wallet

DELETE
/v1/wallets/{id}

Permanently close a wallet.

Parameters

idpath
Wallet IDRequired
Response200 OK
{
  "id": "wlt_882",
  "status": "closed"
}

Virtual Cards

Manage the lifecycle of virtual cards.

Issue Card

POST
/v1/cards

Create a new virtual card.

Request BodyJSON
{
  "holder_id": "usr_789",
  "type": "reloadable",
  "limit": 500000
}
Response200 OK
{
  "id": "crd_abc",
  "last4": "4242",
  "status": "active"
}

Get Card

GET
/v1/cards/{id}

Retrieve card details.

Parameters

idpath
Card IDRequired
Response200 OK
{
  "id": "crd_abc",
  "status": "active",
  "balance": 0
}

Update Card

PATCH
/v1/cards/{id}

Update card details.

Parameters

idpath
Card IDRequired
Request BodyJSON
{
  "label": "SaaS Tools"
}
Response200 OK
{
  "id": "crd_abc",
  "label": "SaaS Tools"
}

Update Limits

PATCH
/v1/cards/{id}/limits

Modify spending limits.

Request BodyJSON
{
  "monthly_limit": 500000
}
Response200 OK
{
  "success": true
}

Freeze Card

POST
/v1/cards/{id}/freeze

Freeze a card.

Parameters

idpath
Card IDRequired
Response200 OK
{
  "id": "crd_abc",
  "status": "frozen"
}

Terminate Card

DELETE
/v1/cards/{id}

Permanently terminate a card.

Parameters

idpath
Card IDRequired
Response200 OK
{
  "id": "crd_abc",
  "status": "terminated"
}

Transactions

Transaction history and details.

List Transactions

GET
/v1/transactions

List recent transactions.

Response200 OK
{
  "data": [
    {
      "id": "txn_1",
      "amount": -2900,
      "merchant": "AWS"
    }
  ]
}

Get Transaction

GET
/v1/transactions/{id}

Get transaction details.

Parameters

idpath
Txn IDRequired
Response200 OK
{
  "id": "txn_1",
  "amount": -2900,
  "status": "cleared"
}

Attach Receipt

POST
/v1/transactions/{id}/receipts

Attach a receipt file to a transaction.

Parameters

idpath
Txn IDRequired
Request BodyJSON
{
  "file_id": "file_999"
}
Response200 OK
{
  "success": true
}

Transfers

Internal and external fund transfers.

Internal Transfer

POST
/v1/transfers/internal

Move funds between wallets.

Request BodyJSON
{
  "source": "wlt_A",
  "dest": "wlt_B",
  "amount": 100
}
Response200 OK
{
  "id": "trf_1",
  "status": "completed"
}

External Transfer

POST
/v1/transfers/external

Wire transfer to external IBAN.

Request BodyJSON
{
  "amount": 1000,
  "beneficiary": "ben_1"
}
Response200 OK
{
  "id": "trf_2",
  "status": "pending"
}

Get Transfer

GET
/v1/transfers/{id}

Get transfer status.

Parameters

idpath
Transfer IDRequired
Response200 OK
{
  "id": "trf_2",
  "status": "processed"
}

List Transfers

GET
/v1/transfers

History of transfers.

Response200 OK
{
  "data": []
}

Simulate Deposit

POST
/v1/transfers/simulate-deposit

Sandbox test deposit.

Request BodyJSON
{
  "amount": 5000
}
Response200 OK
{
  "new_balance": 5000
}

Beneficiaries

Manage external payees.

Create Beneficiary

POST
/v1/beneficiaries

Save payee details.

Request BodyJSON
{
  "name": "Vendor Inc",
  "iban": "DE123..."
}
Response200 OK
{
  "id": "ben_1",
  "status": "active"
}

List Beneficiaries

GET
/v1/beneficiaries

List all beneficiaries.

Response200 OK
{
  "data": []
}

Get IBANs

GET
/v1/ibans

Get wallet IBANs.

Response200 OK
{
  "data": []
}

Issue IBAN

POST
/v1/ibans

Create new virtual IBAN.

Request BodyJSON
{
  "wallet_id": "wlt_1",
  "country": "GB"
}
Response200 OK
{
  "iban": "GB89..."
}

Delete Beneficiary

DELETE
/v1/beneficiaries/{id}

Remove a beneficiary.

Parameters

idpath
IDRequired
Response200 OK
{
  "status": "deleted"
}

Webhooks

Subscribe to real-time events.

Create Webhook

POST
/v1/webhooks

Register a new webhook endpoint.

Request BodyJSON
{
  "url": "https://api.yoursite.com/hook",
  "events": [
    "transaction.created"
  ]
}
Response200 OK
{
  "id": "wh_123",
  "secret": "whsec_..."
}

List Webhooks

GET
/v1/webhooks

List active webhooks.

Response200 OK
{
  "data": []
}

Get Webhook

GET
/v1/webhooks/{id}

Get webhook details.

Parameters

idpath
Webhook IDRequired
Response200 OK
{
  "id": "wh_123",
  "url": "..."
}

Update Webhook

PATCH
/v1/webhooks/{id}

Modify webhook events or URL.

Parameters

idpath
Webhook IDRequired
Request BodyJSON
{
  "events": [
    "transaction.*"
  ]
}
Response200 OK
{
  "id": "wh_123",
  "events": [
    "transaction.*"
  ]
}

Rotate Secret

POST
/v1/webhooks/{id}/rotate

Generate a new signing secret.

Parameters

idpath
Webhook IDRequired
Response200 OK
{
  "secret": "whsec_new..."
}

Delete Webhook

DELETE
/v1/webhooks/{id}

Remove a webhook.

Parameters

idpath
Webhook IDRequired
Response200 OK
{
  "status": "deleted"
}

Files

Manage receipts and KYC documents.

Upload File

POST
/v1/files

Upload a file (PDF, JPG, PNG).

Request BodyJSON
{
  "purpose": "receipt",
  "file": "(binary)"
}
Response200 OK
{
  "id": "file_999",
  "url": "..."
}

Get File

GET
/v1/files/{id}

Retrieve file metadata.

Parameters

idpath
File IDRequired
Response200 OK
{
  "id": "file_999",
  "size": 1024
}

Reporting

Analytics and statements.

Get Balance History

GET
/v1/reports/balance

Get daily balance snapshots.

Response200 OK
{
  "data": [
    {
      "date": "2024-03-01",
      "balance": 1000
    }
  ]
}

Get Spending Stats

GET
/v1/reports/spending

Spending aggregated by category.

Response200 OK
{
  "software": 500,
  "travel": 200
}

Generate Statement

POST
/v1/reports/statements

Request a PDF statement.

Request BodyJSON
{
  "month": 3,
  "year": 2024
}
Response200 OK
{
  "status": "processing",
  "id": "stmt_1"
}

Exchange Rates

GET
/v1/rates

Get current exchange rates.

Parameters

basequery
Base currencyRequired
Response200 OK
{
  "base": "EUR",
  "rates": {
    "USD": 1.09,
    "GBP": 0.85
  }
}