API ReferenceCharges

Create a charge

Create a standalone charge for a payment or a free claim.

Create a standalone charge for a payment or a free claim.

Pass locale or language to control the hosted checkout language. For example, pt-BR is stored as pt_BR on the created charge.

For custom payments, send payment_method: "CUSTOM_PAYMENT_METHOD" with custom_payment_method_id, or include CUSTOM_PAYMENT_METHOD in payment_methods and let the customer select. use_all_payment_methods: true includes usable custom methods. Optionally send custom_payment_method_ids to limit the choices; omit it to save the store's currently usable IDs. IDs must belong to this store and identify enabled, usable methods. Product assignments do not apply.

A returned charge is not proof of payment. Custom-payment confirmation or proof submission changes the state to REVIEW; verify receipt before approving the charge. Ordinary charge coupons and custom-method adjustments can change the amount due. Wallet top-ups start in the customer portal and do not apply these adjustments; metadata.wallet remains prohibited here.

POST
/v2/charges

Authorization

AuthorizationBearer <token>

Provide your SellApp API key as a bearer token.

In: header

Header Parameters

X-STORE?string

Store slug. Required for OAuth access tokens. API keys may omit it to use their current store, or the first accessible store when no current store is selected.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://sell.app/api/v2/charges" \  -H "X-STORE: launch-lab" \  -H "Content-Type: application/json" \  -d '{    "email": "sofia.rivera@example.com",    "return_url": "https://example.com/launch-complete",    "currency": "USD",    "total": 10000,    "payment_method": "PAYPAL",    "reference": "One more thing launch"  }'

default

{
  "data": {
    "id": 1,
    "url": "https://sell.app/store/charges/select/1?signature=...",
    "status": "PENDING",
    "custom_payment_method_id": null
  }
}

customPreselected

{
  "data": {
    "id": 1,
    "url": "https://sell.app/store/charges/select/1?signature=...",
    "status": "PENDING",
    "custom_payment_method_id": "01J00000000000000000000001"
  }
}

customChoices

{
  "data": {
    "id": 1,
    "url": "https://sell.app/store/charges/select/1?signature=...",
    "status": "PENDING",
    "custom_payment_method_id": null
  }
}
{
  "type": "invalid_request_error",
  "code": "bad_request",
  "message": "The request could not be understood.",
  "status": 400,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#bad-request"
}
{
  "type": "authentication_error",
  "code": "unauthenticated",
  "message": "Unauthenticated.",
  "status": 401,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#unauthenticated"
}
{
  "type": "authorization_error",
  "code": "forbidden",
  "message": "This action is unauthorized.",
  "status": 403,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#forbidden"
}
{
  "type": "validation_error",
  "code": "validation_failed",
  "message": "The selected product variant id is invalid.",
  "status": 422,
  "param": "product_variant_id",
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#validation-failed",
  "errors": {
    "product_variant_id": [
      "The selected product variant id is invalid."
    ]
  }
}
{
  "type": "rate_limit_error",
  "code": "rate_limit_exceeded",
  "message": "Too Many Attempts.",
  "status": 429,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#rate-limit-exceeded"
}
{
  "type": "api_error",
  "code": "api_error",
  "message": "Server Error",
  "status": 500,
  "param": null,
  "request_id": "01992a65-e064-71ba-b38f-902b7966a6be",
  "docs_url": "https://sell.app/docs/api/errors#api-error"
}