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.
{- "company": {
- "id": "string",
- "name": "string"
}, - "key": {
- "keyId": "string",
- "name": "string",
- "secretLast4": "string",
- "lastUsedAt": "string"
}, - "owner": {
- "id": "string",
- "name": "string"
}
}| investmentPreferences | string Set to "true" to include the company’s investment preferences. |
{- "legalName": "string",
- "doingBusinessAs": "string",
- "federalEinLast4": "string",
- "phoneNumber": {
- "countryCode": "string",
- "number": "string"
}, - "companyLegalAddress": "string",
- "investmentPreferences": {
- "investmentPreference": "PROTECTION",
- "timeHorizon": "SHORT_TERM",
- "investmentAmount": {
- "minorUnits": 0,
- "currency": "string"
}, - "createdAt": "string"
}
}{- "legalName": "string",
- "email": "string",
- "phone": {
- "countryCode": "string",
- "number": "string"
}, - "address": "string",
- "dateOfBirth": "string",
- "jobTitle": "string",
- "ownershipPercentage": 0,
- "citizenship": "string",
- "identificationCollected": true
}| 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. |
string Case-insensitive exact match on the member email. | |
| name | string Case-insensitive substring match on the member name. |
{- "data": [
- {
- "id": "string",
- "name": "string",
- "email": "string",
- "role": "admin",
- "status": "active",
- "createdAt": "string"
}
], - "nextCursor": "string"
}| 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. |
{- "data": [
- {
- "id": "string",
- "name": "string",
- "type": "treasury",
- "status": "ACTIVE",
- "createdAt": "string",
- "availableBalance": {
- "minorUnits": 0,
- "currency": "string"
}, - "pendingBalance": {
- "minorUnits": 0,
- "currency": "string"
}, - "postedBalance": {
- "minorUnits": 0,
- "currency": "string"
}
}
], - "nextCursor": "string"
}| 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. |
{- "data": [
- {
- "last4": "string",
- "type": "debit",
- "format": "physical",
- "cardholder": "string",
- "status": "active",
- "limit": {
- "minorUnits": 0,
- "currency": "string"
}, - "createdAt": "string"
}
], - "nextCursor": "string"
}| 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. |
{- "data": [
- {
- "id": "string",
- "institution": "string",
- "accountMask": "string",
- "type": "checking",
- "status": "active",
- "createdAt": "string"
}
], - "nextCursor": "string"
}| 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. |
{- "data": [
- {
- "id": "string",
- "accountArn": "string",
- "amount": {
- "minorUnits": 0,
- "currency": "string"
}, - "direction": "debit",
- "description": "string",
- "status": "string",
- "isInternalTransfer": true,
- "date": "string"
}
], - "nextCursor": "string"
}{- "id": "string",
- "accountArn": "string",
- "name": "string",
- "amount": {
- "minorUnits": 0,
- "currency": "string"
}, - "direction": "debit",
- "status": "string",
- "isInternalTransfer": true,
- "initiatedDate": "string",
- "clearedDate": "string",
- "method": "string",
- "category": "string",
- "description": "string",
- "createdBy": "string",
- "note": "string",
- "bankDetails": {
- "bankName": "string",
- "routingNumber": "string",
- "accountNumber": "string"
}
}| 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. |
{- "data": [
- {
- "id": "string",
- "status": "paid",
- "counterparty": "string",
- "amount": {
- "minorUnits": 0,
- "currency": "string"
}, - "method": "ACH",
- "frequency": "string",
- "invoiceNumber": "string",
- "invoiceDate": "string",
- "dueDate": "string",
- "scheduledDate": "string",
- "sentDate": "string",
- "createdAt": "string",
- "createdBy": "string"
}
], - "nextCursor": "string"
}| id required | string |
{- "id": "string",
- "status": "paid",
- "counterparty": "string",
- "amount": {
- "minorUnits": 0,
- "currency": "string"
}, - "method": "ACH",
- "frequency": "string",
- "invoiceNumber": "string",
- "invoiceDate": "string",
- "dueDate": "string",
- "scheduledDate": "string",
- "sentDate": "string",
- "createdAt": "string",
- "createdBy": "string",
- "memo": "string",
- "sourceAccount": {
- "name": "string",
- "accountMask": "string"
}, - "destinationAccount": {
- "name": "string",
- "accountMask": "string"
}, - "fee": {
- "minorUnits": 0,
- "currency": "string"
}, - "recipientAmount": {
- "minorUnits": 0,
- "currency": "string"
}, - "upcomingDates": [
- "string"
], - "reviewedBy": "string"
}| 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. |
{- "data": [
- {
- "id": "string",
- "accountId": "string",
- "accountName": "string",
- "month": "string",
- "description": "string"
}
], - "nextCursor": "string"
}| 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. |
{- "data": [
- {
- "id": "string",
- "number": "string",
- "title": "string",
- "recipient": {
- "name": "string",
- "email": "string"
}, - "dateIssued": "string",
- "dueDate": "string",
- "subtotal": {
- "minorUnits": 0,
- "currency": "string"
}, - "taxTotal": {
- "minorUnits": 0,
- "currency": "string"
}, - "total": {
- "minorUnits": 0,
- "currency": "string"
}
}
], - "nextCursor": "string"
}| id required | string |
{- "id": "string",
- "number": "string",
- "title": "string",
- "recipient": {
- "name": "string",
- "email": "string"
}, - "dateIssued": "string",
- "dueDate": "string",
- "subtotal": {
- "minorUnits": 0,
- "currency": "string"
}, - "taxTotal": {
- "minorUnits": 0,
- "currency": "string"
}, - "total": {
- "minorUnits": 0,
- "currency": "string"
}, - "additionalInfo": "string",
- "lineItems": [
- {
- "description": "string",
- "quantity": "string",
- "unitPrice": {
- "minorUnits": 0,
- "currency": "string"
}, - "taxPercent": 0,
- "amount": {
- "minorUnits": 0,
- "currency": "string"
}
}
]
}| limit | string Page size, 1–100 (default 25). |
| cursor | string Opaque cursor from a prior response nextCursor. |
{- "data": [
- {
- "id": "string",
- "name": "string",
- "email": "string",
- "address": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string"
}, - "createdAt": "string"
}
], - "nextCursor": "string"
}{- "accountId": "string",
- "asOf": "string",
- "totalValue": {
- "minorUnits": 0,
- "currency": "string"
}, - "cashAvailableToTrade": {
- "minorUnits": 0,
- "currency": "string"
}, - "totalInterest": {
- "minorUnits": 0,
- "currency": "string"
}, - "totalDividend": {
- "minorUnits": 0,
- "currency": "string"
}, - "netYieldBps": 0
}{- "data": [
- {
- "assetClass": "cash",
- "symbol": "string",
- "cusip": "string",
- "marketValue": {
- "minorUnits": 0,
- "currency": "string"
}, - "shares": "string",
- "costBasis": {
- "minorUnits": 0,
- "currency": "string"
}, - "netYieldBps": 0,
- "grossYieldBps": 0,
- "sharePrice": "string",
- "maturityDate": "string"
}
], - "nextCursor": "string"
}{- "funds": [
- {
- "symbol": "string",
- "grossYieldBps": 0,
- "netYieldBps": 0,
- "timeframe": "seven_day",
- "sharePrice": "string",
- "asOfDate": "string"
}
], - "highestYieldBps": 0,
- "highestNetYieldBps": 0,
- "cashSweep": {
- "grossYieldBps": 0,
- "netYieldBps": 0
}
}| limit | string Page size, 1–100 (default 25). |
| cursor | string Opaque cursor from a prior response nextCursor. |
{- "data": [
- {
- "id": "string",
- "provider": "string",
- "type": "accounting",
- "status": "connected",
- "lastSyncedAt": "string",
- "addedAt": "string"
}
], - "nextCursor": "string"
}