Documentation Index
Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
Use this file to discover all available pages before exploring further.
Ramp Integration: Setup and Sync
Connect Ramp to DualEntry so card transactions, bills, reimbursements, and statement payments flow into your general ledger automatically, and your DualEntry chart of accounts, vendors, and classifications are pushed back to Ramp on every sync. The integration is native and bidirectional, built and maintained directly in DualEntry. After the initial setup, sync runs automatically every two hours, and you can trigger a manual sync at any time.
Prerequisites
Confirm the following before connecting. Each prerequisite blocks a specific configuration step downstream, so missing one stops the setup partway through rather than at first sync.
- Admin access to both your DualEntry account and your Ramp account.
- Your chart of accounts finalized in DualEntry. GL accounts are pushed to Ramp automatically on connection, so placeholder or temporary accounts appear in Ramp and create cleanup work later.
- Vendors set up in DualEntry. The integration pushes vendors to Ramp and reconciles incoming Ramp merchants against your vendor list by name.
- Companies (entities) configured in DualEntry. Each Ramp entity must map to a DualEntry company before sync runs.
- A chart of accounts that has not been manually uploaded in Ramp. If a CSV chart of accounts is already loaded in Ramp on a fresh account, contact DualEntry support before proceeding; a duplicate-account cleanup is required.
If your Ramp account is currently connected to another accounting provider, see Switching from another accounting provider before you start.
What syncs to and from Ramp
The integration moves accounting data in both directions on every sync run. Ramp pushes spend activity into DualEntry as transactional records, and DualEntry pushes master data (accounts, vendors, classifications) into Ramp so employees can code expenses against current values.
The table below summarizes what flows from Ramp into DualEntry on each sync:
| Ramp record | DualEntry record | Notes |
|---|
| Credit card transaction (positive) | direct_expense | Debit to expense GL, credit to the credit card liability account. |
| Credit card transaction (negative / refund) | journal_entry | Reversal entry. |
| Bill | bill | Full line-item sync with GL mapping and custom fields. |
| Bill payment | vendor_payment | Created automatically when a bill is marked paid in Ramp. |
| Reimbursement | bill + vendor_payment | An employee vendor is created automatically from the Ramp user. |
| Statement payment (transfer) | journal_entry | Debits the credit card account, credits the bank account. |
| Cashback | journal_entry | Debits the credit card account, credits the cashback income account. |
| Purchase order | purchase_order | Synced but not acknowledged back to Ramp. |
The table below summarizes what DualEntry pushes back to Ramp on every sync:
| DualEntry record | Pushed to Ramp as | Notes |
|---|
| GL Accounts | Ledger Accounts | Pushed automatically; do not upload manually in Ramp. |
| Vendors | Accounting Vendors | Delta sync; new vendors are pushed each run. |
| Classifications (departments, classes, locations, custom dimensions) | Custom Fields (Single Choice) | Options are added and removed to match DualEntry. |
| Customers | Custom Field (Single Choice) | Pushed only when enabled under Other Settings in the DualEntry Ramp integration settings. |
Switching from another accounting provider
Ramp allows one accounting provider connected at a time, so a cutover from another provider needs planning before you connect DualEntry. Once a Ramp transaction is marked as Synced by any provider, that status is permanent: Ramp will not re-sync that transaction to a new provider. Transactions already synced to your old provider stay there and do not appear in DualEntry.
Choose a cutoff date that aligns with the last day you want your old provider to receive data from Ramp, typically the last day of a month or accounting period. Everything from the day after that date forward flows into DualEntry; everything before stays in your previous system.
- Choose your cutoff date.
- Before disconnecting, in Ramp open Accounting → Settings and download your accounting data export. The export contains historical bills, transactions, and reimbursements with GL line detail.
- If you used vendor default GL account assignments in Ramp, reconstruct them from the export. Those mappings are tied to the previous accounting connection and do not carry over; pivot the bills export by vendor and GL account, take the most common GL account per vendor, and re-enter the mappings in Ramp once DualEntry is connected.
- In Ramp, go to Accounting → Settings, locate the current accounting connection, and disconnect it.
- Complete the connection steps below.
- After connecting, in DualEntry navigate to Integrations → Ramp → Settings and set the Initial Cut-Off Date field to the day after your last sync with the old provider. If you leave it blank, DualEntry pulls from the integration connection date forward.
Set the Initial Cut-Off Date a few days earlier than your last sync date rather than exactly on it. Ramp will never re-sync a transaction that was already synced to your previous provider, so going back a few days costs nothing and captures any transactions that were dated slightly earlier and hadn’t quite made it through to your old system before you disconnected.
Step 1: Connect DualEntry to Ramp
Authorize Ramp to share data with DualEntry through OAuth. The connection is initiated from DualEntry, not from Ramp, so you don’t paste API keys or credentials anywhere; the OAuth flow handles authentication and returns an access token that DualEntry stores against the integration.
- In DualEntry, navigate to Company → Integrations.
- Find Ramp in the integrations list and choose Connect.
- DualEntry redirects you to Ramp’s OAuth authorization screen. Sign in with your Ramp admin credentials and approve the access request.
- Ramp redirects you back to DualEntry. The integration status now shows as Connected.
A Connected status confirms that authentication succeeded; it does not mean that any transactions have synced yet. Connecting also does not immediately run a sync. Complete the configuration steps in the following sections before triggering your first sync; otherwise transactions will error on missing entity mappings or system accounts, and the errors will accumulate in the integration error log until the underlying configuration is filled in.
Step 2: Map Ramp entities to DualEntry companies
Each Ramp entity must be mapped to a DualEntry company before any data syncs. If your entity names in Ramp exactly match your company names in DualEntry, the integration suggests mappings automatically. Confirm each suggestion or pick the correct company from the dropdown.
- From the Ramp integration page, open the Settings panel.
- Under Default Settings, select the Companies Mapping tile.
- For each Ramp entity in the left column, select the corresponding DualEntry company from the dropdown on the right.
- Choose Save.
All entities must be mapped before the sync runs. If an entity is left unmapped, every transaction for that entity errors and does not sync; this is the most common cause of a connected integration that doesn’t appear to be syncing.
If your organization operates multiple separate Ramp accounts, connect each one as a separate integration in DualEntry. Entity mapping is scoped per integration, so each connection has its own set of Ramp entities and DualEntry companies.
For each company, map the system accounts that DualEntry uses to post Ramp transactions. These tell DualEntry where to record the offsetting entries for each transaction type, so Ramp activity lands on the correct credit card liability, bank, and AP accounts.
From the Ramp Settings panel, select the System Accounts Mapping tile. Use the Company dropdown at the top to select each company in turn, configure the accounts in the table below, and choose Save after each company.
| Field in DualEntry | What it’s used for | Account type |
|---|
| Ramp Credit Card Account | Offset for all card transactions and statement payments. | Credit Card Liability |
| Statement Payments Bank Account | Cash account debited on Ramp statement payments. | Bank |
| Cashback Income Account | Income account for Ramp cashback redemptions. | Income / Other Income |
| Reimbursement Payments Bank Account | Cash account for employee reimbursement payments. | Bank |
| Reimbursement Payable Account | AP account for reimbursements; defaults to your organization AP if left blank. | Accounts Payable |
| Bill Payments Bank Account | Cash account for bill payments made through Ramp. | Bank |
| Bill Payable Account | AP account for bills; defaults to your organization AP if left blank. | Accounts Payable |
If a required system account is missing when a sync runs, every transaction that needs that account errors and is not posted. The errors appear in the integration error log under Integrations → Ramp, not on the originating Ramp record, so check the log if a category of transactions stops landing in DualEntry.
Decide how customers and classifications appear on Ramp bills so they sync back to DualEntry at the right level of granularity. These options live in the Ramp Settings panel under the Other Settings tile and control whether DualEntry pushes customers to Ramp as a coding field and whether customer and classification values are set at the header or line level of each bill.
Customer custom field. DualEntry can push your customers to Ramp as a custom accounting field so employees can tag bills against a customer for cost of goods sold tracking when transactions sync back. Turn Sync customers as custom field on to create a field named DualEntry Customer in Ramp.
Splittable customers. With Push customers as splittable field on, the customer field appears at the line level of each Ramp bill and different customers can be assigned per line. With it off, the customer is set at the header and the same value is applied to every line when the bill syncs to DualEntry.
Splittable classifications. DualEntry pushes classifications (departments, classes, locations, custom dimensions) to Ramp as custom accounting fields. Push classifications as splittable field controls whether each classification appears at the line or header level on bills, with the same header-versus-line behavior described above for customers.
Pick the level by how bills are coded in practice: use header-level when every line of a bill belongs to the same customer or classification (for example, an office supplies bill all coded to Operations), and line-level when a single bill needs to be split across customers or classifications (for example, a shared services bill split across Engineering, Sales, and Operations).
Changes to either splittable setting only affect future imports. Bills synced before the change are not updated retroactively.
Step 5: Configure posting dates and the sync cutoff
Three settings control how Ramp dates map to DualEntry posting dates and when the sync starts pulling transactions. All three live in DualEntry under Integrations → Ramp → Settings and are safe to change before the first sync.
Initial Cut-Off Date. If you are migrating from another provider or only want to pull transactions from a specific date forward, set this date before triggering the first sync. When left blank, DualEntry pulls all transactions from the integration connection date forward. See Switching from another accounting provider for the recommended approach if you’re cutting over from an existing connection.
Map accounting date to posting date in DualEntry. This setting applies to bills and credit card transactions that have an accounting date set in Ramp. When on, the Ramp accounting date is used as the posting date in DualEntry. When off (the default), the bill issued date is used. This is particularly relevant when connecting mid-period: if a bill has an accounting date in a prior period, posting by transaction date avoids inadvertently reopening that period.
Use approval date as posting date for reimbursements. Ramp reimbursements don’t have an accounting date, so by default DualEntry uses the bill issued date. When on, DualEntry uses the reimbursement approval date instead. This is useful for teams where employees submit expenses after month-end close, ensuring reimbursements post in the period they are processed rather than the period the expense occurred.
Changes to either date setting only affect transactions imported after the change. Previously synced transactions are not retroactively updated, though they can be archived and replaced manually if needed.
Step 6: Trigger your first sync
Once entity mapping and system accounts are configured for every company, kick off the initial sync from DualEntry. The first sync does the bulk of the work: it pulls historical Ramp transactions from your Initial Cut-Off Date forward and pushes your DualEntry chart of accounts, vendors, and classifications into Ramp as accounting fields.
- Navigate to Integrations → Ramp.
- Choose Sync Now.
- Allow a few minutes for the first sync to complete; accounts with extensive history can take longer.
- Review the sync log and error table for any issues. Errors on individual records do not block the rest of the sync, so the log is where you find which specific records failed.
After the first sync, the integration runs automatically every two hours. You can trigger an additional manual sync from the same page whenever you need to pull current activity outside the schedule, and you can do this as many times as you need; the integration is idempotent on each transaction so reruns will not create duplicates.
Intercompany billing
The Ramp integration supports two intercompany billing patterns, and they are not mutually exclusive. You can use both depending on the transaction.
Method 1: Line-level entity allocation
A single Ramp bill can be paid by one entity and have its expenses allocated across multiple entities at the line level. The top-level company on the bill is the paying entity (the company that owes the vendor). Each line can then be assigned to a different entity using a custom Accounting Entities field in Ramp, representing the company that actually incurred that expense.
When the bill syncs to DualEntry, intercompany payables and receivables are generated automatically between the paying company and each expensing company on the lines.
Configure the Ramp side once before using this pattern:
- In Ramp, go to Accounting and choose Settings in the top-right corner.
- Select the Accounting Fields tile.
- Choose Add New Field at the bottom of the list.
- Name the field exactly
Entities and select Single Select as the field type.
- Choose Download Template to get the CSV template with
Segment ID and Name columns.
- Fill in the template with your entity names, exactly matching your DualEntry company names.
- Upload the completed template in Section 4 of the field setup screen.
- Choose Save. The field appears as Accounting Entities on bill line items in Ramp.
Entity names must match DualEntry company names character for character. A mismatch causes the intercompany allocation to fail to resolve when the bill syncs.
Method 2: Pay-on-behalf via bank account routing
A second pattern handles the case where one entity pays a Ramp bill on behalf of another, for example, a parent company paying subsidiary expenses centrally. When a Ramp bill is paid, DualEntry checks the bank account used for payment. If that bank account is mapped to a different DualEntry company than the company on the bill, DualEntry treats this as a pay-on-behalf intercompany payment automatically.
DualEntry creates:
- A bill on the expensing company (the entity on the bill).
- A vendor payment attributed to the paying company (the entity whose bank account was used).
- Intercompany payable and receivable entries between the two companies, generated when the vendor payment is posted.
No special configuration is required beyond ensuring your bank accounts in Ramp are mapped to the correct DualEntry company in the System Accounts Mapping. DualEntry handles the IC entries automatically once the bank account routing identifies the paying entity.
Settings reference
These settings live in DualEntry under Integrations → Ramp → Settings and control how transactions flow from Ramp into DualEntry.
| Setting | Default | Description |
|---|
| Initial Cut-Off Date | Integration connection date | Transactions before this date are not pulled from Ramp. |
| Sync Ready filter | On | When on, only pulls transactions marked Ready to Sync in Ramp. When off, pulls all transactions regardless of sync status. |
| Accounting basis | Accrual | Accrual syncs all approved bills. Cash syncs only paid bills and archives or restores bills in DualEntry as payment status changes in Ramp. |
| Create unapproved bills as drafts | Off | When on, bills not yet approved in Ramp are created as Draft records in DualEntry instead of erroring. |
| Skip payments made outside Ramp | On | When on, no vendor payment is created in DualEntry for bills paid outside of Ramp (for example, paid manually in another system). Turn off only if Ramp is your sole payment processor. |
| Map accounting date to posting date in DualEntry | Off | When on, uses the Ramp accounting date as the posting date in DualEntry for bills and card transactions. When off, uses the bill issued date. Changes affect future imports only. |
| Use approval date as posting date for reimbursements | Off | When on, uses the reimbursement approval date as the posting date instead of the bill issued date. |
Diagnose common sync issues
When a record fails to sync, it appears in the integration error log under Integrations → Ramp. Errors on individual records do not block the rest of the sync, so the log is the canonical place to look when a category of transactions stops landing. This section covers the symptom-level checks for the issues you’re most likely to hit; see Resolve specific error messages for the per-error-code resolutions.
Connected but nothing is syncing
The most common cause is incomplete entity mapping. DualEntry does not run the main sync until every Ramp entity has been mapped to a DualEntry company. Open the Ramp Settings panel, choose Companies Mapping, and confirm every entity has a company assigned. If mapping is complete, allow up to two hours for the next scheduled sync, or choose Sync Now to trigger immediately, then check the error log.
Transactions posting to the wrong date
Review your date posting settings under Integrations → Ramp → Settings. If transactions are posting in a period you didn’t expect, check whether Map accounting date to posting date in DualEntry matches your intended behavior. Changes only affect future imports; already-synced transactions are not updated retroactively.
Transactions posting to the wrong GL account
Review the account mapping in the Ramp Settings panel under System Accounts Mapping. If a GL account was lost or changed (for example, after a chart of accounts cleanup), remap the affected system accounts.
A bill synced but the vendor payment is missing
DualEntry reports a bill as successfully synced to Ramp (so Ramp marks it as Synced) even if the vendor payment failed to post separately. Check the integration error log for a payment-level error. Common causes:
| Error | Cause | Fix |
|---|
BANK_ACCOUNT_NOT_MAPPED | The bank account used to pay the bill in Ramp is not mapped in the integration. | Map the bank account under System Accounts Mapping. |
BANK_ACCOUNT_ARCHIVED | The mapped bank account has been archived in DualEntry. | Restore or remap the account. |
IC_CONFIGURATION_INCOMPLETE | Intercompany billing triggered but the IC vendor or customer is not configured in DualEntry. | Set up the intercompany configuration in DualEntry. |
Card transactions are not coming through
Confirm that the transactions are marked Ready to Sync in Ramp (or whether the Sync Ready filter setting should be turned off for your use case), that entity mapping is complete for the entity the transactions belong to, and that the Ramp Credit Card Account is configured for that entity under System Accounts Mapping.
Resolve specific error messages
Specific error messages and duplicate-detection flags show up directly in the integration error log on individual records. Each one points at a precise piece of configuration, master data, or Ramp-side state; the H3s below give you the fix per error.
Entity or system account errors
These errors all point at the same root cause: a missing piece of configuration on a specific company. Open the Ramp Settings panel, choose the relevant tile, and complete the setup for the company named in the error.
| Error message | What it means | Fix |
|---|
| Ramp integration is not configured for this entity | The system account mapping has not been set up for the named company. | Under System Accounts Mapping, choose the company and configure the required accounts. |
| The Credit Card account is not assigned (or Bank, Cashback, etc.) | The mapping row exists but the specific account field is blank. | Fill in the missing account. |
| Entity X is not mapped to a company / No matching company found for entity: X | A Ramp entity has no DualEntry company mapping. | Under Companies Mapping, map the entity. |
A bill is stuck in the error log and retrying doesn’t fix it
If a bill is persistently failing, confirm the bill is in an approved status in Ramp. Bills that are rejected or terminated will not sync. If the bill appears approved in Ramp but is still stuck, recreate it from the recreate path on the error table row. If the error reason is not displayed, contact DualEntry support.
Possible duplicated transaction found
The duplicate detection check flagged this transaction as a potential duplicate of one already in DualEntry. Review the flagged transaction manually. If it is confirmed unique, retry the sync for that record from the error log.
Vendor from Ramp isn’t showing up in DualEntry
Vendors reconcile automatically by name. A mismatch between the Ramp merchant name and an existing DualEntry vendor can create a duplicate vendor. Check your vendor list and merge if needed.
Duplicate accounts appearing in Ramp
This happens when a chart of accounts was manually uploaded in Ramp before connecting DualEntry. Contact DualEntry support; a cleanup script resolves duplicate account mappings.
Result
After completing these steps, Ramp card transactions, bills, reimbursements, statement payments, and cashback flow into DualEntry every two hours, and your DualEntry chart of accounts, vendors, and classifications stay current in Ramp without manual uploads. Intercompany allocations on bills and pay-on-behalf payments are handled automatically when the Ramp entity on a bill line or the bank account on a payment points at a different DualEntry company.
To validate the integration is healthy after each scheduled sync, confirm three things in DualEntry: new Ramp activity appears under the expected company, the integration error log on Integrations → Ramp is empty (or every entry is a known exception), and the DualEntry Customer and classification fields in Ramp reflect your current DualEntry master data.
To connect more systems, return to Integrations. For Ramp’s own platform docs, see the Ramp Accounting Overview. For how the resulting bills and vendor payments behave in DualEntry’s AP workflows, see Bill management.