---
title: "Sendcustomerotp"
method: POST
path: "/v2/giftcards/customers/otp/send"
tags: ["Gift Card Customers"]
---

# Sendcustomerotp

`POST /v2/giftcards/customers/otp/send`

### Send OTP to Customer

Generate and send a one-time password to a customer's email or phone number.
The OTP is stored in Redis with a 5-minute expiry.

**Rate Limiting**:
- Maximum 5 requests per hour per target
- Maximum 10 requests per day per target

**Security**:
- OTP codes are 6 digits, cryptographically secure
- Codes expire after 5 minutes
- Maximum 3 verification attempts per code
- OTP codes are never returned in production (only in dev/test mode)

**Request Body**:
- `target`: Email address or phone number

**Status Codes**:
- 200: OTP sent successfully
- 400: Invalid target format
- 429: Rate limit exceeded

## Request body

- SendOTPRequest — Request to send an OTP to an email or phone number.
  - `target` string, required — Email address or phone number to send OTP to

## Response `200`

Successful Response

- SendOTPResponse
  - `success` boolean, required
  - `message` string, nullable
  - `error` string, nullable
  - `otpType` string, nullable
  - `mockCode` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/loyalty/apis/loyaltydog.md) · [All operations](https://skmtc.net/loyalty/apis/loyaltydog/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/loyalty/loyaltydog/revisions/42b7b22af2b6/schema)
