Panduan Reseller
Step by step: apply, configure and sell AI APIs under your own brand — wallet, priced packages, keys, top-up codes, Telegram bot, retail store, payments, domains and the marketplace.
What a reseller is
A reseller uses ARZASTORE's API at cost and resells it to their own customers at prices they set, under their own brand. ARZASTORE runs the infrastructure, model sources and routing; you own the customers, the prices and the sales channels.
How the money moves
- 01You top up your reseller wallet first (prepaid; no joining fee, no deposit).
- 02Customers pay you your price through your channels: bank transfer, a collection gateway or top-up codes.
- 03For every customer request, ARZASTORE deducts the cost from your reseller wallet.
- 04Profit = revenue − cost, shown on Overview and in reseller reports.
Pick a business level
The level only decides which console menu and suggested steps you see; it does not lock features. Each level includes everything from the one before, and you can change it any time in Reseller settings.
| Level | Best when | You use |
|---|---|---|
| Own channel | You sell keys through Telegram, Zalo or chat groups, with no website. | Packages, Customer keys, Top-up codes, Telegram bot, API v2 |
| Retail store | You want customers to sign up, top up and create keys on a website with your brand. | Adds Retail store, Customers, Payments, Domains |
| Marketplace | You want to sell ARZASTORE's whole model catalog and let customers pick models and sources. | Adds Marketplace, Customer support |
Recommended order
Work through the sections below in order and skip the ones outside your level. The Overview page in the console also has a "Getting started" list that ticks off finished steps.
Apply to become a reseller
Applications are reviewed by hand. Have your brand details and identity verification ready to speed it up.
- 01Prepare your accountUse a personal account (not a team account) and turn on two-factor authentication (2FA) on the Account page. Each person can have one reseller account.
- 02Open the application formIn the console, open the Reseller area and click "Apply to become a reseller".
- 03Fill in your brandA unique brand name, a subdomain of 3–32 characters using a-z, 0-9 and hyphens (the form tells you right away if it is free), business level, sales channels, expected monthly sales, contact details and notes.
- 04Verify your identity (KYC)Choose the profile type and enter your legal name, ID card or tax number, address, phone and bank account holder name. The application is approved only when this profile is approved too.
- 05Accept the terms and submitRead the Reseller Terms, tick the box and click "Submit application". While it is pending you can withdraw it. If it is rejected you see the reason and the form keeps your answers so you can fix and resend. Once approved you get a notification and an email.
Prepare your account
Use a personal account (not a team account) and turn on two-factor authentication (2FA) on the Account page. Each person can have one reseller account.
Open the application form
In the console, open the Reseller area and click "Apply to become a reseller".
Fill in your brand
A unique brand name, a subdomain of 3–32 characters using a-z, 0-9 and hyphens (the form tells you right away if it is free), business level, sales channels, expected monthly sales, contact details and notes.
Verify your identity (KYC)
Choose the profile type and enter your legal name, ID card or tax number, address, phone and bank account holder name. The application is approved only when this profile is approved too.
Accept the terms and submit
Read the Reseller Terms, tick the box and click "Submit application". While it is pending you can withdraw it. If it is rejected you see the reason and the form keeps your answers so you can fix and resend. Once approved you get a notification and an email.
Tips
- There is no joining fee or deposit; you only pay the cost of what your customers actually use.
- Right after approval your subdomain can take about a minute to start responding.
Watch out
Your subdomain and key prefix lock once you create your first key. Choose them carefully before handing out keys.
Top up and understand the money flow
The reseller wallet is prepaid credit with ARZASTORE. Every customer request deducts its cost from this wallet.
- 01Top up before building packagesAdding models to a package needs a positive balance; with an empty wallet the console reports insufficient balance.
- 02Cost versus priceCost is deducted request by request. Your price is set on the package and customers pay it to you through your channels. Revenue, cost and profit appear on Overview.
- 03Set a wallet alertIn Reseller settings, set a threshold so you are warned when the balance runs low and can top up in time.
Top up before building packages
Adding models to a package needs a positive balance; with an empty wallet the console reports insufficient balance.
Cost versus price
Cost is deducted request by request. Your price is set on the package and customers pay it to you through your channels. Revenue, cost and profit appear on Overview.
Set a wallet alert
In Reseller settings, set a threshold so you are warned when the balance runs low and can top up in time.
Tips
- Example at ×1.5: the customer pays you 150,000 Rp, ARZASTORE deducts 100,000 Rp of cost, you keep 50,000 Rp.
- SePay transfers go straight to your bank account; gateway payments land in your reseller wallet after fees.
Watch out
When the wallet hits 0 every customer key stops until you top up. Usage your customers have not paid you for is your risk.
Brand settings
What your customers see: your name, logo, colours and API address.
- 01BrandDisplay name (up to 40 characters), logo, accent colour, support link and a short notice (up to 280 characters) shown to customers.
- 02Currency and wallet alertChoose the currency customers see and the wallet balance alert threshold.
- 03API address and key prefixCustomers call the API through your address. The key prefix is 2–8 characters of a-z, 0-9 and appears in every key you issue.
- 04Pause when neededYou can pause the whole reseller account; customer keys stop serving until you resume it.
Brand
Display name (up to 40 characters), logo, accent colour, support link and a short notice (up to 280 characters) shown to customers.
Currency and wallet alert
Choose the currency customers see and the wallet balance alert threshold.
API address and key prefix
Customers call the API through your address. The key prefix is 2–8 characters of a-z, 0-9 and appears in every key you issue.
Pause when needed
You can pause the whole reseller account; customer keys stop serving until you resume it.
Tips
You can change your business level here too when the way you sell changes.
Watch out
The subdomain and key prefix cannot be changed once the first key exists.
Create packages and set prices
A package is the list of models you sell with their prices. Every key you issue belongs to at least one package.
- 01Create a packagePackages → "New package": a name (up to 60 characters), description (up to 500 characters) and a default price rate from 0.5 to 20. Price = cost × rate.
- 02Add modelsOpen the package → "Add to packages", pick combos or single models from the catalog and give each a public name — the name customers put in the model field. Each add takes up to 20 sources × 20 packages.
- 03Pick a pricing mode per itemThe package's default rate, an item rate, a fixed price per token or a fixed price per request. You can also raise or lower prices by a percentage from −90 % to +500 %.
- 04Check price warningsItems priced below cost or with a rate under 1 are flagged. Fix them before giving keys to customers.
- 05Try it with a test keyCreate test keys (up to 5 per package) and call the API exactly as a customer would. The History tab records every change and lets you undo.
Create a package
Packages → "New package": a name (up to 60 characters), description (up to 500 characters) and a default price rate from 0.5 to 20. Price = cost × rate.
Add models
Open the package → "Add to packages", pick combos or single models from the catalog and give each a public name — the name customers put in the model field. Each add takes up to 20 sources × 20 packages.
Pick a pricing mode per item
The package's default rate, an item rate, a fixed price per token or a fixed price per request. You can also raise or lower prices by a percentage from −90 % to +500 %.
Check price warnings
Items priced below cost or with a rate under 1 are flagged. Fix them before giving keys to customers.
Try it with a test key
Create test keys (up to 5 per package) and call the API exactly as a customer would. The History tab records every change and lets you undo.
Tips
- Pick public names that are easy to remember and keep them stable: renaming makes requests that use the old name fail with model not found.
- You can build several packages for different customer groups, for example Basic and Pro with different rates.
Watch out
Fixed prices do not follow cost. When cost rises an item can start selling at a loss, so check the warning flags regularly.
Issue keys to customers
A customer key is what customers paste into their app or SDK. Each key has its own credit, expiry and rate limit.
- 01Create keys in bulkCustomer keys → create: quantity (up to 1,000 keys at a time), package, credit (0 = unlimited, needs confirmation), expiry (up to 3,650 days), RPM limit (up to 10,000), name prefix and note.
- 02Hand keys overCopy the new keys and hand them to customers. To get full keys again, use "Export keys (CSV)" (revoked keys are left out); the file holds full keys, so store it somewhere safe.
- 03Manage keysAdd or reset credit, extend, change RPM, move package, disable, revoke or delete. Select several keys to act in bulk, up to 100 keys at a time.
- 04When a customer leaks a keyClick "Rotate secret" on the key: the old key stops at once and usage history stays. Send the new key to the customer afterwards.
Create keys in bulk
Customer keys → create: quantity (up to 1,000 keys at a time), package, credit (0 = unlimited, needs confirmation), expiry (up to 3,650 days), RPM limit (up to 10,000), name prefix and note.
Hand keys over
Copy the new keys and hand them to customers. To get full keys again, use "Export keys (CSV)" (revoked keys are left out); the file holds full keys, so store it somewhere safe.
Manage keys
Add or reset credit, extend, change RPM, move package, disable, revoke or delete. Select several keys to act in bulk, up to 100 keys at a time.
When a customer leaks a key
Click "Rotate secret" on the key: the old key stops at once and usage history stays. Send the new key to the customer afterwards.
Tips
Customers use the key with your API address and call models by the public names in the package.
Watch out
A key with 0 credit (unlimited) spends straight from your wallet until it is empty. Only give it to customers you trust.
Sell with top-up codes
Top-up codes suit sales through shops, e-commerce marketplaces or giveaways: customers redeem them on their own, with no manual work for you.
- 01Create a batchTop-up codes → "New batch": quantity, face value, package (optional) and expiry.
- 02Codes tied to a packageCustomers use the code to top up a key of that package, or to redeem a new key.
- 03Codes without a packageThe code tops up the customer's balance on your retail store or in your Telegram bot.
Create a batch
Top-up codes → "New batch": quantity, face value, package (optional) and expiry.
Codes tied to a package
Customers use the code to top up a key of that package, or to redeem a new key.
Codes without a package
The code tops up the customer's balance on your retail store or in your Telegram bot.
Tips
Each code works once; an expired code can no longer be redeemed.
Telegram sales bot
A ready-made bot that lets customers buy keys and top up inside Telegram, no website needed.
- 01Create the botChat with @BotFather, send /newbot, name the bot and copy the token BotFather returns.
- 02Connect itPaste the token on the Telegram bot page, complete the requirements it lists and switch the bot on.
- 03Configure the five tabsOverview (bot status), Sales (packages, top-up methods, terms), Appearance (greeting, buttons), Required channels (customers must join your channel or group first) and Announcements.
- 04Message your customersWrite the message in the Announcements tab, confirm you understand the risk and send it to the bot's customers.
Create the bot
Chat with @BotFather, send /newbot, name the bot and copy the token BotFather returns.
Connect it
Paste the token on the Telegram bot page, complete the requirements it lists and switch the bot on.
Configure the five tabs
Overview (bot status), Sales (packages, top-up methods, terms), Appearance (greeting, buttons), Required channels (customers must join your channel or group first) and Announcements.
Message your customers
Write the message in the Announcements tab, confirm you understand the risk and send it to the bot's customers.
Tips
Prefer your own bot or system (Telegram, Zalo…)? Create an API token with reseller scopes and call API v2 — see Monitoring and automation.
Watch out
Keep the bot token secret. If it leaks, regenerate it in @BotFather and paste the new token into the console.
Open a retail store
A website with your brand where customers sign up, top up and create keys. It runs on your subdomain or your own domain.
- 01Check the requirementsThe Retail store page lists what is still missing. "Go to the setting" is something you do; "Contact support" is something ARZASTORE switches on.
- 02Choose the packages on saleUp to 20 packages, a default package for new customers, how many keys each customer may create (1–50), and the default credit and RPM of customer-created keys.
- 03Shape the experienceAllow sign-up, require email verification, a greeting (up to 500 characters), default language and a theme: Nebula, Terminal, Aurora, Linen or Noir.
- 04Sign-in and bot protectionTurn on Cloudflare Turnstile for sign-in, sign-up and password reset; allow Google or GitHub sign-in (paste the Client ID and Client secret; the Callback URL is on the page).
- 05Terms, add-ons and go liveEnter your terms of use and privacy policy (up to 20,000 characters each), add paid add-on packages if you like, then switch the store on.
Check the requirements
The Retail store page lists what is still missing. "Go to the setting" is something you do; "Contact support" is something ARZASTORE switches on.
Choose the packages on sale
Up to 20 packages, a default package for new customers, how many keys each customer may create (1–50), and the default credit and RPM of customer-created keys.
Shape the experience
Allow sign-up, require email verification, a greeting (up to 500 characters), default language and a theme: Nebula, Terminal, Aurora, Linen or Noir.
Sign-in and bot protection
Turn on Cloudflare Turnstile for sign-in, sign-up and password reset; allow Google or GitHub sign-in (paste the Client ID and Client secret; the Callback URL is on the page).
Terms, add-ons and go live
Enter your terms of use and privacy policy (up to 20,000 characters each), add paid add-on packages if you like, then switch the store on.
Tips
- Customers on the store are your customers: they see your brand, not ARZASTORE.
- Without a payment method connected, customers can still top up with codes.
Watch out
Add-on fees are not refunded through the system. If a refund is needed, you refund the customer yourself.
Get paid by customers
Two ways: SePay sends bank transfers straight to your bank; collection gateways run by ARZASTORE take other methods.
- 01Set up SePayEnter the bank account number, account holder name (upper case, no diacritics), a transfer reference prefix (2–5 letters, NAP by default) and the minimum and maximum top-up.
- 02Connect the SePay webhookIn SePay, create a webhook for incoming money, paste the webhook URL from the console, choose HMAC-SHA256 or API key authentication with the same 16–128-character secret on both sides, then send a test following the steps on the page.
- 03Handle unmatched transfersTransfers with the wrong reference land in the unmatched list. Assign them to the right customer or ignore them.
- 04Collection gatewaysCustomers pay through the gateways ARZASTORE has open (for example USDT, Alipay, WeChat Pay, cards). Customers receive the full face value; your reseller wallet receives face value minus fees, held for some days before it can be withdrawn. Requires an approved KYC profile and accepting the fee and hold period.
- 05Withdraw gateway moneyClick "Move to withdrawable" (needs 2FA, approved KYC and no outstanding debt), then request a withdrawal like seller earnings; VAT and the withdrawal fee apply at that point.
Set up SePay
Enter the bank account number, account holder name (upper case, no diacritics), a transfer reference prefix (2–5 letters, NAP by default) and the minimum and maximum top-up.
Connect the SePay webhook
In SePay, create a webhook for incoming money, paste the webhook URL from the console, choose HMAC-SHA256 or API key authentication with the same 16–128-character secret on both sides, then send a test following the steps on the page.
Handle unmatched transfers
Transfers with the wrong reference land in the unmatched list. Assign them to the right customer or ignore them.
Collection gateways
Customers pay through the gateways ARZASTORE has open (for example USDT, Alipay, WeChat Pay, cards). Customers receive the full face value; your reseller wallet receives face value minus fees, held for some days before it can be withdrawn. Requires an approved KYC profile and accepting the fee and hold period.
Withdraw gateway money
Click "Move to withdrawable" (needs 2FA, approved KYC and no outstanding debt), then request a withdrawal like seller earnings; VAT and the withdrawal fee apply at that point.
Tips
SePay money goes straight to your bank account; ARZASTORE charges no fee on it.
Watch out
Changing the bank account or secret means verifying SePay again. Refunds and chargebacks through a gateway are charged to your wallet at full value.
Use your own domain
Serve your API and retail store from your own domain instead of the default address. TLS certificates are issued automatically.
- 01RequirementsAn approved KYC profile. Only subdomains such as api.yourbrand.com or shop.yourbrand.com are accepted, not apex domains.
- 02Add the domainChoose the type (API or Retail store) and enter the domain. One domain per type; up to 5 additions every 24 hours.
- 03Create two DNS recordsCreate a CNAME record and a TXT record _hostverify.<your domain> with the values shown on the page (each has a copy button), then click "Check now".
- 04Wait until it is activeThe status goes Waiting for DNS → Issuing certificate → Active, usually within minutes once the CNAME points correctly.
Requirements
An approved KYC profile. Only subdomains such as api.yourbrand.com or shop.yourbrand.com are accepted, not apex domains.
Add the domain
Choose the type (API or Retail store) and enter the domain. One domain per type; up to 5 additions every 24 hours.
Create two DNS records
Create a CNAME record and a TXT record _hostverify.<your domain> with the values shown on the page (each has a copy button), then click "Check now".
Wait until it is active
The status goes Waiting for DNS → Issuing certificate → Active, usually within minutes once the CNAME points correctly.
Tips
- DNS on Cloudflare: keep the CNAME as DNS only (grey cloud).
- If the domain has CAA records, allow letsencrypt.org, pki.goog and ssl.com.
Watch out
Keep the TXT record for as long as you use the domain: if it is missing for 72 hours in a row the domain is removed. To stop using a domain, remove it in the console rather than only deleting DNS.
Sell through the marketplace
Bring ARZASTORE's whole model catalog to your store: customers choose models and sources, you set the price rate.
- 01RequirementsYour retail store is live and ARZASTORE has opened the marketplace for your account.
- 02Set the default rateThe "Default price rate" field takes 1 to 20; the price customers see = cost × rate.
- 03Fine-tune each modelSet per-model rates, hide models you do not want to sell and see each model's sources. Only turn on "Show source prefixes to customers" if you accept customers seeing sources.
- 04Go live and look after customersTurn on "Sell through the marketplace". Answer tickets in Customer support and moderate customer reviews.
Requirements
Your retail store is live and ARZASTORE has opened the marketplace for your account.
Set the default rate
The "Default price rate" field takes 1 to 20; the price customers see = cost × rate.
Fine-tune each model
Set per-model rates, hide models you do not want to sell and see each model's sources. Only turn on "Show source prefixes to customers" if you accept customers seeing sources.
Go live and look after customers
Turn on "Sell through the marketplace". Answer tickets in Customer support and moderate customer reviews.
Tips
Hiding a model only stops new sales; customers already using it are not cut off.
Watch out
Raising the rate: customers who chose to pause on price increases are held until they accept the new price.
Customers and support
Customers from your store, bot and marketplace all live in one place.
- 01Customer listFilter, search, and see each customer's ledger, balance and keys.
- 02Lock and unlockLock customers who break your rules; unlock them once it is resolved.
- 03Customer supportTickets from your store and marketplace arrive in Customer support; you answer under your own brand.
Customer list
Filter, search, and see each customer's ledger, balance and keys.
Lock and unlock
Lock customers who break your rules; unlock them once it is resolved.
Customer support
Tickets from your store and marketplace arrive in Customer support; you answer under your own brand.
Watch out
You cannot adjust a customer's balance by hand: it only changes when they top up, spend or get a refund.
Monitoring and automation
See what customers use, how much you earn, and plug your own systems into ARZASTORE.
- 01Request logsWatch customer requests live, filter over up to 31 days and export CSV.
- 02ReportsRevenue, cost and profit over a range of up to 400 days.
- 03Email and webhooksEmail customers through your own SMTP and edit the templates; register HTTPS webhooks (Standard Webhooks spec) so your systems receive events automatically.
- 04Provider offersCommit to a volume with a provider to get a better cost.
- 05API v2 for bots and your own systemsCreate an API token with reseller:read / reseller:write scopes on the Account page. Your bot or website uses it to create keys, add credit and read reports.
Request logs
Watch customer requests live, filter over up to 31 days and export CSV.
Reports
Revenue, cost and profit over a range of up to 400 days.
Email and webhooks
Email customers through your own SMTP and edit the templates; register HTTPS webhooks (Standard Webhooks spec) so your systems receive events automatically.
Provider offers
Commit to a volume with a provider to get a better cost.
API v2 for bots and your own systems
Create an API token with reseller:read / reseller:write scopes on the Account page. Your bot or website uses it to create keys, add credit and read reports.
How customers buy
This is what your customers do. Walk through it once with a spare account before launch.
- 01Visit and sign upThe customer opens your store (subdomain or own domain) and signs up by email with a 6-digit code, or with Google/GitHub if you enabled them.
- 02Top upScan the bank transfer QR (SePay), pay through a gateway, or enter a top-up code.
- 03Create a keyThe customer picks a package and creates a key on the store, or gets one from you or your Telegram bot.
- 04Use the APIThe customer sets the Base URL to https://<your API address>/v1 in their app or SDK, pastes the key and calls models by public name.
- 05Look up the keyCustomers open the lookup page on your API address to see the key's balance and expiry.
Visit and sign up
The customer opens your store (subdomain or own domain) and signs up by email with a 6-digit code, or with Google/GitHub if you enabled them.
Top up
Scan the bank transfer QR (SePay), pay through a gateway, or enter a top-up code.
Create a key
The customer picks a package and creates a key on the store, or gets one from you or your Telegram bot.
Use the API
The customer sets the Base URL to https://<your API address>/v1 in their app or SDK, pastes the key and calls models by public name.
Look up the key
Customers open the lookup page on your API address to see the key's balance and expiry.
Rules to remember
A summary of the points most often missed. The Reseller Terms are the complete, binding version.
- 01Your customers are yours: you are responsible for their support, refunds and taxes.
- 02Never reveal the source: pages, error messages and emails to customers stay neutral; marketplace sources show as "Source XXXX".
- 03Do not use the service for spam, fraud or prohibited content; ARZASTORE may suspend accounts that do.
- 04The subdomain and key prefix lock after the first key.
- 05Keep the wallet funded: at 0 every customer's keys stop.
Watch out
Read the Reseller Terms carefully before you start selling.
Common problems
| Symptom | Usual cause | Fix |
|---|---|---|
| Cannot add models to a package | The reseller wallet has no balance | Top up and try again. |
| All customer keys stopped at once | The wallet hit 0, or a package or the reseller account is paused | Top up; check the package status and Reseller settings. |
| No Reseller area in the console | 2FA is off, no application yet, or it is not approved | Turn on 2FA on the Account page, apply and wait for approval. |
| Cannot switch the retail store on | A requirement is still missing | Open the Retail store page and work through the requirements list. |
| A customer transferred money but was not credited | Wrong transfer reference, or the SePay webhook is not verified | Assign the unmatched transfer to the customer; send a webhook test again on the Payments page. |
| Domain stuck at "Waiting for DNS" | CNAME or TXT is wrong, or the Cloudflare proxy is on | Fix the records, set the grey cloud, then click "Check now". |
| Cannot enable a collection gateway | The KYC profile is not approved | Submit it under Payments → Identity verification. |
| Customers get model not found | The item is no longer on sale in the key's package, or its public name changed | Check the key's packages and the item's public name. |
Pre-launch checklist
Once all eight items are done you can hand keys to your first customer.
- 012FA is on and your reseller application is approved.
- 02The wallet has a balance and a low-balance alert is set.
- 03Brand, subdomain and key prefix are chosen carefully.
- 04Packages have models and no item is flagged as selling at a loss.
- 05You have called the API with the package's test key.
- 06You have a way to get paid: SePay, a collection gateway or top-up codes.
- 07Your sales channel is ready: Telegram bot, retail store or marketplace.
- 08Customers can reach you: support link in Reseller settings and tickets in Customer support.