Skip to main content
POST
Upload Payment Verification Details

Overview

The Upload Payment Verification Details endpoint allows you to upload payment verification details for a payment. This updates the associated order with the provided information and uploads the verification details to the payment gateway. Use this endpoint when you receive a PAYMENT_DETAILS_MISSING webhook and need to supply missing verification fields.

Test Data

When testing this API in the sandbox environment, you must use the following specific test values for the API to work correctly:
  • buyer_name: John
  • buyer_postal_code: 560034
  • product_description: This is a test product for test purpose.

📚 Test Data Reference

View all test data – Complete test data guide for sandbox testing.

Authorizations

X-Client-ID
string
header
required

Client Application ID - Your unique application identifier used to authenticate API requests. You can find your Client ID in the Developer Settings section of the merchant dashboard.

X-Client-Secret
string
header
required

Client Secret Key - Your secret key used alongside the Client ID for secure authentication. Keep this confidential and never expose it in client-side code. Available in the Developer Settings section of the merchant dashboard.

X-Merchant-ID
string
header
required

Merchant Identifier - The unique ID for the merchant account. This is required for PSP (Payment Service Provider) merchants who manage multiple merchant accounts. You can find merchant IDs in the Merchant Management section of the dashboard.

X-API-Version
string
header
required

API Version - Specifies which version of the API to use (e.g., '1.X.X', '2.X.X', or '3.X.X'). This header allows you to control which API version your integration uses. Default version information is available in the Developer Settings.

Path Parameters

uid
string
required

UID of the payment for which to upload verification details.

Body

application/json
buyer_name
string
required

Name of the buyer/importer.

Maximum string length: 255
type_of_goods
enum<string>
required

Type of goods.

Available options:
GOODS,
PHYSICAL_GOODS,
DIGITAL_GOODS,
SERVICE
product_description
string
required

Description of the product/goods.

buyer_address
string
required

Buyer's address.

invoice_number
string
required

Invoice number.

Maximum string length: 255
buyer_postal_code
string
required

Buyer's postal/ZIP code.

Maximum string length: 10
hs_code
string

HS code. Required when type_of_goods is GOODS, PHYSICAL_GOODS, or DIGITAL_GOODS; optional for SERVICE.

Maximum string length: 30
purpose_code
string

FEMA/FETERS purpose code this order settles under. Send it when VERIFICATION_NEEDED lists purpose_code in action_required_fields. Must be one your merchant account is enabled for — an unrecognised or un-enabled code is a 400, not a stored value. Omit it to leave whatever was already declared untouched.

Maximum string length: 255
Example:

"S0305"

business_model
enum<string>

Whether the buyer is a business (B2B) or a consumer (B2C). Send it when VERIFICATION_NEEDED lists business_model in action_required_fields. Sending it is what makes it declared — the field defaults to B2C, so an order nobody classified is indistinguishable from one that genuinely is B2C until you say so. Omit it to leave an earlier declaration untouched.

Available options:
B2C,
B2B
Example:

"B2C"

Response

Payment verification details uploaded successfully; order updated.

success
boolean
message
string
data
object