1. Choose opportunities or payouts
Opportunities describe inventory you could buy: its cost, quantity, expected prices, timing, and evidence. Payouts describe sales, refunds, or fee adjustments that you will later review against purchased inventory. Use a separate file for each kind of import.
These downloads contain synthetic format examples, not real inventory, market evidence, or performance. Their dates are fixed historical examples. Downloading a file does not save rows or create purchases. Replace the example rows before a real import.
- Opportunity examples (CSV download)
Two synthetic rows: one with complete format fields and one with unknown optional facts.
- Payout examples (CSV download)
Three synthetic rows showing a sale, a refund with a fee credit, and a fee adjustment.
- Payout requiring review (CSV download)
One accepted synthetic sale whose reported net differs by one cent from the listed components.
You can practice an opportunity CSV preview in the public demo. Real imports require an invited workspace. The public payout demo practices matching sample rows; it does not upload payout files.
Back to contents2. Prepare a small, plain CSV
Save a comma-separated CSV with one header row and one record per data row. Keep the headers unique and nonempty. Their order can change. Quote any cell containing a comma, quote, or line break; spreadsheet CSV export normally handles that quoting for you.
- File limits: up to 2,000,000 UTF-8 bytes, 2,000 data rows, and 64 columns. Split larger exports into smaller files with the same headers and distinct record references.
- USD amounts: plain values such as
1200.00, with at most two decimals. Individual amounts are limited to $21,474,836.47 in magnitude where signed values are allowed. Opportunity totals also have limits. - Tax:
8.25means 8.25%, and1means 1%. Do not enter0.0825to mean 8.25%. - Dates: use
2026-01-15, or a timestamp with a timezone such as2026-01-15T12:00:00Z. Locale dates such as01/15/2026and timestamps without a timezone are rejected. - Text: supply plain labels and references, not spreadsheet formulas. Text starting with
=,+,-, or@is rejected. Negative numeric payout amounts follow the separate rules below.
Remove unrelated buyer names, addresses, and other personal details before upload. Unmapped extra columns are discarded; the optional format_notes column in these examples is documentation and is not saved.
If your export uses different column names, map them during preview. Each source column can fill only one ResaleCraft field. A saved mapping remembers column names for later imports, not the original file or its rows.
Back to contents3. Prepare opportunity fields
Fields marked May be blank can preserve an unknown fact. A valid import with unknown buying inputs can remain Needs information; importing it does not make it ready to approve. Use a real zero only when the amount is known to be zero. Required tax, inbound shipping, supplies, and confidence fields still need values.
| CSV field | What to enter |
|---|---|
external_idRequired | Your stable, unique reference for this opportunity. Reimporting an existing reference does not update its record. |
nameRequired | A recognizable product or lot name. |
skuRequired | The item code you use to distinguish the inventory. |
categoryRequired | The inventory category used for the opportunity and exposure review. |
supplierRequired | Who you would buy the inventory from. |
sourceRequired | Where the opportunity came from, such as your own research or a supplier sheet. |
intended_channelRequired | The channel you plan to sell through. Check its selling-cost assumptions in workspace settings. |
unit_costMay be blank | Purchase cost per unit in USD, before the separately recorded tax and costs. |
quantityMay be blank | Whole units, from 1 to 100,000 when known. |
tax_rateRequired | Purchase tax as a percentage: 8.25 means 8.25%, and 1 means 1%. Use 0 only when the actual rate is zero. |
inbound_shipping_totalRequired | Total inbound shipping cost for the purchase, in USD, rather than a per-unit amount. |
supplies_per_unitRequired | Supply cost per unit in USD. |
base_sale_priceMay be blank | Your expected sale price per unit, in USD. This is an assumption, not a price supplied by ResaleCraft. |
downside_sale_priceMay be blank | Your lower-price scenario per unit, in USD. It is not a guaranteed floor or statistical percentile. |
days_to_cashMay be blank | Expected whole days until cash returns, from 1 to 3,650 when known. |
decision_deadlineMay be blank | An optional buying deadline, using an ISO date or a timestamp with a timezone. |
evidence_sourceMay be blank | The source behind your price assumptions. |
evidence_observed_atMay be blank | When you checked the price evidence. Future calendar dates are rejected. |
confidenceRequired | Your evidence-confidence label: high, medium, or low. |
The CSV supplies acquisition costs and sale-price assumptions. Channel selling-cost defaults come from your workspace settings, so review those defaults too. ResaleCraft does not connect to a marketplace or fetch live prices because you entered a channel name.
Use the inventory buying checklist to gather the underlying facts. The older evidence dates in the download demonstrate a file format; they are not suitable evidence for a current buying decision.
Back to contents4. Keep payout kinds and cash signs distinct
The payout CSV calls each row a settlement. Only sale_reference may be blank. Keep the original sale or order reference when available; a row accepted by the importer may still lack what is needed for a safe inventory match.
| CSV field | What to enter |
|---|---|
external_transaction_idRequired | A stable, unique reference for this payout row. Use separate references for a sale, its refund, and later adjustments. |
channelRequired | The selling channel associated with the row. |
settled_atRequired | The settlement date, using an ISO date or timestamp with timezone. Future calendar dates are rejected. |
kindRequired | Exactly sale, refund, or fee_adjustment. |
sale_referenceMay be blank | The original sale or order reference, when available. Keep it even though the importer permits a blank. |
skuRequired | The item code used to connect the row to the purchased inventory. |
quantityRequired | Units sold or affected by a refund. Fee adjustments use 0. A money-only additional refund may also use 0. |
gross_amountRequired | Gross sale amount in USD. Refunds and fee adjustments use 0. |
platform_feesRequired | Platform charges in USD. On refunds and adjustments, a negative amount is a fee credit. |
shipping_costRequired | Seller-paid shipping in USD. On refunds and adjustments, a negative amount is a shipping credit. |
refund_amountRequired | A positive customer-refund amount on refund rows; 0 on sales and fee adjustments. |
net_payoutRequired | The authoritative signed cash amount: positive for cash received, negative for cash paid out. |
currencyRequired | USD. The current pilot does not accept other currencies. |
Sales, refunds, and fee adjustments
- Sale: quantity is at least 1; gross, fees, and shipping are nonnegative; refund amount is 0. The example has $20 gross less $2 fees and $3 shipping, producing $15 net cash received.
- Refund: gross is 0 and refund amount is positive. Quantity counts affected units, or 0 for an additional money-only refund. The example returns $20 to a buyer and receives a $2 fee credit, so its net cash movement is −$18.
- Fee adjustment: quantity, gross, and refund amount are all 0. Positive fees or shipping represent charges; negative amounts represent credits. The example has a −$1 fee entry and a +$1 net payout.
Use the statement’s signed net_payout as the authoritative cash amount. ResaleCraft compares it with gross minus fees, shipping, and refunds. A difference is accepted with a warning for individual explanation. Do not change the reported net merely to force the components to agree.
The review example reports $14.99 net where the listed components imply $15.00. That one-cent difference requires review and excludes the row from safe bulk matching. A nonpositive sale payout or a refund that does not reduce cash also needs review.
A refund does not automatically restock physical inventory. Confirm what came back and its disposition when matching. See the payout reconciliation guide for partial sales, returns, and closure checks.
Back to contents5. Preview, map, correct, then accept
- Choose the correct file and select Validate and preview. Preview does not save imported rows.
- Check the valid and rejected counts. Match any differently named source columns and validate again. Check which optional facts remain blank.
- Review accepted payout warnings as well as rejected rows. Accepted does not mean ready for automatic matching.
- Download the Error CSV if rows need correction. It lists row, field, and error; it is not a repaired copy of your original file.
- In a real workspace, accept the valid rows when ready. Rejected rows are not imported. Keep and correct them in your source file before a later preview.
References prevent duplicate imports. A repeated external_id or external_transaction_id inside one file rejects the later occurrence. At save time, references already present in your workspace are skipped and the existing records remain unchanged. Reimporting is not a way to edit a previously saved opportunity or payout.
After importing payouts, review and match them to actual purchased inventory. A file can be valid without every row being matchable. The full workflow keeps the import, purchase, payout, and final result separate.
Back to contentsCommon import errors and what to change
| What you see | Check in the source file |
|---|---|
| The CSV cannot be read | Check the size and row/column limits, duplicate or empty headers, quoting, and equal column counts across rows. |
| Required field missing | Supply the real value or map its source column. Leave blanks only in fields explicitly marked May be blank. |
| Invalid amount or quantity | Use at most two decimal places for money and whole units for quantity. Check total purchase/sales limits as well as individual values. |
| Invalid or future date | Use a real ISO calendar date or timezone-qualified timestamp. Evidence and payout settlement dates cannot be future calendar dates. |
| Duplicate reference | Remove unintended duplicate rows. Preserve the stable ID for the same record; do not invent a new ID to bypass a duplicate warning. |
| Payout details conflict | Check the kind: a sale cannot contain a refund; a refund uses zero gross and positive refund amount; an adjustment uses zero quantity, gross, and refund. |
| Valid payout needs review | Check the statement’s signed net amount and any unrepresented charges or credits. Keep the actual net and explain the difference individually. |
Keep the original source file while correcting rows. ResaleCraft parses raw CSV files in memory rather than retaining those files; accepted canonical records and import metadata are saved when you commit a real import.
Back to contents