> For the complete documentation index, see [llms.txt](https://ctracker-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ctracker-docs.keywordrush.com/affiliate-networks/supported-networks/rakuten.md).

# Rakuten Advertising

{% hint style="warning" %}
**This network is in beta.** It was built from Rakuten's published API documentation rather than against a live publisher account, so the mappings are correct on paper and have not yet been confirmed by real orders.

Check your first few orders and shop links before relying on it. The **Beta** badge stays on the Networks row until that confirmation exists.
{% endhint %}

{% hint style="danger" %}
**Rakuten keeps only about two weeks of transactions.** If your site's scheduled tasks stop for longer than that, the orders processed in the meantime are gone for good — no later refresh can recover them.

Cashback Tracker warns you when scheduled tasks stall, but on this network that warning is urgent rather than informational. See [Scheduled tasks](/running-your-site/scheduled-tasks.md).
{% endhint %}

### What you need

| Field             | Where to find it                                               |
| ----------------- | -------------------------------------------------------------- |
| **Client ID**     | Developer portal → **Applications**                            |
| **Client Secret** | Developer portal → **Applications** (shown with the Client ID) |
| **Account ID**    | Your Rakuten publisher account ID                              |

All three come from [developers.rakutenadvertising.com](https://developers.rakutenadvertising.com/). If you have no application yet, create one there first — the Client ID and Secret are generated with it.

### Setting it up

1. `Cashback Tracker` → `Networks`. Rakuten is already in the list — press **Configure** on its row.
2. Paste the Client ID, Client Secret and Account ID.
3. Tick **Enable network**.
4. Set **Default cashback**.
5. Save, then press **Refresh shops** on the row.

### What it imports

* **Shops** — the advertisers you are actively partnered with
* **Coupons** — vouchers and promotional links
* **Orders** — transactions, on the schedule you set

Rakuten reports in several currencies, and each order carries its own — so a single account can hold orders in USD, GBP, EUR and more. See [Currency](/how-cashback-works/currency.md).

### The sub ID

Rakuten calls it **u1**, and returns it on every transaction. Cashback Tracker sends `cbtrkr-<member id>`.

### Tracking links

Rakuten publishes no ready-made link per advertiser, so the plugin asks it to create one for each shop while loading shops. That makes **Refresh shops** slower here than on most networks — each shop costs two extra requests — so a large account takes several minutes. It runs in the background and resumes where it left off.

If a shop appears with no working **Go to shop** button, its link could not be created. The Shops panel on the Networks row lists which ones, and the next refresh tries again.

{% hint style="info" %}
Not every advertiser allows deep linking. For those, the link still works but always lands on the shop's home page rather than the specific product.
{% endhint %}

### Getting orders sooner

{% hint style="danger" %}
**Do not set up a postback for Rakuten.** It has a built-in module, and the plugin polls it over an authenticated API.

Adding a postback would mean creating a second, custom network — and the same purchase would then arrive twice, once from each. Both copies are stored, and **the member is credited twice**, at two different cashback rates.
{% endhint %}

To have sales show up faster, lower **Download new orders** in `Settings` → `General`. On this network a short interval is worth setting: it is also what protects you from the two-week limit above.

See [Importing orders](/affiliate-networks/importing-orders.md).

### How orders arrive

Rakuten works differently from every other network here, and it is worth understanding before you look at your orders.

**Orders arrive approved, not pending.** Rakuten has no pending state — a reported transaction is commission you have earned. Orders from other networks sit pending until the advertiser confirms them; Rakuten's do not.

**A return arrives as its own negative order.** When a customer sends something back, Rakuten reports a second transaction with the amounts reversed. Cashback Tracker stores it as a separate order showing a negative amount, rather than editing the original. The member's balance nets out correctly, and their account shows both the purchase and its reversal — which is the truer account of what happened.

{% hint style="warning" %}
Because orders are approved on arrival, cashback becomes payable sooner here than on other networks. If a return comes in after a member has already withdrawn, their balance can go negative.

Each shop's returns window is imported from Rakuten and shown on the shop, so you can see how long an advertiser accepts returns for. Set a **holding period** at least that long before you enable this network. See [Order statuses and the holding period](/how-cashback-works/order-statuses-and-holding-period.md).
{% endhint %}

### Shop cashback rates

Rakuten's commission rates are imported with each shop, so shop pages show the range the advertiser actually pays.

Two things are worth knowing about how that range is worked out. Rakuten pays in tiers — 3% up to a threshold, 6% above it, and so on — and a shop shows the whole span rather than one figure. And where an advertiser pays for clicks or impressions as well as sales, only the sale rates are counted: a member earns cashback on a purchase, not on a click, so a per-click payout is not cashback and is left out.

What a member receives is still your **Default cashback** and any per-shop override — the imported rate is what the advertiser pays *you*. See [Cashback rates](/shops-and-cashback-rates/cashback-rates.md).

### When nothing imports

**Requests refused.** The plugin exchanges your Client ID and Secret for a token that lasts an hour. If any of the three fields was pasted with whitespace, or the application was regenerated in the developer portal, everything fails at once rather than partially.

**Shops import but orders never do.** Check that the sub ID is reaching Rakuten: open a shop's **Go to shop** link and confirm the address contains `u1=cbtrkr-` followed by a number. If it does not, the link was built before the network was configured — refresh the shops.

**Orders stop appearing after a quiet period.** This is the two-week limit. Check `Cashback Tracker` → `Logs` and your scheduled tasks; anything processed while they were stopped cannot be recovered.

`Cashback Tracker` → `Logs` carries Rakuten's own response text, which is the fastest way to tell a rejected credential from an empty account.
