# Docs

- API Reference: Guides and endpoint reference for the High Wire Payments API.
  - [API Reference](/docs/introduction)

  - **Guides**
  - [Introduction](/docs/introduction): What the High Wire merchant API does, the environments it runs in, how a request looks, and where each guide fits.
  - [Authentication](/docs/authentication): HTTP Basic credentials for the merchant API, how they are issued, scoped and rotated, and the exact 401 and 403 responses.
  - [Make your first payment](/docs/make-your-first-payment): Charge a test card on staging, read the payment back, and refund it, in three calls.
  - [Card payments](/docs/card-payments): Charge cards from your server: authorize and capture in one call, authorize then capture or void, 3-D Secure, device data, and every decline.
  - [Hosted checkout](/docs/hosted-checkout): Create a payment link from your server, hand it to the shopper, and confirm the payment before you fulfil the order, with no card data and no browser code on your side.
  - [Saved payment methods](/docs/saved-payment-methods): Save a card during a charge, then charge it again with the customer present, within the bounds of the payment that saved it.
  - [Refunds](/docs/refunds): Refund a captured payment in full or in part, read the refund's own status, and know what a dispute does to refunds.
  - [Payment lifecycle](/docs/payment-lifecycle): Retrieve a payment with its full history, understand every status it can have, and poll for the outcome of asynchronous steps.
  - [Account limits](/docs/account-limits): The volume caps and velocity checks High Wire can enforce on an account, and exactly what the API answers when one is hit.
  - [Idempotency key](/docs/idempotency-key): Retry writes safely with the Idempotency-Key header: scope, replays, the 409 and 422 answers, and the rule for 5xx.
  - [Errors and conventions](/docs/errors-and-conventions): Every request convention, HTTP status code, response body shape and retry rule of the merchant API.

  - **API Reference**
  - Payments
    - [Authorize a payment](/docs/gateway-payments/payments/auth_v1): Authorizes the requested amount and leaves the payment in the AUTHORIZED state for later capture or void. The request can optionally save the payment method for future use. When the issuer requires 3-D Secure, the call returns 201 with status REQUIRES_ACTION and a nextAction redirect for the customer; the final state settles asynchronously (poll GET /payments/:id).
    - [Authorize and capture a payment](/docs/gateway-payments/payments/authAndCapture_v1): Authorizes and captures the requested amount in a single operation. The request can optionally save the payment method for future use. When the issuer requires 3-D Secure, the call returns 201 with status REQUIRES_ACTION and a nextAction redirect for the customer; the final state settles asynchronously (poll GET /payments/:id).
    - [Capture an authorized payment](/docs/gateway-payments/payments/capture_v1): Captures the full amount of a successful, uncaptured authorization. Partial captures are not supported, and a payment that is already captured or being voided cannot be captured.
    - [Charge a saved payment method](/docs/gateway-payments/payments/chargeSavedMethod_v1): Charges an active saved payment method again, with the customer present — an upsell after the checkout that saved it. The payment method must belong to the supplied customer and authenticated merchant. Every reuse is bounded by the card, whichever of its ids is charged (a checkout that saves a card again may return a new one): accepted for 24 hours after the card was first saved (never extended), at most 2 approved reuses per card (in-progress ones included; a decline does not count) and at most 5 attempts in all, counted together with reuses through the SDK, each for at most the amount of the payment that first saved the card; a reuse outside those bounds answers 409 with a `reason` and charges nothing. The gateway finds the payment that first saved the card itself. Depending on how your account processes payments, the charge either captures immediately (response status CAPTURED) or is accepted and collected asynchronously (response status PENDING — the payment settles to CAPTURED or DECLINED shortly after; follow it with GET /payments/{paymentId}). An issuer that asks for authentication declines the reuse (`Additional authentication required`): this flow has no way to show a challenge.
    - [Create a hosted checkout link](/docs/gateway-payments/payments/createCheckoutSession_v1): Creates a checkout for the supplied cart and returns the link to the page HighWire hosts for it. The total is computed here: the line items plus shipping and tax, minus the discount. Whoever holds the link can pay, on any device, until expiresAt, so hand it only to the shopper. It is returned once: a replay under the same Idempotency-Key answers without checkoutUrl, and POST /payments/{paymentId}/checkout-session/link issues a new one. Creating the link takes no money and checks none of your limits; the amount counts against them once the payment is captured. The payment settles asynchronously (poll GET /payments/{paymentId}). Answers 400 with code HW_UNSUPPORTED when hosted checkout is not enabled for the account.
    - [Retrieve a payment](/docs/gateway-payments/payments/getPayment_v1): Returns the authenticated merchant's payment with status, amount totals, payment-method details, and transaction and refund history. Payments owned by another merchant are not returned.
    - [Refund a captured payment](/docs/gateway-payments/payments/refund_v1): Refunds a successfully captured payment. Provide an amount for a partial refund, or omit it to refund the entire remaining refundable balance; cumulative refunds cannot exceed the captured amount.
    - [Reissue a hosted checkout link](/docs/gateway-payments/payments/reissueCheckoutLink_v1): Returns a new link for a hosted checkout that can still be paid and has not expired, and revokes the previous link at once: PENDING, REQUIRES_ACTION (a verification to resume), or DECLINED with a retry left (an issuer decline under the attempt limit). Use it when the link was lost (it is shown only once) or may have leaked; a payment already in progress on the old page (a wallet confirmation, for example) can still complete. The expiry does not change. Not idempotent: every call issues a new link, and an Idempotency-Key header is ignored.
    - [Void an authorized payment](/docs/gateway-payments/payments/void_v1): Cancels an in-flight or authorized, uncaptured payment for its full amount. Captured payments cannot be voided and must be refunded instead.
- highwire.js: Browser library for checkout and device context.
  - [highwire.js](/docs/highwire-js): Collect browser and checkout context for HighWire direct-API payments.
  - [Overview](/docs/highwire-js)
  - [Getting started](/docs/highwire-js/getting-started): Add highwire.js to a checkout and perform the first browser-context collection.
  - [Integration](/docs/highwire-js/integration): Collect, observe, and forward deviceData through a HighWire direct-API checkout.
  - [Device data](/docs/highwire-js/device-data): Understand the deviceData payload, collected signals, limits, and failure behavior.
  - [API reference](/docs/highwire-js/api-reference): Reference for the current highwire.js factory and instance methods.
  - [Security and privacy](/docs/highwire-js/security-and-privacy): Review the PCI boundary, browser data access, network requests, CSP, SRI, and browser support.
  - [Troubleshooting](/docs/highwire-js/troubleshooting): Diagnose common highwire.js loading, collection, paste-tracking, and payload problems.
  - Guides
    - [Plain HTML and JavaScript](/docs/highwire-js/guides/plain-html): Add highwire.js to an existing plain HTML checkout with a self-hosted UMD build.
    - [React and Next.js](/docs/highwire-js/guides/react-nextjs): Integrate highwire.js in client-rendered React and Next.js checkout components.
- Payment SDK: Browser checkout with Payment SDK 0.7.0.
  - [Payment SDK](/docs/payment-sdk): Accept browser payments with the HighWire Payment SDK 0.7.0.
  - [Overview](/docs/payment-sdk)
  - [Integration guide](/docs/payment-sdk/integration): Initialize Payment SDK 0.7.0, mount checkout, and handle results and retries.
  - [API Reference](/docs/payment-sdk/api-reference): Every public checkout method, parameter, callback, result, and error in Payment SDK 0.7.0.
  - [Drop-in & wallets](/docs/payment-sdk/drop-in-and-wallets): Understand gateway-selected layouts, wallet setup, and styling in Payment SDK 0.7.0.
  - [Security & server verification](/docs/payment-sdk/authentication): Protect credentials, bind payments to orders, and verify payment status on your server.
  - [Device screening for Direct API charges](/docs/payment-sdk/device-screening): Get the device-session key and browser context for a charge your backend sends through the Direct API.
  - Guides
    - [Plain HTML](/docs/payment-sdk/guides/plain-html): Add Payment SDK 0.7.0 to a browser checkout using the CDN build.
    - [React / Next.js](/docs/payment-sdk/guides/react-nextjs): Use Payment SDK 0.7.0 in a client component with explicit payment entry and cleanup.