Transfer points

Transfer Reward Points

This endpoint allows a business customer to transfer reward points directly to another Netevia customer. The operation requires a one-time security code (OTP) to authorize the transfer, ensuring that point gifting or sharing is protected against unauthorized use. Points are deducted from the sender's reward balance and credited to the recipient immediately upon success.

Endpoint

POST /api/UsersReward/Transfer

Authentication

Bearer token required. Obtain via:

POST https://api.banking.netevia.dev/api/auth/v2

Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.

When to use

Use this endpoint when a business customer wants to share or gift accumulated reward points with another Netevia customer. This is useful for reward-sharing programs, employee incentives, or promotional gifting workflows where a business distributes earned points to partners or clients. A valid OTP must be obtained and supplied before calling this endpoint to satisfy the secure operation requirement.

Request Body

FieldTypeRequiredDescription
toProfileIdinteger (int32)YesThe profile ID of the recipient customer who will receive the transferred points.
pointsinteger (int32)YesNumber of reward points to transfer. Minimum: 100. Maximum: 2147483647.
oneTimeCodestringYesOne-time authentication code (OTP) used to authorize this transfer. Must not be empty.
secureOperationTypestring (enum)YesThe verification method used to generate the OTP. Allowed values: ShortMessageCode, TimeBasedCode, LegacyTimeBasedCode.
{
  "toProfileId": 48291,
  "points": 500,
  "oneTimeCode": "847201",
  "secureOperationType": "ShortMessageCode"
}

Response

200 OK

A 200 response indicates the reward points were successfully transferred to the specified recipient. The response body for a successful transfer is empty (no JSON payload is returned).

{}

Error Codes

CodeWhen it happens
400Missing required fields, points below minimum (100) or above maximum, empty oneTimeCode, or invalid secureOperationType value
401Token missing, expired, or invalid
403Insufficient permissions or the authenticated customer is not a business customer with rewards access
404Recipient toProfileId does not exist or is not found
500Internal server error

Common Mistakes

  • Providing a points value below the minimum of 100 — the API will reject any transfer request for fewer than 100 points.
  • Submitting an expired or already-used oneTimeCode — OTPs are single-use and time-limited; always generate a fresh code immediately before calling this endpoint.
  • Using an incorrect secureOperationType that does not match how the OTP was generated — ensure the enum value aligns with your OTP delivery method (e.g., ShortMessageCode for SMS-based codes).
  • Attempting to transfer points as a personal customer — reward transfers are available to business customers only.

Related Endpoints

  • GET /api/UsersReward — Retrieve the authenticated customer's current reward points balance
  • POST /api/UsersReward/Redeem — Redeem reward points to a financial account
  • POST /api/auth/v2 — Obtain a Bearer token for authentication
  • POST /api/auth/refresh — Refresh an existing Bearer token

Example

curl -X POST https://api.banking.netevia.dev/api/UsersReward/Transfer \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "toProfileId": 48291,
    "points": 500,
    "oneTimeCode": "847201",
    "secureOperationType": "ShortMessageCode"
  }'
Body Params
int32
required
int32
required
100 to 2147483647
string
required
length ≥ 1
string
enum
required
Allowed:
Headers
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Response
200

Success

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here!