Ramp
Finance and operations
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
| Table | Each row is |
|---|---|
accounting_connectionsaccounting_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_rulesaccounting_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_optionsaccounting_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_fieldsaccounting_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_accountsaccounting_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_fieldaccounting_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_optionsaccounting_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_fieldsaccounting_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_fieldaccounting_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_optionsaccounting_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_ratesaccounting_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_vendorsaccounting_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_keysai_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_teamai_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_billsarchived_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_eventsaudit_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_accountsbank_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_balancesbanking_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_accountsbanking_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_transactionsbanking_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_approvalsbill_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`. |
billsbills | 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. |
businessbusiness | The business itself: legal name, address, website and the limit Ramp approved, one row, re-read about once a day. Needs `business:read`. |
business_balancebusiness_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`. |
cashbackscashbacks | 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_columnscustom_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_rowscustom_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_tablescustom_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_transactionsdeclined_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`. |
departmentsdepartments | Departments, one row each, merged on the department id and re-read whole about once a day. |
draft_billsdraft_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`. |
entitiesentities | 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`. |
fundsfunds | 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_countriesincorporation_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_industriesincorporation_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_statesincorporation_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_receiptsitem_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`. |
locationslocations | Locations, one row each, merged on the location id and re-read whole about once a day. Needs `locations:read`. |
matrix_table_rowsmatrix_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_tablesmatrix_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`. |
memosmemos | 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`. |
merchantsmerchants | 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_columnsnative_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_rowsnative_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_tablesnative_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_cardsphysical_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_orderspurchase_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_outsreceipt_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`. |
receiptsreceipts | 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_approvalsreimbursement_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`. |
reimbursementsreimbursements | 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_reimbursementsrepayment_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`. |
repaymentsrepayments | 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`. |
rolesroles | 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_programsspend_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`. |
statementsstatements | 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_cardsterminated_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_approvalstransaction_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`. |
transactionstransactions | 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. |
transferstransfers | 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`. |
tripstrips | 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_requestsunified_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`. |
usersusers | Ramp users (cardholders, managers and guests), one row each, merged on the user id and re-read whole about once a day. |
vendor_agreementsvendor_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_accountsvendor_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_contactsvendor_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`. |
vendorsvendors | 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_cardsvirtual_cards | Virtual cards, one row each, merged on the card id and re-read whole about once a day. |
webhookswebhooks | 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
- Choose Ramp. Connect your Ramp account once, from Ingest.
- Pick where it goes. BigQuery, Snowflake, Databricks, Redshift and 10 more, in an account you own.
- Pick a schedule. Daily is the default, and weekly and monthly are there too.
- 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
| Resource | Status | Plan | Write | Primary key | Overrides |
|---|---|---|---|---|---|
accounting_connectionsThe 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`. | beta | staleness | merge | id | - |
accounting_field_option_filter_rulesRules 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`. | beta | staleness | replace | - | - |
accounting_field_optionsThe 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`. | beta | parent_child | merge | ramp_id | - |
accounting_fieldsAccounting 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`. | beta | staleness | merge | ramp_id | - |
accounting_gl_accountsGeneral 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`. | beta | staleness | merge | ramp_id | - |
accounting_inventory_item_fieldThe 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`. | beta | staleness | merge | ramp_id | - |
accounting_inventory_item_optionsInventory 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`. | beta | staleness | merge | ramp_id | - |
accounting_ramp_fieldsAccounting 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`. | beta | staleness | merge | ramp_id | - |
accounting_tax_code_fieldThe 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`. | beta | staleness | merge | ramp_id | - |
accounting_tax_code_optionsTax 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`. | beta | staleness | merge | ramp_id | - |
accounting_tax_ratesTax 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`. | beta | staleness | merge | ramp_id | - |
accounting_vendorsVendors 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`. | beta | staleness | merge | ramp_id | - |
ai_spend_api_keysAI 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`. | beta | window | merge | id, _ingest_window | - |
ai_spend_teamAI 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`. | beta | window | merge | id, _ingest_window | - |
archived_billsBills 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`. | beta | staleness | merge | id | - |
audit_log_eventsRamp'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`. | beta | window | merge | id | - |
bank_accountsThe 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`. | beta | staleness | merge | id | - |
banking_account_balancesEach 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`. | beta | parent_child | merge | _ingest_parent_key, date | - |
banking_accountsThe business's Ramp banking (Treasury) accounts, one row each, merged on the id and re-read whole about once a day. Needs `treasury:read`. | beta | staleness | merge | id | - |
banking_syncable_transactionsRamp 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`. | beta | staleness | merge | id | - |
bill_approvalsThe 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`. | beta | parent_child | merge | entity_id | - |
billsBills, 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. | beta | staleness | merge | id | - |
businessThe business itself: legal name, address, website and the limit Ramp approved, one row, re-read about once a day. Needs `business:read`. | beta | staleness | merge | id | - |
business_balanceThe 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`. | beta | staleness | replace | - | - |
cashbacksCashback Ramp paid the business, one row each, merged on the id and re-read whole about once a day. Needs `cashbacks:read`. | beta | staleness | merge | id | - |
custom_table_columnsThe 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`. | beta | parent_child | merge | id | - |
custom_table_rowsThe 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`. | beta | parent_child | merge | id | - |
custom_tablesThe 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`. | beta | staleness | merge | table_name | - |
declined_transactionsCard 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`. | beta | window | merge | id | - |
departmentsDepartments, one row each, merged on the department id and re-read whole about once a day. | beta | staleness | merge | id | - |
draft_billsDraft bills not yet submitted, one row each, merged on the draft's id and re-read whole about once a day. Needs `bills:read`. | beta | staleness | merge | id | - |
entitiesThe 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`. | beta | staleness | merge | id | - |
fundsFunds, 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`. | beta | staleness | merge | id | - |
incorporation_countriesThe 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`. | beta | staleness | merge | code | - |
incorporation_industriesThe 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`. | beta | staleness | replace | - | - |
incorporation_statesThe 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`. | beta | staleness | merge | abbreviation | - |
item_receiptsItem 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`. | beta | staleness | merge | id | - |
locationsLocations, one row each, merged on the location id and re-read whole about once a day. Needs `locations:read`. | beta | staleness | merge | id | - |
matrix_table_rowsThe 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`. | beta | parent_child | merge | id | - |
matrix_tablesMatrix 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`. | beta | staleness | merge | id | - |
memosEach 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`. | beta | window | merge | id | - |
merchantsThe 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`. | beta | staleness | merge | id | - |
native_table_columnsThe 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`. | beta | parent_child | merge | id | - |
native_table_rowsThe 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`. | beta | parent_child | merge | id | - |
native_tablesRamp'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`. | beta | staleness | merge | table_name | - |
physical_cardsPhysical 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. | beta | staleness | merge | id | - |
purchase_ordersPurchase 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`. | beta | staleness | merge | id | - |
receipt_integration_opt_outsEmail 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`. | beta | staleness | merge | id | - |
receiptsReceipts 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`. | beta | window | merge | id | - |
reimbursement_approvalsThe 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`. | beta | parent_child | merge | entity_id | - |
reimbursementsEmployee 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. | beta | watermark | merge | id | backfill_days |
repayment_reimbursementsReimbursements 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`. | beta | watermark | merge | id | - |
repaymentsRepayments 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`. | beta | staleness | merge | id | - |
rolesThe 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. | beta | staleness | merge | id | - |
spend_programsSpend 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`. | beta | staleness | merge | id | - |
statementsRamp 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`. | beta | staleness | merge | id | - |
terminated_virtual_cardsVirtual 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`. | beta | staleness | merge | id | - |
transaction_approvalsThe 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`. | beta | parent_child | merge | entity_id | - |
transactionsCard 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. | beta | window | merge | id | lookback_days |
transfersTransfer 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`. | beta | staleness | merge | id | - |
tripsTrips 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`. | beta | staleness | merge | id | - |
unified_requestsSpend 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`. | beta | staleness | merge | id | - |
usersRamp users (cardholders, managers and guests), one row each, merged on the user id and re-read whole about once a day. | beta | staleness | merge | id | - |
vendor_agreementsContracts 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`. | beta | staleness | merge | id | - |
vendor_bank_accountsThe 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`. | beta | parent_child | merge | id | - |
vendor_contactsEach 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`. | beta | parent_child | merge | id | - |
vendorsVendors, 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. | beta | staleness | merge | id | - |
virtual_cardsVirtual cards, one row each, merged on the card id and re-read whole about once a day. | beta | staleness | merge | id | - |
webhooksThe 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. | beta | staleness | merge | id | - |
Where this lands, and what else connects
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.
- How Ingest reads a REST source
- Ingest for ERP teams
- The tables Ingest creates
- Every source Ingest connects
Get Ramp data into your warehouse
Last updated .