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
| Field | Type | Required | Description |
|---|---|---|---|
toProfileId | integer (int32) | Yes | The profile ID of the recipient customer who will receive the transferred points. |
points | integer (int32) | Yes | Number of reward points to transfer. Minimum: 100. Maximum: 2147483647. |
oneTimeCode | string | Yes | One-time authentication code (OTP) used to authorize this transfer. Must not be empty. |
secureOperationType | string (enum) | Yes | The 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
| Code | When it happens |
|---|---|
| 400 | Missing required fields, points below minimum (100) or above maximum, empty oneTimeCode, or invalid secureOperationType value |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions or the authenticated customer is not a business customer with rewards access |
| 404 | Recipient toProfileId does not exist or is not found |
| 500 | Internal server error |
Common Mistakes
- Providing a
pointsvalue 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
secureOperationTypethat does not match how the OTP was generated — ensure the enum value aligns with your OTP delivery method (e.g.,ShortMessageCodefor 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 balancePOST /api/UsersReward/Redeem— Redeem reward points to a financial accountPOST /api/auth/v2— Obtain a Bearer token for authenticationPOST /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"
}' 200Success
