Skip to main content

Arc API (1.0.0)

Download OpenAPI specification:Download

Read-only REST access to your Arc financial data. Every request authenticates with an Arc API key (arc_sk_…) as a bearer token.

Identity

The identity behind the key: company, key metadata, and owner.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "company": {
    },
  • "key": {
    },
  • "owner": {
    }
}

The company organization profile.

Authorizations:
ApiKey
query Parameters
investmentPreferences
string

Set to "true" to include the company’s investment preferences.

Responses

Response samples

Content type
application/json
{
  • "legalName": "string",
  • "doingBusinessAs": "string",
  • "federalEinLast4": "string",
  • "phoneNumber": {
    },
  • "companyLegalAddress": "string",
  • "investmentPreferences": {
    }
}

The key owner’s personal profile.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "legalName": "string",
  • "email": "string",
  • "phone": {
    },
  • "address": "string",
  • "dateOfBirth": "string",
  • "jobTitle": "string",
  • "ownershipPercentage": 0,
  • "citizenship": "string",
  • "identificationCollected": true
}

List company members.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

role
string
Enum: "admin" "member" "manager" "bookkeeper" "card_only" "lender"

Filter by member role.

status
string
Enum: "active" "pending"

active members or pending invitations.

email
string

Case-insensitive exact match on the member email.

name
string

Case-insensitive substring match on the member name.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

Accounts

List cash-management accounts and their balances. Filter server-side rather than paging and filtering client-side.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

type
string
Enum: "treasury" "operating"

Only accounts of this type.

status
string
Enum: "ACTIVE" "ACCOUNT_RESTRICTED" "PENDING_APPROVAL" "ACCOUNT_CLOSED"

Only accounts reporting this status.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

List Arc-issued cards.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

scope
string
Enum: "own" "team"

own (default) shows your cards; team shows the company’s.

status
string
Enum: "active" "inactive" "canceled"

Filter by card status.

format
string
Enum: "physical" "virtual"

Filter by card form factor.

cardholder
string

Case-insensitive substring match on the cardholder name.

last4
string^\d{4}$

Exactly this masked last-4 (four digits) — the only per-card handle, since cards carry no public id.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

List linked external bank accounts.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

type
string
Enum: "checking" "savings"

Only accounts of this type.

status
string
Enum: "active" "inactive"

Only connections reporting this status.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

List cash-management transactions, newest first. Filter server-side rather than paging and filtering client-side.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

from
string

Inclusive lower bound, YYYY-MM-DD.

to
string

Inclusive upper bound, YYYY-MM-DD.

excludeInternalTransfers
string
Enum: "true" "false"

Set to "true" to omit transfers between company-owned accounts.

account
string

Only this account: its id from GET /v1/accounts, or the accountArn a row carries.

direction
string
Enum: "debit" "credit"

debit is money out, credit is money in.

status
string
Enum: "OPEN" "POSTED" "VOID" "RETURNED"

Only rows reporting this status.

method
string
Enum: "ach" "ach-credit" "ach-debit" "ach-transfer" "card" "check-deposit" "internal-transfer" "international-wire-transfer" "rewards-redemption" "wire" "wire-credit" "wire-debit" "wire-transfer"

Payment method; ach and wire match every variant of each.

minAmount
string

Lower bound on |amount|, in integer minor units (100000 = $1,000.00).

maxAmount
string

Upper bound on |amount|, in integer minor units.

search
string

Case-insensitive substring match across the transaction: the counterparty or merchant name, the description and notes, and bank/account identifiers are all matched, so this is broader than a name filter.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

A single transaction’s detail.

Authorizations:
ApiKey
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "accountArn": "string",
  • "name": "string",
  • "amount": {
    },
  • "direction": "debit",
  • "status": "string",
  • "isInternalTransfer": true,
  • "initiatedDate": "string",
  • "clearedDate": "string",
  • "method": "string",
  • "category": "string",
  • "description": "string",
  • "createdBy": "string",
  • "note": "string",
  • "bankDetails": {
    }
}

Payments

List outgoing payments. Filter server-side rather than paging and filtering client-side.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

from
string

Inclusive lower bound, YYYY-MM-DD.

to
string

Inclusive upper bound, YYYY-MM-DD.

status
string
Enum: "all" "paid" "scheduled" "draft" "pending-approval" "canceled"

Filter by lifecycle state; defaults to all states.

counterparty
string

Case-insensitive substring match on the payee name. A canceled or declined payment with no saved contact reports the destination institution name instead, and is not matched by this filter.

method
string
Enum: "ach" "international-wire" "international-wire-fee" "intra-transfer" "wire"

Payment method; wire matches domestic and international wires.

minAmount
string

Lower bound on the amount, in integer minor units (100000 = $1,000.00).

maxAmount
string

Upper bound on the amount, in integer minor units.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

A single payment’s detail, in any lifecycle state.

Authorizations:
ApiKey
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "paid",
  • "counterparty": "string",
  • "amount": {
    },
  • "method": "ACH",
  • "frequency": "string",
  • "invoiceNumber": "string",
  • "invoiceDate": "string",
  • "dueDate": "string",
  • "scheduledDate": "string",
  • "sentDate": "string",
  • "createdAt": "string",
  • "createdBy": "string",
  • "memo": "string",
  • "sourceAccount": {
    },
  • "destinationAccount": {
    },
  • "fee": {
    },
  • "recipientAmount": {
    },
  • "upcomingDates": [
    ],
  • "reviewedBy": "string"
}

Statements

List available monthly account statements. Filter server-side rather than paging and filtering client-side.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

account
string

Only this account: its id from GET /v1/accounts.

month
string

Only this statement month, YYYY-MM.

year
string

Only this statement year, YYYY.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

A short-lived signed URL for a statement PDF.

Authorizations:
ApiKey
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "url": "string",
  • "expiresAt": "string"
}

Invoices

List invoices you’ve sent (money in). Filter server-side rather than paging and filtering client-side.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

from
string

Inclusive lower bound, YYYY-MM-DD.

to
string

Inclusive upper bound, YYYY-MM-DD.

recipient
string

Case-insensitive substring match on the recipient name.

dueFrom
string

Inclusive lower bound on the due date, YYYY-MM-DD.

dueTo
string

Inclusive upper bound on the due date, YYYY-MM-DD.

overdue
boolean

Set to true to keep only invoices due strictly before today (UTC). Invoices carry no payment status, so this is a due-date test only.

number
string

Case-insensitive exact match on the invoice number.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

A single invoice’s detail: the list row plus its line items.

Authorizations:
ApiKey
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "title": "string",
  • "recipient": {
    },
  • "dateIssued": "string",
  • "dueDate": "string",
  • "subtotal": {
    },
  • "taxTotal": {
    },
  • "total": {
    },
  • "additionalInfo": "string",
  • "lineItems": [
    ]
}

List the customers you bill.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

Treasury

The treasury (invested) account overview.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "accountId": "string",
  • "asOf": "string",
  • "totalValue": {
    },
  • "cashAvailableToTrade": {
    },
  • "totalInterest": {
    },
  • "totalDividend": {
    },
  • "netYieldBps": 0
}

List treasury holdings.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}

Current money-market fund rates and the cash-sweep rate.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "funds": [
    ],
  • "highestYieldBps": 0,
  • "highestNetYieldBps": 0,
  • "cashSweep": {
    }
}

Accounting

List accounting integrations and their sync status.

Authorizations:
ApiKey
query Parameters
limit
string

Page size, 1–100 (default 25).

cursor
string

Opaque cursor from a prior response nextCursor.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "nextCursor": "string"
}