# Build on WinkPG

Everything you need to integrate payments, stored payment methods and reporting against this WinkPG instance. The reference below is generated from the API this installation serves, so what you read here is what you can call.

> **The API reference isn't available right now**
>
> This instance couldn't load its API specification. The rest of the documentation still works, and the reference returns as soon as the specification is readable again.

## What are you building?

Start from the thing you are trying to do. Each scenario names the short path, the guide behind it, and a blueprint you can run against a sandbox merchant.

### Accept a payment online

Take a card payment from a web or mobile checkout. The first decision is where the card fields live, because it decides both how much you build and what you have to prove every year. Compare the three paths below.

- Decision guide: [Choose an integration method](https://devportal.signapay-sbx.winkpg.io/docs/decide/integration-method.md)
- Guide: [Embedded payments compared with in-page card collection](https://devportal.signapay-sbx.winkpg.io/docs/guides/embedded-payments-vs-direct-card-scripts.md)
- Blueprint: [Accept your first payment](https://devportal.signapay-sbx.winkpg.io/docs/blueprints/accept-your-first-payment.md)

### Invoice a customer

Draft an invoice, issue it to lock and number it, then send it so the payer can settle it from a link. The blueprint walks the lifecycle against your sandbox; the API reference carries the rest of it.

- Blueprint: [Invoice a customer and get paid](https://devportal.signapay-sbx.winkpg.io/docs/blueprints/invoice-a-customer-and-get-paid.md)
- API reference: [Create an invoice](https://devportal.signapay-sbx.winkpg.io/docs/api/invoiceCrudCreate.md)
- API reference: [Send an invoice to the payer](https://devportal.signapay-sbx.winkpg.io/docs/api/invoiceLifecycleSend.md)

### Charge a saved card, or bill on a schedule

Store a payment method against a customer, then charge it again later: at a checkout they're present for, or without them under the consent they gave when it was saved. You keep a token this platform issues, never the card number.

- Guide: [Reusing saved cards](https://devportal.signapay-sbx.winkpg.io/docs/guides/reusing-saved-cards.md)
- Blueprint: [Save a card and charge it later](https://devportal.signapay-sbx.winkpg.io/docs/blueprints/save-a-card-and-charge-it-later.md)
- Blueprint: [Bill a customer on a schedule](https://devportal.signapay-sbx.winkpg.io/docs/blueprints/bill-a-customer-on-a-schedule.md)

### Take a payment over the phone

An agent reads the card into your own system, so the card number reaches your servers. This is the case that genuinely needs the direct API, and it is scoped accordingly.

- Quickstart: [Quickstart: direct API](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-direct-api.md)
- Guide: [Getting started with the API](https://devportal.signapay-sbx.winkpg.io/docs/guides/api-getting-started.md)
- Blueprint: [Accept your first payment](https://devportal.signapay-sbx.winkpg.io/docs/blueprints/accept-your-first-payment.md)

### Build on webhooks

A payment's durable record arrives as a webhook rather than as the response to your own call. Verify the signature, answer quickly, and make the handler safe to run twice.

- Quickstart: [Quickstart: webhooks](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-webhooks.md)
- Guide: [Webhook integration](https://devportal.signapay-sbx.winkpg.io/docs/guides/webhook-integration.md)
- Blueprint: [Receive and verify webhooks](https://devportal.signapay-sbx.winkpg.io/docs/blueprints/receive-and-verify-webhooks.md)

## Choosing how to collect the card

Three paths take a card online, and they differ far more in what you have to prove every year than in how much code they take to write.

| Path | Who renders the card fields | What it means for your scope | Record of the payment | Start with |
| --- | --- | --- | --- | --- |
| Hosted payment page | We do, on a page we serve. Your checkout redirects to it, or embeds it in an iframe. | Smallest of the three. No system of yours transmits, processes or stores the card number, and the single-use session address is the only capability the browser holds. | The webhook. A payer who closes the tab after paying never reaches your redirect. | [Quickstart: hosted payment page](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-hosted-payment-page.md) |
| Embedded payment fields | We do, inside a frame your page mounts and cannot read. The payer stays on your checkout and sees no redirect. | Your page never receives the card number, and nothing in it authenticates. Your checkout page itself stays in scope for the scripts it loads beside the frame. | The webhook. The browser lifecycle event is for display only. | [Quickstart: embedded payments SDK](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-embedded-payments-sdk.md) |
| Direct API | You do. The card number reaches your own servers before they send it to us. | Largest of the three. Every system the card number passes through is in scope, including logs, queues and backups. | The charge response tells you the outcome, and the webhook is still the durable record. | [Quickstart: direct API](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-direct-api.md) |

For what each path means for your annual evidence, walk the integration-method decision guide. For how an embedded payment session differs from an older in-page card script, read the comparison guide.

## Start here

One short path per integration route, from nothing to a working call. Pick the one that matches how you want to collect the payment.

- [Quickstart: Direct API](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-direct-api.md): Authenticate with an API key and take your first card payment over the WinkPG API.
- [Quickstart: Hosted payment page](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-hosted-payment-page.md): Create a hosted page, open a session for one payment, and send the payer to it without card data touching your server.
- [Quickstart: Embedded payments SDK](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-embedded-payments-sdk.md): Mount the WinkPG payment form inside your own checkout page with the browser loader.
- [Quickstart: Webhooks](https://devportal.signapay-sbx.winkpg.io/docs/guides/quickstart-webhooks.md): Stand up an endpoint that verifies a WinkPG delivery signature, register it, and receive your first event.

## See also

- [All documentation](https://devportal.signapay-sbx.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
