# ramp v1.0.0 - Table of Contents

> A production-grade Elixir client for the Ramp Developer API
(v1): cards, users, transactions, limits, bills, vendors, accounting sync,
reimbursements, webhooks, and more -- with OAuth2 token management, automatic
retries, cursor pagination many more.

## Pages

- [Ramp](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [Ramp.Accounting.Connection](Ramp.Accounting.Connection.md): An ERP accounting integration (e.g. QuickBooks, NetSuite, Xero).
- [Ramp.Accounting.CustomField](Ramp.Accounting.CustomField.md): A dimension on which transactions/bills can be categorized.
- [Ramp.Accounting.FieldOption](Ramp.Accounting.FieldOption.md): A selectable value for a `CustomField`.
- [Ramp.Accounting.GLAccount](Ramp.Accounting.GLAccount.md): A general ledger account used for accounting classification.
- [Ramp.AuditLogs.Event](Ramp.AuditLogs.Event.md): A single audit log entry.
- [Ramp.Bills.Bill](Ramp.Bills.Bill.md): An obligation to pay a vendor.
- [Ramp.Bills.LineItem](Ramp.Bills.LineItem.md): A line item within a `Bill`.
- [Ramp.Business.BusinessAccount](Ramp.Business.BusinessAccount.md): The top-level Ramp business account.
- [Ramp.Cards.Card](Ramp.Cards.Card.md): A Ramp virtual or physical card.
- [Ramp.Cashbacks.Cashback](Ramp.Cashbacks.Cashback.md): A monthly cashback reward.
- [Ramp.Departments.Department](Ramp.Departments.Department.md): An organizational department.
- [Ramp.Entities.Entity](Ramp.Entities.Entity.md): A legal business entity under a Ramp account.
- [Ramp.JSON](Ramp.JSON.md): Small decoding helpers shared by every resource module.
- [Ramp.Limits.Balance](Ramp.Limits.Balance.md): The financial breakdown of a `Limit`.
- [Ramp.Limits.Limit](Ramp.Limits.Limit.md): A Ramp spend control.
- [Ramp.Limits.Restrictions](Ramp.Limits.Restrictions.md): Merchant category / vendor / per-transaction constraints on a `Limit`.
- [Ramp.Locations.Location](Ramp.Locations.Location.md): A physical or logical office location.
- [Ramp.Merchants.Merchant](Ramp.Merchants.Merchant.md): A card-network merchant.
- [Ramp.Reimbursements.Reimbursement](Ramp.Reimbursements.Reimbursement.md): An out-of-pocket expense submitted for reimbursement.
- [Ramp.SpendPrograms.SpendProgram](Ramp.SpendPrograms.SpendProgram.md): A template applied to card limits.
- [Ramp.Statements.Statement](Ramp.Statements.Statement.md): A monthly billing statement.
- [Ramp.Transactions.Receipt](Ramp.Transactions.Receipt.md): A receipt document attached to a transaction.
- [Ramp.Transactions.Transaction](Ramp.Transactions.Transaction.md): A Ramp card transaction.
- [Ramp.Users.User](Ramp.Users.User.md): A Ramp platform user.
- [Ramp.Vendors.Vendor](Ramp.Vendors.Vendor.md): An accounts-payable vendor.
- [Ramp.WebhookSubscriptions.Registration](Ramp.WebhookSubscriptions.Registration.md): A registered webhook endpoint.

- Client
  - [Ramp](Ramp.md): A production-grade Elixir client for the [Ramp Developer API](https://docs.ramp.com/developer-api/v1/overview/introduction) (v1).
  - [Ramp.Client](Ramp.Client.md): Holds the resolved configuration for talking to the Ramp API: base URL,
HTTP/retry tuning, telemetry prefix, and the `pid`/name of the
`Ramp.TokenManager` that supplies bearer tokens.
  - [Ramp.TokenManager](Ramp.TokenManager.md): A `GenServer` that manages OAuth2 `client_credentials` tokens for a Ramp
client: it fetches, caches, and transparently refreshes the access token
before it expires.

- Transport
  - [Ramp.Error](Ramp.Error.md): The structured exception raised/returned by every `Ramp` operation.
  - [Ramp.HTTP](Ramp.HTTP.md): The low-level HTTP transport shared by every resource module.
  - [Ramp.Pagination](Ramp.Pagination.md): Builds lazy, auto-paginating `Stream`s over Ramp's cursor-paginated list
endpoints.
  - [Ramp.Poller](Ramp.Poller.md): Polls Ramp's deferred-task status endpoint until a task submitted by an
asynchronous write (card issuance, user invite, limit creation, etc.)
finishes, using capped exponential backoff between checks.

- Resources
  - [Ramp.Accounting](Ramp.Accounting.md): The [Accounting](https://docs.ramp.com/developer-api/v1/api-reference/accounting)
resource: ERP connections, general ledger accounts, custom accounting
dimensions ("fields") and their selectable options, and reporting sync
status back to Ramp.
  - [Ramp.AuditLogs](Ramp.AuditLogs.md): The [Audit Logs](https://docs.ramp.com/developer-api/v1/api-reference/audit-logs)
resource: read-only access to the audit event log for the business.

  - [Ramp.Bills](Ramp.Bills.md): The [Bills](https://docs.ramp.com/developer-api/v1/api-reference/bills)
(accounts payable) resource: creating, listing, updating, and voiding
bills owed to vendors.
  - [Ramp.Business](Ramp.Business.md): The [Business](https://docs.ramp.com/developer-api/v1/api-reference/business)
resource: read-only details about the top-level Ramp business account
associated with the client's credentials.

  - [Ramp.Cards](Ramp.Cards.md): The [Cards](https://docs.ramp.com/developer-api/v1/api-reference/cards)
resource: issuing, listing, updating, suspending, and terminating Ramp
cards.
  - [Ramp.Cashbacks](Ramp.Cashbacks.md): The [Cashbacks](https://docs.ramp.com/developer-api/v1/api-reference/cashbacks)
resource: read-only access to monthly cashback rewards.

  - [Ramp.Departments](Ramp.Departments.md): The [Departments](https://docs.ramp.com/developer-api/v1/api-reference/departments)
resource: full CRUD on organizational departments.

  - [Ramp.Entities](Ramp.Entities.md): The [Entities](https://docs.ramp.com/developer-api/v1/api-reference/entities)
resource: read-only access to the legal business entities under a Ramp
account (relevant for multi-entity businesses).

  - [Ramp.Limits](Ramp.Limits.md): The [Limits](https://docs.ramp.com/developer-api/v1/api-reference/limits)
resource (spend controls): creating, listing, updating, and terminating
spend limits.

  - [Ramp.Locations](Ramp.Locations.md): The [Locations](https://docs.ramp.com/developer-api/v1/api-reference/locations)
resource: full CRUD on physical/logical office locations.

  - [Ramp.Merchants](Ramp.Merchants.md): The [Merchants](https://docs.ramp.com/developer-api/v1/api-reference/merchants)
resource: read-only access to card-network merchants where Ramp
transactions occur.

  - [Ramp.Reimbursements](Ramp.Reimbursements.md): The [Reimbursements](https://docs.ramp.com/developer-api/v1/api-reference/reimbursements)
resource: read-only access to out-of-pocket employee expense
reimbursements.

  - [Ramp.SpendPrograms](Ramp.SpendPrograms.md): The [Spend Programs](https://docs.ramp.com/developer-api/v1/api-reference/spend-programs)
resource: read-only access to spend program templates applied to card
limits.

  - [Ramp.Statements](Ramp.Statements.md): The [Statements](https://docs.ramp.com/developer-api/v1/api-reference/statements)
resource: read-only access to monthly billing statements.

  - [Ramp.Transactions](Ramp.Transactions.md): The [Transactions](https://docs.ramp.com/developer-api/v1/api-reference/transactions)
resource: listing, retrieving, and updating (memo, accounting fields,
policy feedback) card transactions.

  - [Ramp.Users](Ramp.Users.md): The [Users](https://docs.ramp.com/developer-api/v1/api-reference/users)
resource: inviting, listing, updating, deactivating, and reactivating
Ramp platform users.
  - [Ramp.Vendors](Ramp.Vendors.md): The [Vendors](https://docs.ramp.com/developer-api/v1/api-reference/vendors)
resource: read-only access to accounts-payable vendors used in bill
payments.

  - [Ramp.WebhookSubscriptions](Ramp.WebhookSubscriptions.md): The [Webhooks](https://docs.ramp.com/developer-api/v1/api-reference/webhooks)
resource: registering, listing, updating, and deleting webhook endpoint
subscriptions.

- Webhooks
  - [Ramp.Webhooks](Ramp.Webhooks.md): Verifies Ramp webhook signatures and decodes webhook payloads into
`Ramp.Webhooks.Event` structs.
  - [Ramp.Webhooks.Event](Ramp.Webhooks.Event.md): A decoded, verified Ramp webhook event.
  - [Ramp.Webhooks.Handler](Ramp.Webhooks.Handler.md): A tiny, framework-agnostic builder for registering callbacks per webhook
event type and dispatching a verified delivery to the right one --
equivalent to the Go SDK's `webhooks.Handler`.

- Shared Types
  - [Ramp.AccountingFieldSelection](Ramp.AccountingFieldSelection.md): A selected accounting dimension value attached to a syncable object.
  - [Ramp.Address](Ramp.Address.md): A physical mailing address.
  - [Ramp.DeferredTaskRef](Ramp.DeferredTaskRef.md): A reference to an asynchronous deferred task submitted to the Ramp API
(e.g. card issuance, user creation, limit creation).
  - [Ramp.Money](Ramp.Money.md): A monetary amount, represented as an integer number of minor units (cents)
plus an ISO-4217 currency code -- exactly as the Ramp API returns it, with
no float rounding surprises.

  - [Ramp.Page](Ramp.Page.md): A single page of results from a Ramp list endpoint, returned by resource
modules' `list_page/2` functions for callers who want manual control over
pagination instead of the lazy auto-paginating `Ramp.Pagination.stream/4`
(used internally by `list/2`).

  - [Ramp.PolicyViolation](Ramp.PolicyViolation.md): A policy rule that was violated on a transaction.

