Purchase Gift Card

Create a Gift Card or subscription voucher order after reviewing Gift Card Quote. A valid new purchase debits your Pay2New wallet and can issue real vouchers. Send requests from your registered backend, not from the documentation page.

Request body

FieldTypeRequiredDescription
request_idstringYes8–30 characters: letters, digits, _ or -. Unique in your account across environments and transaction services. Preserve it throughout retries.
product_codeintegerYesCurrent Pay2New product code returned by List Gift Card Brands.
denomination_detailsarrayYes1–100 denomination/quantity entries. All current brand limits still apply.
denomination_details[].denominationnumberYesPositive amount in INR, with at most 2 decimal places. Select an allowed fixed value or stay within the flexible voucher range.
denomination_details[].quantityintegerYesPositive integer, at most 1000 per submitted entry, and within the brand's quantity limits. Duplicate denominations are merged before validation.
customer_detailsobjectYesCustomer details for the order.
customer_details.namestringYes2–50 Unicode letters/spaces. Numbers and punctuation are not accepted.
customer_details.phonestringYesIndian mobile: exactly 10 digits beginning with 6–9; omit country code and spaces.
customer_details.emailstringNoValid email of at most 100 characters. Omit or send empty to use the system default.
amountnumberNoIf supplied, it must equal the sum of denomination × quantity.
expected_wallet_debitnumberRecommendedExact data.wallet_debit from the reviewed quote. A changed debit is rejected before creating a new purchase/debit.

For FIXED brands, select from meta.amountRestrictions.denominations. For FLEXIBLE brands, stay between minVoucherAmount and maxVoucherAmount. In both cases, follow minOrderAmount, maxOrderAmount, maxVouchersPerOrder, maxVouchersPerDenomination and maxDenominationsPerOrder when present. The catalogue can change; refresh brand details before forming an order.

The example uses a catalogue product code observed when this documentation was prepared. Replace it with the current code and current limits returned to your account. Examples and monetary values are illustrative, not fixed commercial terms.

Idempotency

Use the same request_id and the same normalized purchase details after a timeout. An existing matching order is returned without another debit. A changed payload with the same ID is rejected. Use a new ID only for a deliberate separate purchase, after resolving any earlier uncertain result. Request IDs cannot be reused across environments or other Pay2New transaction services.

The server validates active account/KYC/wallet, package/slab settings, current brand rules and sufficient available wallet balance. A successful quote alone does not guarantee the purchase.

Result handling

JSON resultMeaningAction
status: 1 with an order responseSuccessful purchase with validated vouchers.Record completion once and securely deliver/display the returned credentials.
status: 2 with gift_order_id and a failed/reversed orderConfirmed failure/reversal with the Pay2New wallet refund recorded.Record the failed/refunded result. A deliberate new purchase needs a new request ID.
status: 3 or needs_review: trueProcessing, unresolved confirmation or manual review required.Keep the original references. Check the same order; do not create a replacement purchase.
status: 2 with only messageAuthentication, validation, activation, account, IP or lookup error.Correct the reported issue. A lookup error is not evidence that an existing order failed or was refunded.

HTTP success alone does not establish purchase success. Match request_id, gift_order_id and order_id; read the numeric JSON status. order_status adds context and may be UNSUBMITTED, UNKNOWN, PROCESSING, SUCCESS, FAILED, REVERSED or CANCELLED. A cancellation may remain unresolved until the refund is confirmed. Use the numeric result and needs_review to decide the client state.

Response fields

FieldTypeDescription
statusinteger1 success, 2 failure/refund or a request error, 3 processing/unresolved.
messagestringHuman-readable result; do not branch on exact wording.
gift_order_idintegerPay2New Gift Card order ID. Use it or request_id for status lookup.
order_idstringPay2New transaction ID. This is not a status lookup input for this API.
request_idstringYour original idempotency reference.
order_statusstringDetailed order state.
environmentstringproduction for live orders; historical test orders may return uat.
product_codeintegerPay2New product code from the catalogue.
amountdecimal stringTotal face value.
wallet_debitdecimal stringWallet debit stored for this order.
commission, surcharge, tds, gstdecimal stringsStored amounts for this order; not percentage rates.
balancedecimal stringWallet balance at the time this response was assembled; it can change with other transactions.
needs_reviewbooleanIf true, the result is unresolved and needs reconciliation.
vouchersarrayIssued credentials on confirmed success; otherwise empty.

Voucher credentials

cardTypeRequired redemption fields
CARD_NUMBER_SECUREDcardNumber
PIN_NO_SECUREDcardPin
CARD_AND_PIN_NO_SECUREDBoth cardNumber and cardPin

id, amount and brand-supplied validTill describe each issued voucher. Do not assume both credentials exist for every brand. Vouchers are returned in the response only after validated success; handle customer delivery in your own application. This endpoint does not send SMS, email or WhatsApp delivery.

On a network timeout or status: 3, begin checking the original order after one minute, then use controlled intervals/backoff. Do not create a replacement order. A confirmed failed/reversed order is refunded through the existing Pay2New wallet flow. Cancellation or timeout alone does not confirm a refund.

Response examples

Illustrative values only. Always inspect the numeric JSON status and matching order references.

Processing order

{
  "status": 3,
  "gift_order_id": 123,
  "order_id": "P2F_SAMPLE_ORDER",
  "request_id": "GC_PARTNER_20261016_0001",
  "order_status": "PROCESSING",
  "environment": "production",
  "product_code": 1004489,
  "message": "Gift Card order is processing.",
  "amount": "1000.0000",
  "wallet_debit": "985.3000",
  "commission": "15.0000",
  "surcharge": "0.0000",
  "tds": "0.3000",
  "gst": "0.0000",
  "balance": "4014.7000",
  "needs_review": false,
  "vouchers": []
}

Successful order

{
  "status": 1,
  "gift_order_id": 123,
  "order_id": "P2F_SAMPLE_ORDER",
  "request_id": "GC_PARTNER_20261016_0001",
  "order_status": "SUCCESS",
  "environment": "production",
  "product_code": 1004489,
  "message": "Gift Card generated.",
  "amount": "1000.0000",
  "wallet_debit": "985.3000",
  "commission": "15.0000",
  "surcharge": "0.0000",
  "tds": "0.3000",
  "gst": "0.0000",
  "balance": "4014.7000",
  "needs_review": false,
  "vouchers": [
    {
      "id": "SAMPLE_VOUCHER_001",
      "cardType": "CARD_AND_PIN_NO_SECURED",
      "amount": 1000,
      "validTill": "2027-10-15",
      "cardNumber": "EXAMPLE_CARD_NUMBER",
      "cardPin": "EXAMPLE_CARD_PIN"
    }
  ]
}

Failed and refunded

{
  "status": 2,
  "gift_order_id": 123,
  "order_id": "P2F_SAMPLE_ORDER",
  "request_id": "GC_PARTNER_20261016_0001",
  "order_status": "FAILED",
  "environment": "production",
  "product_code": 1004489,
  "message": "Gift Card order failed/reversed; wallet refunded.",
  "amount": "1000.0000",
  "wallet_debit": "985.3000",
  "commission": "15.0000",
  "surcharge": "0.0000",
  "tds": "0.3000",
  "gst": "0.0000",
  "balance": "5000.0000",
  "needs_review": false,
  "vouchers": []
}

Review required

{
  "status": 3,
  "gift_order_id": 123,
  "order_id": "P2F_SAMPLE_ORDER",
  "request_id": "GC_PARTNER_20261016_0001",
  "order_status": "PROCESSING",
  "environment": "production",
  "product_code": 1004489,
  "message": "Gift Card service confirmation requires review.",
  "amount": "1000.0000",
  "wallet_debit": "985.3000",
  "commission": "15.0000",
  "surcharge": "0.0000",
  "tds": "0.3000",
  "gst": "0.0000",
  "balance": "4014.7000",
  "needs_review": true,
  "vouchers": []
}

Price changed

{
  "status": 2,
  "message": "The wallet price has changed. Review the order again."
}

Headers

HeaderRequiredDescription
secretYesYour Pay2New-issued partner API secret.
Content-TypeFor JSON POST requestsapplication/json
AcceptRecommendedapplication/json

Your account, KYC, wallet, API access and Gift Card service must be active. Send requests from your registered backend IP. No outletId, browser session, or separate subscription credential is required by these endpoints.

cURL request

curl --request POST \
  --url 'https://pay2new.in/apis/v1/giftcards/orders' \
  --header 'secret: YOUR_PAY2NEW_SECRET' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
  "request_id": "GC_PARTNER_20261016_0001",
  "product_code": 1004489,
  "denomination_details": [
    {
      "denomination": 1000,
      "quantity": 1
    }
  ],
  "customer_details": {
    "name": "Sample Customer",
    "phone": "9000000001",
    "email": "[email protected]"
  },
  "expected_wallet_debit": 985.3
}'
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required
length between 8 and 30
^[A-Za-z0-9_-]{8,30}$

Stable unique request reference.

integer
required
≥ 1
denomination_details
array of objects
required
length between 1 and 100
denomination_details*
number
required
≥ 0.01

INR voucher face value, at most two decimal places.

integer
required
1 to 1000

Subject to stricter brand limits.

customer_details
object
required
number
≥ 0.01

Optional exact denomination total.

number
≥ 0

Optional wallet_debit from the reviewed quote. A changed price rejects the order before a new debit.

Response

Language
Credentials
Header
LoadingLoading…
Response
Choose an example:
application/json