Skip to content
Last updated

This guide explains how to work with the charge model after a successful Checkout SDK authorization.

Use this guide if your checkout success flow returns a charge_id instead of an order_id.

Note: Charge management is available through both the Resolve dashboard and the Merchant API. Use the dashboard if you want manual operational control, or the API if you want to automate these actions in your OMS or fulfillment workflows.

After checkout success

When checkout completes successfully in the charge model, Resolve redirects the customer to your success_url with a charge_id query parameter:

https://www.merchantsite.com/confirm?charge_id=czTrT9opfkBaYZNh

Store the charge_id in your order management system. You will use it to fetch, capture, update, or cancel the authorization.

For the shared checkout lifecycle, see Online Transaction Flow.

Charge lifecycle

A charge starts as an authorization. From there, you can:

  • fetch the charge
  • update charge details before capture
  • capture the charge when ready to fulfill
  • cancel the charge if it will not be fulfilled

The charge model is best suited for a simpler single-authorization flow.

Fetch a charge

Use this when you need the latest state before acting on the charge.

Key fields to monitor:

  • captured
  • captured_at
  • canceled
  • canceled_at
  • amount
  • amount_refunded

API reference:

Update a charge

Use this before capture if you need to adjust the charge details.

Common update fields:

  • amount
  • invoice_url
  • order_number
  • po_number
  • metadata

Payload guidance:

FieldRequiredNotes
amountNoUpdated charge amount.
invoice_urlNoPublic URL to the invoice PDF.
order_numberNoMerchant order reference.
po_numberNoPurchase order reference.
metadataNoCustom metadata stored on the charge.

Example:

{
  "amount": 1000,
  "invoice_url": "https://example.com/invoices/inv-1001.pdf",
  "order_number": "ORD-1001",
  "po_number": "PO-1001"
}

API reference:

Capture a charge

Capture the charge when you are ready to receive funds and start the customer's billing clock.

EnvironmentEndpoint
ProductionPOST https://app.resolvepay.com/api/charges/<charge_id>/capture
SandboxPOST https://app-sandbox.resolvepay.com/api/charges/<charge_id>/capture

Payload guidance:

FieldRequiredNotes
amountNoIf omitted, Resolve captures the full authorized amount.
order_numberNoOptional order number override applied during capture.
po_numberNoOptional PO number override applied during capture.

Example:

{
  "amount": 1000,
  "order_number": "ORD-1001",
  "po_number": "PO-1001"
}

API reference:

Cancel a charge

Cancel the charge if the order will not be fulfilled.

EnvironmentEndpoint
ProductionPOST https://app.resolvepay.com/api/charges/<charge_id>/cancel
SandboxPOST https://app-sandbox.resolvepay.com/api/charges/<charge_id>/cancel

The charge must not have been previously captured to be eligible for cancellation.

Cancelled charges remain visible in the Resolve merchant dashboard when filtering for "All" invoices. You can archive the invoice to hide cancelled charges from the dashboard.

API reference:

Refunds after capture

After a charge has been captured, refunds or reversals should be handled against the resulting invoice by issuing a credit note.

Payload guidance for credit notes:

FieldRequiredNotes
invoice_idYesThe captured invoice you want to refund or reduce.
amountYesCredit note amount.
reason_codeYesReason for the refund or adjustment.
numberNoMerchant credit note number.
reason_messageNoAdditional explanation.
credit_note_urlNoPublic URL to the credit note PDF.

API reference:

For legacy integrations, see the v2 API documentation.

Use either HTTP Basic Auth (merchant_id + secret_key) or Bearer token auth.

For production credential setup and authentication configuration, see the Direct API Access and Authentication guide.