Ramp

Finance and operations

Ready to use

Ramp data, published as Ramp publishes it. Ingest delivers this data to a data warehouse you own as 69 tables, and updates it on the schedule you choose. There is no code to write and nothing to install.

What you get

TableEach row is
accounting_connections
accounting_connections
The business's accounting connections, the systems Ramp syncs to, one row each, merged on the id and re-read whole about once a day. Needs `accounting:read`.
accounting_field_option_filter_rules
accounting_field_option_filter_rules
Rules that limit which options of one accounting field may be chosen given another field's choice, one row per rule. A rule has no id, so the table is replaced whole at each read, about once a day. Needs `accounting:read`.
accounting_field_options
accounting_field_options
The options of each accounting field, one row each, merged on Ramp's id (`ramp_id`); the field's Ramp id is in `_ingest_parent_key`. Read for every field whenever `accounting_fields` is, about once a day. Needs `accounting:read`.
accounting_fields
accounting_fields
Accounting fields (classes, departments, projects and the like, the tax code field included), one row each, merged on Ramp's id (`ramp_id`; `id` is the accounting system's own) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
accounting_gl_accounts
accounting_gl_accounts
General ledger accounts from the accounting system, one row each, merged on Ramp's id (`ramp_id`; `id` is the accounting system's own) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
accounting_inventory_item_field
accounting_inventory_item_field
The inventory item accounting field, one row, merged on Ramp's id (`ramp_id`) and re-read about once a day. Ramp answers only once an inventory item field exists. Needs `accounting:read`.
accounting_inventory_item_options
accounting_inventory_item_options
Inventory items, the inventory item field's options, one row each, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Needs `accounting:read`.
accounting_ramp_fields
accounting_ramp_fields
Accounting fields that exist only in Ramp, one row each, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
accounting_tax_code_field
accounting_tax_code_field
The tax code accounting field, one row, merged on Ramp's id (`ramp_id`) and re-read about once a day. Ramp answers only once a tax code field exists. Needs `accounting:read`.
accounting_tax_code_options
accounting_tax_code_options
Tax codes, the tax code field's options, one row each with the tax rates they apply, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Needs `accounting:read`.
accounting_tax_rates
accounting_tax_rates
Tax rates, each with its rate as a fraction and its GL account, one row each, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Needs `accounting:read`.
accounting_vendors
accounting_vendors
Vendors from the accounting system, one row each, merged on Ramp's id (`ramp_id`; `id` is the accounting system's own) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
ai_spend_api_keys
ai_spend_api_keys
AI provider API keys with their estimated spend per UTC day, terminated keys included, one row per key and day, days without spend included (Ramp answers every key for every day asked), merged on the key id and the day (`_ingest_window`). Read one day at a time over the last 365 days, recent days again each day. Needs `ai_spend:read`.
ai_spend_team
ai_spend_team
AI spend per Ramp user per UTC day, estimated in total and by provider, one row per user and day Ramp reports, merged on the user id and the day (`_ingest_window`). Read one day at a time over the last 365 days, recent days again each day as providers report late. Needs `ai_spend:read`.
archived_bills
archived_bills
Bills archived (deleted) in Ramp, one row each, merged on the bill id. Ramp returns them only in place of active bills, so `bills` never holds them, and a bill archived after it landed stays in `bills` as it last was. Re-read whole about once a day. Needs `bills:read`.
audit_log_events
audit_log_events
Ramp's audit log, who did what and when, one row per event, merged on the event id and read one UTC day at a time over the last 365 days. Ramp reads `to_date` through the end of its UTC day, so a day is asked for as 00:00:00 to 23:59:59. Needs `audit_logs:read`.
bank_accounts
bank_accounts
The bank accounts the business connected to Ramp, with the last four digits of each account number, one row each, merged on the id and re-read whole about once a day. Needs `bank_accounts:read`.
banking_account_balances
banking_account_balances
Each Ramp banking account's balance per day, one row per account and day, merged on the account (in `_ingest_parent_key`) and `date`. Read whenever `banking_accounts` is, about once a day; each read returns Ramp's recent history and days already landed stay. Needs `treasury:read`.
banking_accounts
banking_accounts
The business's Ramp banking (Treasury) accounts, one row each, merged on the id and re-read whole about once a day. Needs `treasury:read`.
banking_syncable_transactions
banking_syncable_transactions
Ramp banking (Treasury) transactions available to sync to the accounting system, one row each, merged on the id and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `treasury:read`.
bill_approvals
bill_approvals
The approval chain of each bill: its status, who approved and when, and who is next, one row per bill that has one, merged on `entity_id`. Asked once per bill whenever `bills` reads it, about once a day. Needs `approvals:read`.
bills
bills
Bills, one row each, merged on the bill id. Ramp offers no way to ask for bills changed since a time, so the whole list is re-read about once a day, which is how approvals and payments on older bills arrive.
business
business
The business itself: legal name, address, website and the limit Ramp approved, one row, re-read about once a day. Needs `business:read`.
business_balance
business_balance
The business's balances and limits on Ramp as of the last read, one row, replaced at each read about once a day. Needs `business:read`.
cashbacks
cashbacks
Cashback Ramp paid the business, one row each, merged on the id and re-read whole about once a day. Needs `cashbacks:read`.
custom_table_columns
custom_table_columns
The columns of each custom table, one row each, merged on the column id; the table's name is in `_ingest_parent_key`. Read for every table whenever `custom_tables` is, about once a day. Needs `custom_records:read`.
custom_table_rows
custom_table_rows
The rows of each custom table, one row each with its values in `cells`, merged on the row id; the table's name is in `_ingest_parent_key`. Read for every table whenever `custom_tables` is, about once a day. Needs `custom_records:read`.
custom_tables
custom_tables
The custom record tables defined in Ramp, one row each, merged on `table_name` and re-read whole about once a day. Needs `custom_records:read`.
declined_transactions
declined_transactions
Card transactions Ramp declined, one row each, merged on the transaction id, with why in `decline_details`. Ramp leaves them out of its transaction list unless asked, so `transactions` never holds them. Read one UTC day at a time over the last 365 days (adjustable), as `transactions` is. Needs `transactions:read`.
departments
departments
Departments, one row each, merged on the department id and re-read whole about once a day.
draft_bills
draft_bills
Draft bills not yet submitted, one row each, merged on the draft's id and re-read whole about once a day. Needs `bills:read`.
entities
entities
The business's legal entities, with their currency, bank accounts and locations, one row each, merged on the entity id and re-read whole about once a day. Needs `entities:read`.
funds
funds
Funds, Ramp's spend allocations, terminated ones included, one row each with their balance, members, cards and restrictions, merged on the fund id and re-read whole about once a day. Needs `funds:read`.
incorporation_countries
incorporation_countries
The countries Ramp's company formation service accepts for an applicant, one row each, merged on the country code and re-read about once a day. Needs `incorporation:read`.
incorporation_industries
incorporation_industries
The industries Ramp's company formation service accepts, each with its NAICS code, one row each. A code covers several industries and a row has no id, so the table is replaced whole at each read, about once a day. Needs `incorporation:read`.
incorporation_states
incorporation_states
The US states available for company formation through Ramp, one row each, merged on the abbreviation and re-read about once a day. Needs `incorporation:read`.
item_receipts
item_receipts
Item receipts, the goods received against purchase orders, archived ones included, one row each, merged on the id and re-read whole about once a day. Needs `item_receipts:read`.
locations
locations
Locations, one row each, merged on the location id and re-read whole about once a day. Needs `locations:read`.
matrix_table_rows
matrix_table_rows
The rows of each matrix table, with their input and result values, one row each, merged on the row id; the table's name is in `_ingest_parent_key`. Read for every table whenever `matrix_tables` is, about once a day. Needs `custom_records:read`.
matrix_tables
matrix_tables
Matrix tables, Ramp's lookup tables such as approval matrices, one row each with their input and result columns, merged on the id and re-read whole about once a day. Needs `custom_records:read`.
memos
memos
Each card transaction's memo, one row per transaction merged on its id (a memo's id is its transaction's id). Read by the transaction's UTC day over the last 365 days, as `transactions` is, so an edited memo arrives when its day is read again. Needs `memos:read`.
merchants
merchants
The card merchants on the business's transactions, one row each, merged on the merchant id and re-read whole about once a day. Needs `merchants:read`.
native_table_columns
native_table_columns
The custom columns added to each of Ramp's own tables, one row each, merged on the column id; the table's name is in `_ingest_parent_key`. Read for every table whenever `native_tables` is, about once a day. Needs `custom_records:read`.
native_table_rows
native_table_rows
The custom record values on Ramp's own objects, one row per object with its values in `cells`, merged on the row id; the table's name is in `_ingest_parent_key`. Read for every table whenever `native_tables` is, about once a day. Needs `custom_records:read`.
native_tables
native_tables
Ramp's own tables that custom records extend (users, vendors, departments and others), one row each, merged on `table_name` and re-read whole about once a day. Needs `custom_records:read`.
physical_cards
physical_cards
Physical cards, with their shipping details, one row each, merged on the card id and re-read whole about once a day. Cards not yet activated and terminated cards are included: Ramp leaves both out unless asked.
purchase_orders
purchase_orders
Purchase orders, archived ones included, one row each with their line items, merged on the id and re-read whole about once a day. Needs `purchase_orders:read`.
receipt_integration_opt_outs
receipt_integration_opt_outs
Email addresses opted out of Ramp's receipt integrations, one row each, merged on the id and re-read whole about once a day. Needs `receipt_integrations:read`.
receipts
receipts
Receipts attached to transactions and reimbursements, one row each, merged on the receipt id, with what Ramp read from the image in `ocr`. Read one UTC day of creation at a time over the last 365 days, recent days again each day. Needs `receipts:read`.
reimbursement_approvals
reimbursement_approvals
The approval chain of each reimbursement: its status, who approved and when, and who is next, one row per reimbursement that has one, merged on `entity_id`. Asked once per reimbursement whenever `reimbursements` reads it. Needs `approvals:read`.
reimbursements
reimbursements
Employee reimbursements, one row each, merged on the reimbursement id. The first sync reads the whole history; after that each run asks Ramp for the reimbursements updated since the last one, so approvals, payments and edits arrive as they happen.
repayment_reimbursements
repayment_reimbursements
Reimbursements the other way round: an employee paying the business back (Ramp's `USER_TO_BUSINESS`), one row each, merged on the id. Ramp leaves them out of its reimbursement list unless asked, so `reimbursements` never holds them. Read as `reimbursements` is: the whole history first, then what changed since. Needs `reimbursements:read`.
repayments
repayments
Repayments employees made to the business, for example for a personal charge on a Ramp card, one row each with how and when it was paid, merged on the id and re-read whole about once a day. Needs `repayments:read`.
roles
roles
The business's custom roles and what each may do in each Ramp product, one row each, merged on the role id and re-read whole about once a day. Ramp documents this list as one answer, without pages.
spend_programs
spend_programs
Spend programs, the templates funds are issued from, one row each, merged on the id and re-read whole about once a day. Needs `spend_programs:read`.
statements
statements
Ramp statements, one row per statement period with its opening and closing balances, charges, credits and payments, merged on the id and re-read whole about once a day. Needs `statements:read`.
terminated_virtual_cards
terminated_virtual_cards
Virtual cards that were terminated, one row each, merged on the card id. Ramp returns them only when asked for terminated cards, so `virtual_cards` never holds them, and a card terminated after it landed stays in `virtual_cards` as it last was. Re-read whole about once a day. Needs `cards:read`.
transaction_approvals
transaction_approvals
The approval chain of each card transaction: its status, who approved and when, and who is next, one row per transaction that has one, merged on `entity_id`. Ramp answers one transaction at a time, so this asks once per transaction whenever `transactions` reads it, which on a large account is many requests. Needs `approvals:read`.
transactions
transactions
Card transactions, one row each, merged on the transaction id and read one UTC day at a time over the last 365 days (adjustable). A day is read once it has ended in UTC, so today's transactions arrive tomorrow. Recent days are read again every day and older days less often (a day last read at 100 days old waits 5 days), so settlement, receipts and accounting changes arrive after the fact. A change to a transaction older than that history is not picked up.
transfers
transfers
Transfer payments, Ramp's wire and bank transfers for the business, bill payments included, one row each with its amount, status and bank account, merged on the id and re-read whole about once a day. Needs `transfers:read`.
trips
trips
Trips Ramp grouped from travel spend, one row each with their dates, places and total spend, merged on the trip id and re-read whole about once a day. Needs `trips:read`.
unified_requests
unified_requests
Spend and procurement requests, one row each with their status, amounts, approvals and purchase order, merged on the request id and re-read whole about once a day. A request deleted in Ramp is not returned again, so it stays as it last was. Needs `unified_requests:read`.
users
users
Ramp users (cardholders, managers and guests), one row each, merged on the user id and re-read whole about once a day.
vendor_agreements
vendor_agreements
Contracts with vendors (dates, value, renewal, owners), archived ones included, one row each, merged on the agreement id and re-read whole about once a day. Needs `vendors:read`.
vendor_bank_accounts
vendor_bank_accounts
The bank accounts Ramp pays each vendor into, one row each, merged on the account id, with the last four digits of the account number and never the whole number. Read for every vendor whenever vendors are, about once a day; the vendor's id is in `_ingest_parent_key`.
vendor_contacts
vendor_contacts
Each vendor's contacts, one row each, merged on the contact id. Read for every vendor whenever vendors are, about once a day; the vendor's id is in `_ingest_parent_key`.
vendors
vendors
Vendors, one row each, merged on the vendor id and re-read whole about once a day, so each vendor's rolling spend totals stay current.
virtual_cards
virtual_cards
Virtual cards, one row each, merged on the card id and re-read whole about once a day.
webhooks
webhooks
The business's webhook subscriptions to Ramp events (endpoint, event types, status), one row each, merged on the id and re-read whole about once a day. Needs no scope.

How it works

  1. Choose Ramp. Connect your Ramp account once, from Ingest.
  2. Pick where it goes. BigQuery, Snowflake, Databricks, Redshift and 10 more, in an account you own.
  3. Pick a schedule. Daily is the default, and weekly and monthly are there too.
  4. Ingest runs it from then on. If a run fails, your dashboard shows which table and why.

Questions

Do I need an account with Ramp?
Yes. You connect your own Ramp account once, from Ingest, and the data comes from what that account can see.
Which warehouses can Ramp data go to?
Amazon S3, Google Cloud Storage, Azure Blob Storage, Apache Iceberg, Ingest Managed Lakehouse, MotherDuck, Postgres, Amazon Athena, Databricks, Redshift, BigQuery, ClickHouse, MySQL / generic SQL and Snowflake, in an account you own.
How fresh is the data?
As fresh as your schedule: daily by default, or weekly or monthly. Schedules as often as every 15 minutes are on the Enterprise plan.
Will running it again create duplicate rows?
No. Each row is stored once, by its key: when a run reads a row that is already there, it replaces that copy instead of adding a second one.
Do I need to write code?
No. Ingest builds, runs and maintains the connector. Someone with access to your warehouse connects it once, following a short guide.
For your data team: technical reference

Connector ramp, version 0.1.0, a REST source, status beta, authentication oauth2.

Vendor documentation: https://docs.ramp.com/developer-api/v1

Configuration

No configuration required.

Resources

ResourceStatusPlanWritePrimary keyOverrides
accounting_connections
The business's accounting connections, the systems Ramp syncs to, one row each, merged on the id and re-read whole about once a day. Needs `accounting:read`.
betastalenessmergeid-
accounting_field_option_filter_rules
Rules that limit which options of one accounting field may be chosen given another field's choice, one row per rule. A rule has no id, so the table is replaced whole at each read, about once a day. Needs `accounting:read`.
betastalenessreplace--
accounting_field_options
The options of each accounting field, one row each, merged on Ramp's id (`ramp_id`); the field's Ramp id is in `_ingest_parent_key`. Read for every field whenever `accounting_fields` is, about once a day. Needs `accounting:read`.
betaparent_childmergeramp_id-
accounting_fields
Accounting fields (classes, departments, projects and the like, the tax code field included), one row each, merged on Ramp's id (`ramp_id`; `id` is the accounting system's own) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_gl_accounts
General ledger accounts from the accounting system, one row each, merged on Ramp's id (`ramp_id`; `id` is the accounting system's own) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_inventory_item_field
The inventory item accounting field, one row, merged on Ramp's id (`ramp_id`) and re-read about once a day. Ramp answers only once an inventory item field exists. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_inventory_item_options
Inventory items, the inventory item field's options, one row each, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_ramp_fields
Accounting fields that exist only in Ramp, one row each, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_tax_code_field
The tax code accounting field, one row, merged on Ramp's id (`ramp_id`) and re-read about once a day. Ramp answers only once a tax code field exists. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_tax_code_options
Tax codes, the tax code field's options, one row each with the tax rates they apply, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_tax_rates
Tax rates, each with its rate as a fraction and its GL account, one row each, merged on Ramp's id (`ramp_id`) and re-read whole about once a day. Needs `accounting:read`.
betastalenessmergeramp_id-
accounting_vendors
Vendors from the accounting system, one row each, merged on Ramp's id (`ramp_id`; `id` is the accounting system's own) and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `accounting:read`.
betastalenessmergeramp_id-
ai_spend_api_keys
AI provider API keys with their estimated spend per UTC day, terminated keys included, one row per key and day, days without spend included (Ramp answers every key for every day asked), merged on the key id and the day (`_ingest_window`). Read one day at a time over the last 365 days, recent days again each day. Needs `ai_spend:read`.
betawindowmergeid, _ingest_window-
ai_spend_team
AI spend per Ramp user per UTC day, estimated in total and by provider, one row per user and day Ramp reports, merged on the user id and the day (`_ingest_window`). Read one day at a time over the last 365 days, recent days again each day as providers report late. Needs `ai_spend:read`.
betawindowmergeid, _ingest_window-
archived_bills
Bills archived (deleted) in Ramp, one row each, merged on the bill id. Ramp returns them only in place of active bills, so `bills` never holds them, and a bill archived after it landed stays in `bills` as it last was. Re-read whole about once a day. Needs `bills:read`.
betastalenessmergeid-
audit_log_events
Ramp's audit log, who did what and when, one row per event, merged on the event id and read one UTC day at a time over the last 365 days. Ramp reads `to_date` through the end of its UTC day, so a day is asked for as 00:00:00 to 23:59:59. Needs `audit_logs:read`.
betawindowmergeid-
bank_accounts
The bank accounts the business connected to Ramp, with the last four digits of each account number, one row each, merged on the id and re-read whole about once a day. Needs `bank_accounts:read`.
betastalenessmergeid-
banking_account_balances
Each Ramp banking account's balance per day, one row per account and day, merged on the account (in `_ingest_parent_key`) and `date`. Read whenever `banking_accounts` is, about once a day; each read returns Ramp's recent history and days already landed stay. Needs `treasury:read`.
betaparent_childmerge_ingest_parent_key, date-
banking_accounts
The business's Ramp banking (Treasury) accounts, one row each, merged on the id and re-read whole about once a day. Needs `treasury:read`.
betastalenessmergeid-
banking_syncable_transactions
Ramp banking (Treasury) transactions available to sync to the accounting system, one row each, merged on the id and re-read whole about once a day. Ramp answers only once an accounting connection exists. Needs `treasury:read`.
betastalenessmergeid-
bill_approvals
The approval chain of each bill: its status, who approved and when, and who is next, one row per bill that has one, merged on `entity_id`. Asked once per bill whenever `bills` reads it, about once a day. Needs `approvals:read`.
betaparent_childmergeentity_id-
bills
Bills, one row each, merged on the bill id. Ramp offers no way to ask for bills changed since a time, so the whole list is re-read about once a day, which is how approvals and payments on older bills arrive.
betastalenessmergeid-
business
The business itself: legal name, address, website and the limit Ramp approved, one row, re-read about once a day. Needs `business:read`.
betastalenessmergeid-
business_balance
The business's balances and limits on Ramp as of the last read, one row, replaced at each read about once a day. Needs `business:read`.
betastalenessreplace--
cashbacks
Cashback Ramp paid the business, one row each, merged on the id and re-read whole about once a day. Needs `cashbacks:read`.
betastalenessmergeid-
custom_table_columns
The columns of each custom table, one row each, merged on the column id; the table's name is in `_ingest_parent_key`. Read for every table whenever `custom_tables` is, about once a day. Needs `custom_records:read`.
betaparent_childmergeid-
custom_table_rows
The rows of each custom table, one row each with its values in `cells`, merged on the row id; the table's name is in `_ingest_parent_key`. Read for every table whenever `custom_tables` is, about once a day. Needs `custom_records:read`.
betaparent_childmergeid-
custom_tables
The custom record tables defined in Ramp, one row each, merged on `table_name` and re-read whole about once a day. Needs `custom_records:read`.
betastalenessmergetable_name-
declined_transactions
Card transactions Ramp declined, one row each, merged on the transaction id, with why in `decline_details`. Ramp leaves them out of its transaction list unless asked, so `transactions` never holds them. Read one UTC day at a time over the last 365 days (adjustable), as `transactions` is. Needs `transactions:read`.
betawindowmergeid-
departments
Departments, one row each, merged on the department id and re-read whole about once a day.
betastalenessmergeid-
draft_bills
Draft bills not yet submitted, one row each, merged on the draft's id and re-read whole about once a day. Needs `bills:read`.
betastalenessmergeid-
entities
The business's legal entities, with their currency, bank accounts and locations, one row each, merged on the entity id and re-read whole about once a day. Needs `entities:read`.
betastalenessmergeid-
funds
Funds, Ramp's spend allocations, terminated ones included, one row each with their balance, members, cards and restrictions, merged on the fund id and re-read whole about once a day. Needs `funds:read`.
betastalenessmergeid-
incorporation_countries
The countries Ramp's company formation service accepts for an applicant, one row each, merged on the country code and re-read about once a day. Needs `incorporation:read`.
betastalenessmergecode-
incorporation_industries
The industries Ramp's company formation service accepts, each with its NAICS code, one row each. A code covers several industries and a row has no id, so the table is replaced whole at each read, about once a day. Needs `incorporation:read`.
betastalenessreplace--
incorporation_states
The US states available for company formation through Ramp, one row each, merged on the abbreviation and re-read about once a day. Needs `incorporation:read`.
betastalenessmergeabbreviation-
item_receipts
Item receipts, the goods received against purchase orders, archived ones included, one row each, merged on the id and re-read whole about once a day. Needs `item_receipts:read`.
betastalenessmergeid-
locations
Locations, one row each, merged on the location id and re-read whole about once a day. Needs `locations:read`.
betastalenessmergeid-
matrix_table_rows
The rows of each matrix table, with their input and result values, one row each, merged on the row id; the table's name is in `_ingest_parent_key`. Read for every table whenever `matrix_tables` is, about once a day. Needs `custom_records:read`.
betaparent_childmergeid-
matrix_tables
Matrix tables, Ramp's lookup tables such as approval matrices, one row each with their input and result columns, merged on the id and re-read whole about once a day. Needs `custom_records:read`.
betastalenessmergeid-
memos
Each card transaction's memo, one row per transaction merged on its id (a memo's id is its transaction's id). Read by the transaction's UTC day over the last 365 days, as `transactions` is, so an edited memo arrives when its day is read again. Needs `memos:read`.
betawindowmergeid-
merchants
The card merchants on the business's transactions, one row each, merged on the merchant id and re-read whole about once a day. Needs `merchants:read`.
betastalenessmergeid-
native_table_columns
The custom columns added to each of Ramp's own tables, one row each, merged on the column id; the table's name is in `_ingest_parent_key`. Read for every table whenever `native_tables` is, about once a day. Needs `custom_records:read`.
betaparent_childmergeid-
native_table_rows
The custom record values on Ramp's own objects, one row per object with its values in `cells`, merged on the row id; the table's name is in `_ingest_parent_key`. Read for every table whenever `native_tables` is, about once a day. Needs `custom_records:read`.
betaparent_childmergeid-
native_tables
Ramp's own tables that custom records extend (users, vendors, departments and others), one row each, merged on `table_name` and re-read whole about once a day. Needs `custom_records:read`.
betastalenessmergetable_name-
physical_cards
Physical cards, with their shipping details, one row each, merged on the card id and re-read whole about once a day. Cards not yet activated and terminated cards are included: Ramp leaves both out unless asked.
betastalenessmergeid-
purchase_orders
Purchase orders, archived ones included, one row each with their line items, merged on the id and re-read whole about once a day. Needs `purchase_orders:read`.
betastalenessmergeid-
receipt_integration_opt_outs
Email addresses opted out of Ramp's receipt integrations, one row each, merged on the id and re-read whole about once a day. Needs `receipt_integrations:read`.
betastalenessmergeid-
receipts
Receipts attached to transactions and reimbursements, one row each, merged on the receipt id, with what Ramp read from the image in `ocr`. Read one UTC day of creation at a time over the last 365 days, recent days again each day. Needs `receipts:read`.
betawindowmergeid-
reimbursement_approvals
The approval chain of each reimbursement: its status, who approved and when, and who is next, one row per reimbursement that has one, merged on `entity_id`. Asked once per reimbursement whenever `reimbursements` reads it. Needs `approvals:read`.
betaparent_childmergeentity_id-
reimbursements
Employee reimbursements, one row each, merged on the reimbursement id. The first sync reads the whole history; after that each run asks Ramp for the reimbursements updated since the last one, so approvals, payments and edits arrive as they happen.
betawatermarkmergeidbackfill_days
repayment_reimbursements
Reimbursements the other way round: an employee paying the business back (Ramp's `USER_TO_BUSINESS`), one row each, merged on the id. Ramp leaves them out of its reimbursement list unless asked, so `reimbursements` never holds them. Read as `reimbursements` is: the whole history first, then what changed since. Needs `reimbursements:read`.
betawatermarkmergeid-
repayments
Repayments employees made to the business, for example for a personal charge on a Ramp card, one row each with how and when it was paid, merged on the id and re-read whole about once a day. Needs `repayments:read`.
betastalenessmergeid-
roles
The business's custom roles and what each may do in each Ramp product, one row each, merged on the role id and re-read whole about once a day. Ramp documents this list as one answer, without pages.
betastalenessmergeid-
spend_programs
Spend programs, the templates funds are issued from, one row each, merged on the id and re-read whole about once a day. Needs `spend_programs:read`.
betastalenessmergeid-
statements
Ramp statements, one row per statement period with its opening and closing balances, charges, credits and payments, merged on the id and re-read whole about once a day. Needs `statements:read`.
betastalenessmergeid-
terminated_virtual_cards
Virtual cards that were terminated, one row each, merged on the card id. Ramp returns them only when asked for terminated cards, so `virtual_cards` never holds them, and a card terminated after it landed stays in `virtual_cards` as it last was. Re-read whole about once a day. Needs `cards:read`.
betastalenessmergeid-
transaction_approvals
The approval chain of each card transaction: its status, who approved and when, and who is next, one row per transaction that has one, merged on `entity_id`. Ramp answers one transaction at a time, so this asks once per transaction whenever `transactions` reads it, which on a large account is many requests. Needs `approvals:read`.
betaparent_childmergeentity_id-
transactions
Card transactions, one row each, merged on the transaction id and read one UTC day at a time over the last 365 days (adjustable). A day is read once it has ended in UTC, so today's transactions arrive tomorrow. Recent days are read again every day and older days less often (a day last read at 100 days old waits 5 days), so settlement, receipts and accounting changes arrive after the fact. A change to a transaction older than that history is not picked up.
betawindowmergeidlookback_days
transfers
Transfer payments, Ramp's wire and bank transfers for the business, bill payments included, one row each with its amount, status and bank account, merged on the id and re-read whole about once a day. Needs `transfers:read`.
betastalenessmergeid-
trips
Trips Ramp grouped from travel spend, one row each with their dates, places and total spend, merged on the trip id and re-read whole about once a day. Needs `trips:read`.
betastalenessmergeid-
unified_requests
Spend and procurement requests, one row each with their status, amounts, approvals and purchase order, merged on the request id and re-read whole about once a day. A request deleted in Ramp is not returned again, so it stays as it last was. Needs `unified_requests:read`.
betastalenessmergeid-
users
Ramp users (cardholders, managers and guests), one row each, merged on the user id and re-read whole about once a day.
betastalenessmergeid-
vendor_agreements
Contracts with vendors (dates, value, renewal, owners), archived ones included, one row each, merged on the agreement id and re-read whole about once a day. Needs `vendors:read`.
betastalenessmergeid-
vendor_bank_accounts
The bank accounts Ramp pays each vendor into, one row each, merged on the account id, with the last four digits of the account number and never the whole number. Read for every vendor whenever vendors are, about once a day; the vendor's id is in `_ingest_parent_key`.
betaparent_childmergeid-
vendor_contacts
Each vendor's contacts, one row each, merged on the contact id. Read for every vendor whenever vendors are, about once a day; the vendor's id is in `_ingest_parent_key`.
betaparent_childmergeid-
vendors
Vendors, one row each, merged on the vendor id and re-read whole about once a day, so each vendor's rolling spend totals stay current.
betastalenessmergeid-
virtual_cards
Virtual cards, one row each, merged on the card id and re-read whole about once a day.
betastalenessmergeid-
webhooks
The business's webhook subscriptions to Ramp events (endpoint, event types, status), one row each, merged on the id and re-read whole about once a day. Needs no scope.
betastalenessmergeid-

Setting up the destination is its own short guide, one per warehouse or lake: Amazon S3, Google Cloud Storage, Azure Blob Storage, Apache Iceberg, Ingest Managed Lakehouse, MotherDuck, Postgres, Amazon Athena, Databricks, Redshift, BigQuery, ClickHouse, MySQL / generic SQL, Snowflake.

Other sources Ingest connects for ERP teams: SAP, Oracle NetSuite, Microsoft Dynamics 365, Workday, Odoo, Acumatica.

Get Ramp data into your warehouse

Last updated .