---
title: "Direct Sale Token"
method: POST
path: "/?saleToken"
---

# Direct Sale Token

`POST /?saleToken`

Direct sale with the card number. For AVS verification from the API, the fields sent should be based on the portal settings. If the setting is configured as “Address Only,” then only the address details should be sent in the address1 field. If the setting is configured as “ZIP Only,” then only the zip value should be sent in the zip property.

## Request body

- object
  - `appid` string, required — Merchant APP ID (Alphanumeric - Length of 32 chars and special chars $@%#)
  - `appkey` string, required — Merchant APP KEY (Alphanumeric - Length of 32 chars and special chars $@%#)
  - `epi` string, required — EPI is an end point identifier, Identify the device on valor infrastructure, it's a 10 digit number starts with 2
  - `txn_type` string, required — sale or auth ('sale' - Amount of the purchase will be deducted from the cardholder's bank account and 'auth' - it will be held (authorized) for a certain period of time/days)
  - `amount` string, required — Transaction amount - Maximum amount $99,999.99 (Ex: 0.1 to 99,999.99). A request should not be sent when the amount is 0. The amount must be greater than zero
  - `tax_amount` string — Tax amount - Currency $ (Eg. 00.00)
  - `token` string, required — Card token, received from sale use it only
  - `cardholdername` string — Name of the cardholder - Alphabet (Max length of 40 chars)
  - `invoicenumber` string, required — Invoicenumber is required if we pass order_details
  - `orderdescription` string — Add the order description - Optional (Alphanumeric - Max length of 50 chars)
  - `surchargeAmount` string — Additional fee of surcharge amount - Currency $ (Eg: 10.00)
  - `surchargeIndicator` string, required — The value '0' represents a transaction being ran on the traditional MID with no custom fee added, while '1' represents a transaction being ran on the cash discounting MID with the custom fee added
  - `phone` string — Customer phone number- 10 digit Numeric (Ex: 5247896523)
  - `address1` string — Address should be max 100 chars - Alphanumeric
  - `address` string
  - `shipping_country` string, required — Shipping country should be mention default set us US
  - `zip` string — Zip code should be 5 digits (Numeric - Ex: 10001, 90002)
  - `email` string — Customer email id - Varchar (Ex: test@domain.com, Max length of 50 chars)
  - `productIds` object[], required
    - `product_id` string — Product id should be numeric only
    - `qty` string — Product quantity
    - `modifierIds` object[]
      - `modifier_id` string — Modifier id should be numeric only
      - `qty` string — Modifier quantity
  - `discounts_id` string — Product discount id
  - `customer_name` string — Customer field must contain a maximum of 100 characters and may include only alphanumeric characters, #, and @.
  - `additional_prompts` object[] — Additional Inputs should be allowed max 25
    - `PROMPT_NAME` string — The prompt name should allow up to maximum 30 characters
    - `PROMPT_VALUE` string — The prompt value should allow up to maximum 30 characters
  - `vaultPaymentInfo` object
    - `customerProfileID` string — Vault customer profile id
    - `paymentProfileID` string — Vault customer payment profile id
  - `duplicate_transaction_check` integer — Either 0 or 1.
  - `avs` string — Address verification service (zip, street address - Numeric length of one chars)

## Response `200`

200

- object

## Other responses

- `400` — 400

---

[API](https://skmtc.net/valorpaytech/apis/ecommerce-api.md) · [All operations](https://skmtc.net/valorpaytech/apis/ecommerce-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/valorpaytech/ecommerce-api/revisions/c6468b606325/schema)
