Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install jeremylongshore-claude-code-plugins-plus-skills-plugins-saas-packs-ramp-pack-skills-ramp-core-workflow-bgit clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills.gitcp claude-code-plugins-plus-skills/SKILL.MD ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-plugins-saas-packs-ramp-pack-skills-ramp-core-workflow-b/SKILL.md---
name: ramp-core-workflow-b
description: "Ramp core workflow b \u2014 corporate card and expense management API\
\ integration.\nUse when working with Ramp for card management, expenses, or accounting\
\ sync.\nTrigger with phrases like \"ramp core workflow b\", \"ramp-core-workflow-b\"\
, \"corporate card API\".\n"
allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep
version: 2.0.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
tags:
- saas
- ramp
- fintech
- expenses
- corporate-cards
compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
---
# Ramp Core Workflow B
## Overview
Manage transactions and expenses: list, categorize, attach receipts, and sync to accounting.
## Prerequisites
- Completed `ramp-core-workflow-a`
## Instructions
### Step 1: List Transactions with Filters
```python
resp = requests.get(f"{BASE}/transactions", headers=headers, params={
"start_date": "2026-01-01",
"end_date": "2026-03-22",
"merchant_name": "Amazon",
"page_size": 50,
})
transactions = resp.json()["data"]
total = sum(tx["amount"] for tx in transactions)
print(f"Amazon spend: ${total/100:.2f} across {len(transactions)} transactions")
```
### Step 2: Get Transaction Details
```python
tx_id = transactions[0]["id"]
detail = requests.get(f"{BASE}/transactions/{tx_id}", headers=headers)
tx = detail.json()
print(f"Amount: ${tx['amount']/100:.2f}")
print(f"Merchant: {tx['merchant_name']}")
print(f"Category: {tx['sk_category_name']}")
print(f"Card: {tx['card_holder']['first_name']} — last4: {tx['card_last_four']}")
```
### Step 3: Sync to Accounting
```python
# Fetch transactions ready for accounting sync
sync_resp = requests.get(f"{BASE}/accounting/transactions", headers=headers, params={
"sync_ready": True,
"page_size": 100,
})
for tx in sync_resp.json()["data"]:
# Map to your ERP's chart of accounts
journal_entry = {
"date": tx["user_transaction_time"],
"amount": tx["amount"],
"account": map_category_to_gl(tx["sk_category_name"]),
"vendor": tx["merchant_name"],
"external_id": tx["id"],
}
sync_to_erp(journal_entry)
# Mark as synced
requests.post(f"{BASE}/accounting/transactions/sync", headers={**headers, "Content-Type": "application/json"}, json={
"transaction_ids": [tx["id"] for tx in sync_resp.json()["data"]],
})
```
## Output
- Transactions filtered by date, merchant, category
- Detailed transaction data with card holder info
- Accounting sync with GL mapping
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| Empty results | Wrong date range | Check start_date/end_date format |
| Sync conflict | Already synced | Check sync status before re-syncing |
| Missing category | Uncategorized transaction | Use default GL account |
## Resources
- [Ramp API Documentation](https://docs.ramp.com/)
- [Accounting Guide](https://docs.ramp.com/developer-api/v1/guides/accounting)
## Next Steps
Handle events: `ramp-webhooks-events`