# PayGood ## Docs - [PayGood Payments API: Developer Overview and Guide](https://docs.paygood.com/introduction.md): PayGood is a REST API for accepting payments, managing customers, and onboarding merchants. Discover what you can build and how to get started. - [How to Set Up and Manage Your PayGood API Keys](https://docs.paygood.com/guides/api-keys.md): Learn how to create, store, and protect your PayGood API keys so you can securely authenticate every request to the payments API. - [How to Authenticate Your PayGood API Requests](https://docs.paygood.com/guides/authentication.md): Pass your PayGood API key as a Bearer token in the Authorization header to authenticate every request. Includes curl, JavaScript, and Python examples. - [Make Your First Payment: A Step-by-Step PayGood Guide](https://docs.paygood.com/guides/first-payment.md): Walk through processing your first payment with PayGood: create a customer, register a payment instrument, and submit a completed charge. - [Create and Manage Your Customers Using the PayGood API](https://docs.paygood.com/guides/manage-customers.md): Learn how to create platform customers and merchant-scoped customers, retrieve customer records, and list customers linked to a merchant. - [Tokenize and Register Payment Instruments with PayGood](https://docs.paygood.com/guides/payment-instruments.md): Learn how to register tokenized cards and bank accounts as payment instruments in PayGood and understand instrument statuses before charging. - [Send and Manage Invoices with PayGood](https://docs.paygood.com/guides/invoices.md): Create a draft invoice, revise it, mark it as paid, void it, and view its revision history using the PayGood Invoices API. - [PayGood Merchant Onboarding: A Complete Overview](https://docs.paygood.com/guides/merchant-onboarding-overview.md): Understand the PayGood merchant onboarding process — from creating a draft application to processor approval and live payment processing. - [List payments for a merchant](https://docs.paygood.com/api-reference/payments/list-payments-for-a-merchant.md): Returns payments sorted by newest first using cursor pagination. Use `page.nextCursor` as the next `cursor` value. Optional `start` and `end` filters bound `createdAt` inclusively. - [Create a one-time payment](https://docs.paygood.com/api-reference/payments/create-a-one-time-payment.md): Creates a one-time payment using a payment instrument and either an active price (`priceId`) or raw amount compatibility (`amount` + `currency`). Optional `description` and `metadata` are stored on the payment. - [List customers linked to a merchant](https://docs.paygood.com/api-reference/customers/list-customers-linked-to-a-merchant.md) - [Create a customer linked to a merchant](https://docs.paygood.com/api-reference/customers/create-a-customer-linked-to-a-merchant.md) - [Mint a tokenization intent for client-side Basis Theory sessions](https://docs.paygood.com/api-reference/tokenization/mint-a-tokenization-intent-for-client-side-basis-theory-sessions.md): Server-side only. Returns a short-lived bearer token (`tokintent_...`) the browser passes to `POST /tokenization/sessions` instead of a checkout session token. Requires a merchant↔customer link. - [Register a payment instrument for a customer](https://docs.paygood.com/api-reference/payment-instruments/register-a-payment-instrument-for-a-customer.md): Accepts a Basis Theory vault token id only (`vaultToken.id`). Do not send a vault provider field. - [List catalog products for a merchant](https://docs.paygood.com/api-reference/catalog-products/list-catalog-products-for-a-merchant.md): Returns catalog products sorted by newest first using cursor pagination. Optional `start` and `end` filters bound `createdAt` inclusively. Requires `catalog.manage` capability for the scoped merchant. - [Create a catalog product](https://docs.paygood.com/api-reference/catalog-products/create-a-catalog-product.md): Creates a merchant-scoped catalog product. Requires idempotency key and merchant scope. - [Get a catalog product by id](https://docs.paygood.com/api-reference/catalog-products/get-a-catalog-product-by-id.md): Returns a single catalog product for the provided merchant scope and product id. - [Update a catalog product](https://docs.paygood.com/api-reference/catalog-products/update-a-catalog-product.md): Updates a merchant-scoped catalog product name and description. Requires idempotency key and `catalog.manage` capability. - [Update a catalog product price](https://docs.paygood.com/api-reference/catalog-products/update-a-catalog-product-price.md): Atomically replaces a product price by creating a new active price and archiving any existing active prices for the same product/merchant scope. This endpoint is idempotent by `idempotencyKey` per merchant. - [Update a catalog product status](https://docs.paygood.com/api-reference/catalog-products/update-a-catalog-product-status.md) - [List catalog prices for a merchant](https://docs.paygood.com/api-reference/catalog-prices/list-catalog-prices-for-a-merchant.md): Returns catalog prices sorted by newest first using cursor pagination. Optional `start` and `end` filters bound `createdAt` inclusively. - [Create a catalog price](https://docs.paygood.com/api-reference/catalog-prices/create-a-catalog-price.md): Creates a merchant-scoped price that is either one-time or recurring. - [Get a catalog price by id](https://docs.paygood.com/api-reference/catalog-prices/get-a-catalog-price-by-id.md) - [Archive an existing catalog price](https://docs.paygood.com/api-reference/catalog-prices/archive-an-existing-catalog-price.md): Marks a merchant-scoped catalog price as archived. Archived prices are not chargeable. - [List invoices for a merchant](https://docs.paygood.com/api-reference/invoices/list-invoices-for-a-merchant.md): Returns invoices sorted by newest first using cursor pagination. Supports optional customer and created-at range filtering. - [Create a draft invoice](https://docs.paygood.com/api-reference/invoices/create-a-draft-invoice.md): Creates a merchant-scoped draft invoice with a sequential merchant invoice number. Line items may mix catalog product charges and manual adjustments such as merchant-calculated tax or shipping. - [Get invoice by id](https://docs.paygood.com/api-reference/invoices/get-invoice-by-id.md): Returns a single merchant-scoped invoice by its TypeID, including invoice number, line items, and computed totals. - [Revise a draft invoice](https://docs.paygood.com/api-reference/invoices/revise-a-draft-invoice.md): Updates draft invoice contents while keeping the same invoice id and URL slug. Each successful update appends an invoice revision entry. - [List payments applied to an invoice](https://docs.paygood.com/api-reference/invoices/list-payments-applied-to-an-invoice.md): Returns both processed and out-of-band payments for one invoice, newest first, using cursor pagination. Every row exposes `effectiveAt`; out-of-band rows additionally expose `method`, `reference`, and `recordedBy` so the dashboard can render payment history without a second lookup. - [Charge a payment instrument against an invoice](https://docs.paygood.com/api-reference/invoices/charge-a-payment-instrument-against-an-invoice.md): Charges a payment instrument for all or part of the remaining balance. The returned allocation is `pending`: the invoice balance does not move until the processor reports a capture, so `amountPaid` and `status` in this response still reflect the pre-charge state. Idempotent by idempotency key per in… - [Record a payment received outside PayGood](https://docs.paygood.com/api-reference/invoices/record-a-payment-received-outside-paygood.md): Records money the merchant collected directly — cash, check, Zelle, and similar. There is no processor to wait on, so the allocation is applied and the invoice balance moves in the same request: a partial amount leaves the invoice `partially_paid`, and the full remaining balance marks it `paid`. Not… - [Reverse a recorded out-of-band payment](https://docs.paygood.com/api-reference/invoices/reverse-a-recorded-out-of-band-payment.md): Unwinds an out-of-band payment that was recorded in error, dropping the invoice back to `partially_paid` or `issued` depending on the remaining balance. The allocation is kept as `reversed` rather than deleted so the audit trail survives. Only `out_of_band` allocations can be reversed — a processed… - [Send an invoice email](https://docs.paygood.com/api-reference/invoices/send-an-invoice-email.md): Sends an invoice notification email to the customer by default, or to an optional override recipient. Draft invoices are first transitioned to issued. - [Void a draft or issued invoice](https://docs.paygood.com/api-reference/invoices/void-a-draft-or-issued-invoice.md): Manually transitions a draft or issued invoice to void for the provided merchant scope. This endpoint is idempotent by idempotency key per invoice. - [List invoice revisions](https://docs.paygood.com/api-reference/invoices/list-invoice-revisions.md): Returns append-only revision history for an invoice, newest revision first. - [List merchant referrals](https://docs.paygood.com/api-reference/merchant-referrals/list-merchant-referrals.md) - [Get or create the stable referral code for a merchant](https://docs.paygood.com/api-reference/merchant-referrals/get-or-create-the-stable-referral-code-for-a-merchant.md) ## OpenAPI Specs - [openapi](https://docs.paygood.com/openapi.json)