Supergood | Spendesk API
Programmatically access Spendesk spend management data—corporate cards, expenses, invoices, approvals, budgets, and reimbursements—with a stable REST API. Supergood builds and operates production-grade, unofficial Spendesk integrations so your team can automate finance workflows without heavy custom engineering.
Plain English: Spendesk is spend management software for finance teams to control company spending across cards, invoices, and employee reimbursements. An unofficial API lets you programmatically pull card transactions, cards and controls, expense claims with receipts, vendors and invoices, reimbursements, budgets/cost centers, and approvals—and push new records or updates back into Spendesk.
For a tech company integrating with Spendesk, this means you can ingest real-time spend and supplier data to power dashboards, automate approvals, sync invoices and reimbursements to accounting (e.g., QuickBooks, Xero), issue and manage virtual cards from your product, or enrich your platform with cost centers, budgets, and receipts. You can also trigger policy checks, freeze/unfreeze cards, route invoices to approvers, attach documents, and keep stakeholder systems (ERP, analytics, HRIS, procurement) in lockstep.
What is Spendesk?
Spendesk (https://www.spendesk.com/) is a cloud platform that centralizes company spending across corporate cards, invoices, subscriptions, and reimbursements. Finance, managers, and employees use Spendesk to request and approve spend, capture receipts, process supplier invoices, assign costs to teams or cost centers, manage budgets, and reconcile with accounting systems.
Core product areas include:
- Corporate Cards (virtual and physical), merchant controls, spend limits
- Expense Management (claims, receipts, mileage, per diem)
- Accounts Payable (invoice capture, approvals, coding, payments)
- Budgets & Cost Centers (policy enforcement, tracking)
- Subscriptions (recurring vendor payments, renewals)
- Approvals & Workflows (multi-step, role-based)
- Accounting Integrations (export to GL, tax/VAT handling)
Common data entities:
- Companies, Users, Roles/Permissions (Finance, Manager, Employee)
- Cards (physical/virtual), Card Assignments, Controls
- Card Transactions (merchant, MCC, amounts, VAT)
- Expense Claims (line items, receipts, categories, status)
- Vendors/Suppliers (contact info, terms)
- Invoices/Bills (header, lines, tax, approvals, payments)
- Reimbursements (payouts, methods, status)
- Budgets & Cost Centers (allocations, remaining, policy)
- Approvals (steps, approvers, timestamps)
The Spendesk Integration Challenge
Finance teams rely on Spendesk daily, but turning portal-based workflows into API-driven automation can be hard:
- Role-aware portals: Employees, managers, and finance each see different data, permissions, and approval states
- Inconsistent export paths: Many teams report relying on CSV exports or manual downloads, with limited webhook coverage or paid API tiers
- Card controls & policies: Merchant categories (MCC), limits, and freeze states require careful, audited changes
- Multi-currency & VAT: Accurate tax coding and exchange-rate handling complicate data normalization
- Attachments & receipts: Files, OCR results, and audit trails live across views and need stable access
- Authentication complexity: SSO/MFA and session lifecycles complicate headless automation
How Supergood Creates Spendesk APIs
Supergood reverse-engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Spendesk tenant.
- Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection
- Normalizes responses so you can integrate once and rely on consistent objects across modules
- Aligns with customer entitlements and role-based permissions to ensure compliant access
Use Cases
Spend & Finance Data Sync
- Mirror users, cards, cost centers, vendors, and transactions into your internal systems
- Keep expense claims and invoice metadata current for analytics and reporting
- Normalize currencies, VAT/tax codes, and categories across entities
Cards & Controls Automation
- Provision virtual cards from your product with policy-based limits
- Freeze/unfreeze cards based on risk signals or HR status changes
- Enforce merchant category rules and spending caps programmatically
AP & Invoice Workflows
- Ingest supplier invoices with line items, tax, and approvals
- Trigger approval steps from your workflow engine
- Push coded invoices to accounting (e.g., QuickBooks, Xero) with GL accounts and cost centers
Expenses & Reimbursements
- Create and approve expense claims with receipts from mobile or partner apps
- Reconcile card transactions to expenses and reimburse employees automatically
- Deliver payout status, audit artifacts, and policy exceptions back to your systems
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_spd_7a29c1",
"name": "Finance Ops",
"entitlements": ["cards", "expenses", "invoices", "transactions", "budgets"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Expenses
GET /expenses: List employee expense claims with filters and summary details.
Query parameters
- userId: string
- costCenterId: string
- status: draft | submitted | approved | rejected | reimbursed
- currency: ISO 4217
- spentFrom, spentTo: ISO 8601 timestamps
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"expenseId": "exp_90e412",
"userId": "u_spd_7a29c1",
"userName": "Alex Rivera",
"costCenterId": "cc_marketing",
"merchant": "Figma",
"category": "software_subscription",
"amount": 24.00,
"currency": "USD",
"spentAt": "2026-01-10",
"status": "approved",
"receipt": {
"fileName": "figma_jan_receipt.pdf",
"url": "https://files.supergood.ai/upl_08ab73",
"checksum": "sha256:6f0b..."
},
"notes": "Design tool subscription",
"createdAt": "2026-01-10T15:12:31Z",
"updatedAt": "2026-01-11T09:05:00Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Invoices
POST /invoices: Create a supplier invoice with line items, tax/VAT, and approval metadata.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/invoices \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"vendorId": "ven_451293",
"vendorName": "Acme Office Supplies",
"invoiceNumber": "INV-2026-0042",
"invoiceDate": "2026-01-20",
"dueDate": "2026-02-20",
"currency": "EUR",
"lines": [
{"description": "Printer Paper A4", "quantity": 10, "unitPrice": 3.50, "vatRate": 20.0, "glAccount": "6001", "costCenterId": "cc_operations"},
{"description": "Staples", "quantity": 5, "unitPrice": 1.20, "vatRate": 20.0, "glAccount": "6001", "costCenterId": "cc_operations"}
],
"attachments": [
{"fileName": "INV-2026-0042.pdf", "uploadToken": "upl_7fa223"}
],
"approvals": {
"required": true,
"steps": [
{"step": 1, "approverUserId": "u_mgr_12a4", "role": "manager"},
{"step": 2, "approverUserId": "u_fin_403b", "role": "finance"}
]
},
"referenceId": "erp-ap-4291"
}'
Example response
{
"invoiceId": "inv_51af80",
"status": "submitted",
"total": 41.00,
"taxTotal": 6.83,
"createdAt": "2026-01-21T11:20:44Z"
}
Cards
PATCH /cards/{cardId}: Update card limits, freeze state, and assignment.
curl --request PATCH \
--url https://api.supergood.ai/integrations/<integration_id>/cards/card_7c3d21 \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Marketing Events Card",
"assignedUserId": "u_spd_7a29c1",
"limits": {
"daily": 500.00,
"monthly": 5000.00
},
"currency": "USD",
"freeze": false,
"mccRules": {
"allowed": ["5814", "7392"],
"blocked": ["7995"]
},
"notes": "Block gambling MCC; allow restaurants and consultants"
}'
Example response
{
"cardId": "card_7c3d21",
"status": "active",
"assignedUserId": "u_spd_7a29c1",
"limits": {"daily": 500.00, "monthly": 5000.00},
"freeze": false,
"updatedAt": "2026-01-22T08:15:12Z"
}
Transactions
GET /transactions: List card transactions with merchant and VAT details.
Query parameters
- cardId: string
- userId: string
- mcc: string (ISO 18245)
- status: pending | posted | disputed
- currency: ISO 4217
- postedFrom, postedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"transactionId": "txn_2a91f0",
"cardId": "card_7c3d21",
"cardLast4": "4821",
"merchant": "STARBUCKS",
"mcc": "5814",
"amount": 9.50,
"currency": "USD",
"vatAmount": 0.00,
"country": "US",
"postedDate": "2026-01-20",
"status": "posted",
"expenseId": "exp_90e412",
"receiptLinked": true,
"updatedAt": "2026-01-20T13:45:00Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring customer entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of cards, transactions, expenses, invoices, and approvals
- Security: Encrypted transport, scoped tokens, and audit logging; respects Spendesk role-based permissions
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., invoice approvals, reimbursement payouts)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume transaction sync and invoice/expense processing
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Spendesk adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Spendesk evolves.
Frequently Asked Questions
Q: Which Spendesk modules can this integration cover?
Supergood supports workflows across commonly used modules such as Corporate Cards (card provisioning, controls, transactions), Expense Management (claims, receipts), Accounts Payable (invoices, approvals, payments), and Budgets/Cost Centers, subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How are MFA and SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling.
Q: Can you sync invoices and reimbursements to our accounting system?
Yes. We can normalize invoices, reimbursements, and card transactions to match your ERP/accounting schema (e.g., GL accounts, tax codes) and deliver updates via webhooks or polling while complying with rate and permission constraints. We commonly integrate with QuickBooks and Xero.
Q: Are receipts and attachments supported?
Yes. We support downloading receipt images/PDFs and uploading attachments via signed uploads, with checksum validation and time-limited URLs. OCR metadata is modeled explicitly in our normalized responses when available.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your Spendesk workflows?
Supergood can have your Spendesk integration live in days with no ongoing engineering maintenance.