# ripper docs
> The merchant docs for ripper checkout: the loader, the runtime, the hosted page, the API.
Install the npm package with `npm install ripperpay`, or load the permanent loader with ``. Every page below is also served as markdown (its alternate link) and listed in /.well-known/ripper-docs.json.
## Pages
- [Start here](https://docs.ripper.dev/): Three ways to take a payment with ripper, and where each one begins.
- [How ripper checkout works](https://docs.ripper.dev/how-it-works): The pieces, what happens when a shopper pays, and the words for each outcome.
- [Quickstart](https://docs.ripper.dev/quickstart): From zero to a test payment in five minutes.
- [Integration parameters](https://docs.ripper.dev/integration-parameters): Every field of update_checkout_integration and what the runtime does with it.
- [Testing](https://docs.ripper.dev/testing): What puts a checkout in test mode, what test mode does and does not prove, and where the cards are.
- [Keys](https://docs.ripper.dev/keys): The two keys, what each may do, where each may go, and what to do first if one gets out.
- [Security and CSP](https://docs.ripper.dev/security-and-csp): The Content-Security-Policy a page needs for the checkout, which rows are verified and which are not.
- [Going-live checklist](https://docs.ripper.dev/going-live): What to have in place before the first live charge, and what we have not yet verified in live.
- [Changes and versioning](https://docs.ripper.dev/changes): What counts as a breaking change, how much notice you get, and what can appear without notice.
- [Vanilla JavaScript](https://docs.ripper.dev/js/script-tag): The script tag, the queue, and the members of ripper.
- [React](https://docs.ripper.dev/js/react): — a thin wrapper over collect().
- [Next.js](https://docs.ripper.dev/js/nextjs): A server component may import ripperpay; the checkout renders in a client component.
- [collect() reference](https://docs.ripper.dev/js/collect): Every option, every result, and what the session stores.
- [The hosted page](https://docs.ripper.dev/js/hosted-page): pay.ripper.dev/{handle} — the same runtime, no code.
- [Holds and the hold block](https://docs.ripper.dev/js/hold): What "Authorised, pending merchant confirmation" means and every field of the hold block.
- [Layout](https://docs.ripper.dev/js/layout): step_mode and field_order are behaviour, not CSS.
- [Accessibility](https://docs.ripper.dev/js/accessibility): The landmark, the live region, describedBy pointing at your own page, reduced motion.
- [Test cards](https://docs.ripper.dev/js/test-cards): The reserved cards in test mode and what each does.
- [Errors](https://docs.ripper.dev/js/errors): Every API error code and every SDK error code, what causes each, and what your page should do about it.
- [Routes the checkout calls for you](https://docs.ripper.dev/js/routes): The browser routes the checkout uses on your behalf, for reading and debugging rather than for calling.
- [Migrating from Stripe](https://docs.ripper.dev/js/stripe-compatibility): Swap one script URL and one key; elements.create, mount and confirmCardPayment keep working.
- [API reference](https://docs.ripper.dev/api/reference): Every route your server calls, generated from the OpenAPI document so it cannot drift.
- [Checkout sessions](https://docs.ripper.dev/api/checkout-sessions): Create a session on your server and read it back.
- [Payments](https://docs.ripper.dev/api/payments): Read a payment, its decline reason and its hold state.
- [Webhooks](https://docs.ripper.dev/api/webhooks): Register an endpoint, list what was delivered, and replay a delivery.
- [Errors by HTTP status](https://docs.ripper.dev/api/errors): Every API error code, ordered by the status you got back, with what to do about each.
- [Stripe API compatibility](https://docs.ripper.dev/api/stripe-compatibility): The Stripe-shaped routes, for servers already written against Stripe.
- [OpenAPI document](https://docs.ripper.dev/api/openapi): Where to fetch the machine-readable API description, and what is guaranteed about it.