Skip to main content
POST
/
v2
/
loyalties
/
programs
/
{programId}
/
members
/
{memberId}
/
orders
/
payments
Pay for an order with points
curl --request POST \
  --url {protocol}://{host}/v2/loyalties/programs/{programId}/members/{memberId}/orders/payments \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-App-Id: <api-key>' \
  --header 'X-App-Token: <api-key>' \
  --data '
{
  "card_id": "<string>",
  "order": {
    "id": "<string>",
    "source_id": "<string>"
  },
  "payment_limit": {
    "points_limit": {
      "max": 2
    },
    "amount_limit": {
      "max": 2
    }
  }
}
'
{
  "transaction": {
    "id": "<string>",
    "program_id": "<string>",
    "member_id": "<string>",
    "card_id": "<string>",
    "card_definition_id": "<string>",
    "card_transaction_id": "<string>",
    "order_id": "<string>",
    "type": "PAY_WITH_POINTS",
    "details": {
      "reason": "<string>",
      "rejection": {
        "reason": "<string>",
        "details": "<string>"
      },
      "metadata": {
        "amount_limit": 123,
        "points_limit": 123
      },
      "payment": {
        "id": "<string>",
        "amount": 123,
        "points_spent": 123,
        "exchange_ratio": 123
      }
    },
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "object": "<string>"
  },
  "message": "<string>"
}
{
  "transaction": {
    "id": "<string>",
    "program_id": "<string>",
    "member_id": "<string>",
    "card_id": "<string>",
    "card_definition_id": "<string>",
    "card_transaction_id": "<string>",
    "order_id": "<string>",
    "type": "PAY_WITH_POINTS",
    "details": {
      "reason": "<string>",
      "rejection": {
        "reason": "<string>",
        "details": "<string>"
      },
      "metadata": {
        "amount_limit": 123,
        "points_limit": 123
      },
      "payment": {
        "id": "<string>",
        "amount": 123,
        "points_spent": 123,
        "exchange_ratio": 123
      }
    },
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "object": "<string>"
  },
  "message": "<string>"
}
{
  "code": 123,
  "key": "<string>",
  "message": "<string>",
  "details": "<string>",
  "request_id": "<string>"
}
{
  "code": 123,
  "key": "<string>",
  "message": "<string>",
  "details": "<string>",
  "request_id": "<string>"
}
{
  "code": 123,
  "key": "<string>",
  "message": "<string>",
  "details": "<string>",
  "request_id": "<string>"
}
{
  "code": 123,
  "key": "<string>",
  "message": "<string>",
  "details": "<string>",
  "request_id": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

X-App-Id
string
header
required
X-App-Token
string
header
required

Path Parameters

programId
string
required

Unique loyalty program identifier (format: lprg_ followed by hexadecimal characters).

memberId
string
required

Program member ID (format lmbr_[a-f0-9]+).

Pattern: ^lmbr_[a-f0-9]+$

Body

application/json

Request body for paying for an order with points.

card_id
string
required

Identifier of the member's loyalty card to spend points from (format lcrd_...).

order
object
required

Reference to the order being paid. At least one of id or source_id must be provided.

payment_limit
object

Optional payment limit. When omitted, the default CARD_BALANCE limit is applied (spend up to the card balance).

mode
enum<string> | null

Payment mode. TRANSACTION creates a PENDING order transaction processed asynchronously (HTTP 202). DRY_RUN only simulates the payment and returns the calculation result (HTTP 200); no transaction is created. Defaults to TRANSACTION when omitted or null.

Available options:
TRANSACTION,
DRY_RUN

Response

Dry run result (mode DRY_RUN). No transaction was created; the returned transaction has status SIMULATED and no id.

Result of a pay-with-points request.

transaction
object | null

The created (or simulated) order transaction.

status
enum<string>

Result status. TRANSACTION_CREATED for TRANSACTION mode, DRY_RUN for dry-run mode.

Available options:
TRANSACTION_CREATED,
DRY_RUN
message
string

Human-readable result message. TRANSACTION mode: "Pay with points transaction created". DRY_RUN mode: "Dry run mode. No transaction was created. This is only a simulation.".

Last modified on July 9, 2026