# ONE9PAY Docs ## Docs - [Overview](/index): ParuPay is the payment service. Your shop stays your own system: it saves the order, charges with a payment link or server-to-server, and updates that order when a webhook arrives. - [Getting started](/getting-started): Create the order, charge it (payment link or server-to-server), receive the webhook, and record the status. - [Pay by link](/pay-by-link): A payment link is a fixed amount and title. Your backend creates it. You share checkout_url, or redirect the customer there from your own checkout button. - [Pay by bank](/pay-by-bank): Get paid straight from your customer's US bank account (ACH Direct Debit). Send the customer's bank details and the link opens ready to pay — the customer only clicks Pay. - [Pay by onramp](/pay-by-onramp): A payment link your customer pays by card or bank inside a secure crypto onramp. ParuPay receives the stablecoin, takes its fees, and you are owed the rest. - [Server-to-server](/s2s): Your PCI server creates the charge. Never put the card or secret key in a browser. - [Authentication](/authentication): Every server call sends the secret key. Sandbox and live are different keys, and a key only sees payments created in that mode. - [API reference](/api-reference): Every endpoint your server uses, with the key it needs. All requests send Authorization: Bearer sk_test_… or sk_live_…, and only see data from that key's mode. - [Payment statuses](/statuses): Read status from the payment intent and from webhooks. The merchant portal groups those values into success, pending, failed, and cancelled. - [Webhooks](/webhooks): ParuPay POSTs the payment result to the URL you register, even when the customer never returns to your site. Your handler updates the order. - [Testing cards](/testing-cards): Test every payment flow on the ParuPay sandbox with these cards. No real money moves. - [Try the API](/try): Copy-paste curl examples for the same requests as the old API console. Use an sk_test_ key from the merchant portal.