⚡ Nepal's #1 affiliate commerce network — earn up to 18% commission. Join free →
Influencemart
Become an Affiliate

Developers

CSV import

The no-code fallback to the API. If you can export a spreadsheet but can't (yet) sign API requests, upload products, conversions and order-status updates as CSV files.

CSV import is built for merchants and operators who don't have an engineering team wiring up the API. You export the data you already have, drop the file in, and we run it through the exact same validation, dedup and commission rules the API uses. There are no shortcuts and no second-class path: a row imported by CSV is indistinguishable from the same row sent to the API.

CSV import runs from the merchant dashboard, not the API. You authenticate with your normal dashboard login — no API key, no HMAC signature. The endpoints below are called by the dashboard on your behalf as multipart file uploads.

How it works

Every import follows the same three steps. Nothing is written to your account until you confirm the preview.

1. Upload

From the dashboard, choose the import type and upload your .csv file. Each type maps to its own endpoint:

Dashboard import endpoints (multipart file upload)
POST /merchant/imports/products       # product catalog
POST /merchant/imports/orders         # orders / conversions
POST /merchant/imports/order-status   # order-status updates

2. Preview

Before anything is processed, you get a preview of the whole file: the total row count, how many rows are valid, invalid or duplicates, the estimated number of conversions that will be created and the estimated commission, plus a sample of the errors found. Use the preview to catch a mis-mapped column or a wrong currency before it touches your data.

3. Process

When the preview looks right, confirm to process. Valid rows are applied through the same engine as the API: same field validation, same deduplication, same commission calculation. Invalid rows are skipped and reported so you can fix and retry them.

Products file

Imports or updates your product catalog. Required columns are externalProductId, name, productUrl and price. All other columns are optional.

products.csv
externalProductId,name,productUrl,price,currency,category,brand,commissionType,commissionValue,imageUrl,stockStatus
SKU-1001,Wireless Earbuds,https://shop.example/p/1001,2999.00,NPR,Audio,Acme,PERCENT,8,https://shop.example/img/1001.jpg,IN_STOCK
SKU-1002,USB-C Charger,https://shop.example/p/1002,1499.00,NPR,Accessories,Acme,FIXED,120,https://shop.example/img/1002.jpg,IN_STOCK

Validation: externalProductId is your stable product key — rows with the same id are deduped (see below). productUrl must be a valid URL. price is a decimal string (e.g. 2999.00), not a number with thousands separators or a currency symbol. currency is an ISO-4217 code. commissionType and commissionValue set a per-product commission override; if omitted, the product inherits your account/campaign default. stockStatus must be a recognised stock value.

Orders / conversions file

Records conversions. Required columns are externalOrderId and orderAmount. Everything else is optional but recommended — without a clickId the conversion can't be attributed to a click.

orders.csv
externalOrderId,clickId,externalProductId,orderAmount,currency,orderStatus,orderedAt,couponCode
ORD-5001,clk_8f3a...,SKU-1001,2999.00,NPR,PENDING,2026-06-12T10:15:00Z,SAVE10
ORD-5002,clk_2b7c...,SKU-1002,1499.00,NPR,CONFIRMED,2026-06-12T11:40:00Z,

Validation: externalOrderId is your unique order key and is what conversions are deduplicated on. orderAmount is a decimal string in the order currency. orderStatus, when present, must be a valid order status. orderedAt is an ISO-8601 timestamp. clickId ties the conversion back to the recorded click. See Conversions for the full conversion and commission rules — they apply here unchanged.

Order-status file

Updates the status of orders you've already recorded. Required columns are externalOrderId and status.

order-status.csv
externalOrderId,status,statusUpdatedAt,reason
ORD-5001,CONFIRMED,2026-06-13T09:00:00Z,Payment captured
ORD-5002,CANCELLED,2026-06-13T09:05:00Z,Customer requested refund

Validation: externalOrderId must match an existing order. status must be a valid order status — an unrecognised value fails the row. statusUpdatedAt is an ISO-8601 timestamp and reason is free text. Status transitions drive commission state exactly as in the API; see Order status for the valid statuses and their commission effects.

Error file & retries

Invalid rows never block the valid ones. After processing, any rows that failed are collected into a downloadable error CSV: each failed row is returned with its original line plus the reason it was rejected. Fix the flagged rows in that file and re-upload just the corrections — you never have to re-submit the whole batch.

Large files

Each import job handles up to 10,000 rows. Files within that limit are processed as a single job; the preview and final report cover the entire file. To import more than 10,000 rows, split your export into multiple files and upload them in sequence — because deduplication is keyed on your external ids, splitting a file never creates duplicate conversions.

Duplicate rows

Duplicates are deduped exactly the way the API dedupes them. Conversions are unique per externalOrderId, products per externalProductId. A repeated key — whether it appears twice in the same file or was already imported earlier — is counted as a duplicate in the preview and is not double-applied. Re-uploading the same file is therefore safe and idempotent: nothing is created twice.

CSV import is not a lighter or looser path. Every row runs through the identical validation, deduplication and commission logic as the API — there are no shortcuts. A CSV-imported conversion earns the same commission, in the same state, as the equivalent API call.

Start earning from your audience

Join Nepal's affiliate network. Weekly payouts, real tracking, honest commissions.

Join as Affiliate →List Your Store