CONNECT APP
Build with Ramp (Sandbox Version)
Business Management
- OAuth
MCP
Give your agent Ramp (Sandbox Version) tools
Every Ramp (Sandbox Version) action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Ramp (Sandbox Version) account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "ramp_sandbox",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Department:
const result = await mcp.callTool({
name: "ramp_sandbox-create-department",
arguments: {
name: "Name",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "ramp_sandbox",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Department:
result = await session.call_tool("ramp_sandbox-create-department", {
"name": "Name",
})API PROXY
Call the Ramp (Sandbox Version) API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Ramp (Sandbox Version) API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://demo-api.ramp.com/developer/v1/business",
})
// Any allowed Ramp (Sandbox Version) endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://demo-api.ramp.com/developer/v1/business
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9kZW1vLWFwaS5yYW1wLmNvbS9kZXZlbG9wZXIvdjEvYnVzaW5lc3M?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Ramp (Sandbox Version) actions from your backend
Connect a user's Ramp (Sandbox Version) account once, then run Create Department on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "ramp_sandbox-create-department",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
ramp_sandbox: { authProvisionId: "apn_xxxxxxx" },
name: "Name",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="ramp_sandbox-create-department",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"ramp_sandbox": {"authProvisionId": "apn_xxxxxxx"},
"name": "Name",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "ramp_sandbox-create-department",
"configured_props": {
"ramp_sandbox": { "authProvisionId": "apn_xxxxxxx" },
"name": "Name"
}
}'TOOLS
Ramp (Sandbox Version) actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Department
actionCreate a new Ramp Sandbox department (e.g.Engineering,Marketing). Use this to add an organizational unit before assigning users to it. Returns the new department'sid, which you can pass to Update User to set a user's department, or use to filter List Transactions / List Users. See the documentationWritev0.0.2 -
Create Location
actionCreate a new Ramp Sandbox location (e.g.New York HQ). Use this to add a site before assigning users to it; the returnedidcan be passed to Update User or used to filter List Transactions / List Users. Associating an entity is optional — set the Entity ID only for multi-entity businesses that scope locations to a specific legal entity. See the documentationWritev0.0.2 -
Create User Invite
actionInvite a new person to your Ramp Sandbox organization by email — use this to onboard an employee who doesn't yet have a Ramp Sandbox account. Requires their email, first and last name, androle(e.g.BUSINESS_USER); department, location, and direct manager are optional. Run List Departments and List Locations to find valid department/location IDs, and List Users to find a direct manager's user ID — each is a Ramp UUID, e.g.fffe6c22-698f-4dc5-b2b1-b35f86947d90. This is a deferred operation, so the invited user may not appear in List Users immediately; once they do, use Update User to change their role, department, location, or manager. See the documentationWritev0.0.5 -
Get Limit
actionRetrieve a single Ramp Sandbox spend limit by ID. Run the List Limits action first to find a valid limit ID. Example: given a limit id from List Limits, returns the limit's display name, state (e.g.ACTIVE), balance, spend program, and spending restrictions. See the documentationRead-onlyv0.0.2 -
Get Transaction
actionRetrieve a single Ramp Sandbox transaction by ID. Run the List Transactions action first to find a valid transaction ID. Example: given a transaction id from List Transactions, returns the full transaction — e.g. merchantFacebook Ads, amount$135.00, categoryAdvertising, plus line items and accounting detail. See the documentationRead-onlyv0.0.2 -
Get User
actionRetrieve a single Ramp Sandbox user by ID. Run the List Users action first to find a valid user ID. Example: given a user id from List Users, returns that user's full record — name, email, role (e.g.BUSINESS_OWNER), department id, and location id. See the documentationRead-onlyv0.0.2 -
Issue Virtual Card
actionIssue a new Ramp Sandbox virtual card (spend limit) for a user. Requires a Virtual Card Name and the user's ID (run List Users to find it). Works two ways: (1) link to an existing spend program — set Link to Existing Spend Program on and pass a Spend Program ID (run List Spend Programs), and the program governs the card's restrictions; or (2) set a custom limit — leave linking off and pass a Total Limit per Interval (e.g.$500) and an Interval (e.g.MONTHLY), optionally a per-transaction cap, allowed/blocked categories, and whether the physical card (Primary Card Enabled) and Reimbursements Enabled apply. Example: issue a $500/month card by passing a Virtual Card Name (e.g.Marketing SaaS), the user's ID,$500, andMONTHLY. See the documentationWritev0.1.1 -
List Departments
actionRetrieve a list of Ramp Sandbox departments. Use this to find department IDs for other actions such as Update User and List Transactions. Example: returns{ id, name }pairs such as{ "id": "fffe6c22-698f-4dc5-b2b1-b35f86947d90", "name": "Engineering" }— pass theidto Update User to set a user's department. Returns one page of up topageSizeresults (max 100); apage.nextvalue in the response means more departments exist beyond this page. See the documentationRead-onlyv0.0.2 -
List Limits
actionRetrieve a paginated list of Ramp Sandbox spend limits. Returns a compact summary of each limit by default (id, display_name, state, balance, spend_program_id, created_at, is_shareable); use Get Limit for the full record, or passfieldsto include specific extra fields. Use this to find limit IDs for Get Limit, Update Limit, and Terminate Limit. Returns one page of up topageSizeresults (max 100); apage.nextvalue in the response means more limits exist beyond this page. See the documentationRead-onlyv0.0.2 -
List Locations
actionRetrieve a list of Ramp Sandbox locations. Use this to find location IDs for other actions such as Update User and List Transactions. Example: returns objects like{ "id": "961c6f01-5719-4f4c-8fef-4096a031f32a", "name": "New York HQ", "entity_id": "c0e5f8a2-9b1d-4e3a-8f6c-2d7b4a1e9f30" }— pass theidas the location ID in downstream actions. Returns one page of up topageSizeresults (max 100); apage.nextvalue in the response means more locations exist beyond this page. See the documentationRead-onlyv0.0.2 -
List Spend Programs
actionRetrieve a list of Ramp Sandbox spend programs. Returns a compact summary of each program by default (id, display_name, description, icon, is_shareable, issue_physical_card_if_needed); passfieldsto include specific extra fields such asrestrictions. Returns one page of up topageSizeresults (max 100); apage.nextvalue in the response means more programs exist beyond this page. See the documentationRead-onlyv0.0.2 -
List Transactions
actionRetrieve a paginated list of Ramp Sandbox transactions, optionally filtered by department, location, or state. Returns a compact summary of each transaction by default (id, merchant_name, amount, merchant_amount, sk_category_name, state, card_id, limit_id, accounting_date, user_transaction_time, memo); use Get Transaction for the full record, or passfieldsto include specific extra fields. Use this to find transaction IDs for Get Transaction. Returns one page of up topageSizeresults (max 100); apage.nextvalue in the response means more transactions exist beyond this page. See the documentationRead-onlyv0.0.2 -
List Transfers
actionRetrieve a list of Ramp Sandbox transfers, optionally filtered by status. Example: pass StatusACH_CONFIRMEDto return only confirmed transfers, each with amount and status. Returns one page of up topageSizeresults (max 100); apage.nextvalue in the response means more transfers exist beyond this page. See the documentationRead-onlyv0.0.2 -
List Users
actionRetrieve a paginated list of Ramp Sandbox users, optionally filtered by department, location, email, role, or status. Returns a compact summary of each user by default (id, first_name, last_name, email, role, status, department_id, location_id, manager_id, is_manager); use Get User for the full record, or passfieldsto include specific extra fields. Use this to discover valid user IDs for Get User and Update User. Returns one page of up topageSizeresults (max 100); apage.nextvalue in the response means more users exist beyond this page. See the documentationRead-onlyv0.0.2 -
Terminate Limit
actionPermanently terminate a Ramp Sandbox spend limit by ID. This is irreversible and takes effect immediately. Run the List Limits action to find the limit ID. Example: given a limit id from List Limits, terminates that limit and returns its final (terminated) state. See the documentationWritev0.0.2 -
Update Limit
actionUpdate an existing Ramp Sandbox spend limit — rename it and/or set its spending restriction. Run the List Limits action to find the limit ID. This is a partial update: fields you omit are left unchanged. Pass Display Name alone to simply rename a limit. To set a spending cap you must provide both an Amount (in the currency's smallest denomination — e.g.50000= $500.00 in USD, or500= ¥500 in JPY) and an Interval (e.g.MONTHLY); currency defaults to USD. See the documentationWritev0.0.2 -
Update User
actionUpdate fields on an existing Ramp Sandbox user (role, department, location, direct manager). Run the List Users action to find the user ID, List Departments and List Locations for related IDs. Example: to move a user into a department, pass their User ID plus a Department ID from List Departments; you can also setrole(e.g.BUSINESS_USER), location, or direct manager. See the documentationWritev0.0.2 -
Upload Receipt
actionUploads a receipt for a given transaction and user. See the documentationWritev0.0.6
EVENTS
Ramp (Sandbox Version) triggers
Event sources your backend can deploy for users and receive through a webhook.
MULTI-APP
Use Ramp (Sandbox Version) with other popular apps
Most products don't stop at one integration. Pair Ramp (Sandbox Version) with the other apps your users rely on, and ship use cases that span both.
REFERENCE
App details
Reference metadata for the Ramp (Sandbox Version) connector in the Pipedream registry.
- App slug
- ramp_sandbox
- Authentication
- OAuth
- Categories
- Business Management
- Actions
- 18
- Triggers
- 3
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Ramp (Sandbox Version) OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- transactions:read
- cards:read
- cards:write
- spend_programs:read
- spend_programs:write
- users:read
- users:write
- locations:read
- locations:write
- limits:read
- limits:write
- departments:read
- departments:write
- business:read
- receipts:read
- transfers:read
- vendors:read
- merchants:read
- accounting:read
- accounting:write
- receipts:write
- reimbursements:read
- funds:read
- funds:write