---
title: "Upload manual coupons file"
method: POST
path: "/v2/reward-suppliers/manual-coupons/{reward_supplier_id}/coupons"
tags: ["Reward Suppliers"]
---

# Upload manual coupons file

`POST /v2/reward-suppliers/manual-coupons/{reward_supplier_id}/coupons`

## Request

- Base URL: `https://api.extole.io`
- URL: `https://api.extole.io/v2/reward-suppliers/manual-coupons/{reward_supplier_id}/coupons`
- Auth: one of:
  - API key in header `Authorization`
  - API key in query parameter `access_token`
  - API key in cookie `extole_token`
- TypeScript: <https://skmtc.dev/extole/apis/integration-api-server-to-extole/docs/v2/reward-suppliers/manual-coupons/:reward_supplier_id/coupons/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads a coupon code file (CSV or text) to the manual coupon supplier's pool.

## Path parameters

- `reward_supplier_id` string, required

## Query parameters

- `allow_restricted_characters` boolean
- `allow_expired` boolean
- `discard_duplicated` boolean
- `default_expiry_date` string: [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.

## Request body `multipart/form-data`

- object
  - `file` FormDataContentDisposition
    - `creationDate` string, date-time
    - `fileName` string
    - `modificationDate` string, date-time
    - `name` string
    - `parameters` object
    - `readDate` string, date-time
    - `size` integer
    - `type` string

## Response `200`

Successful response

- ManualCouponRewardSupplierOperationResponse
  - `coupons` string[], required
  - `created_at` string, required: [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.
  - `filename` string, nullable, required
  - `id` string, required
  - `number_of_coupons_to_upload` integer, required
  - `operation_type` 'COUPON_DELETE' | 'COUPON_UPLOAD', required
  - `request_message` string, required
  - `result_message` string, required
  - `reward_supplier_id` string, required
  - `status` 'FAILED' | 'SUCCESS', required
  - `uploaded_coupons` ManualCouponUploadResponse[], required
    - `coupon_code` string
    - `expires_at` string: [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `415`: Unsupported Media Type
- `429`: Too Many Requests

---

[API](https://skmtc.dev/extole/apis/integration-api-server-to-extole.md) - [All operations](https://skmtc.dev/extole/apis/integration-api-server-to-extole/llms.txt) - [OpenAPI document](https://skmtc.dev/extole/apis/integration-api-server-to-extole/revisions/c16e62e66755?raw)
