Team Nexa Auto TopUp Api - Fast & Reliable Free Fire API
    Team NexaAPI Documentation

    Nexa API Documentation

    Automated API for Free Fire UniPin vouchers and Garena Shells delivery.

    Overview

    Welcome to the Nexa API documentation. Integrate our automated topup service into your application to deliver Free Fire UniPin vouchers and Garena Shells seamlessly to your customers.

    Base URL

    All API requests must be made to this base URL.

    https://api.teamnexa.shop

    Authentication

    Every request to the Nexa API requires authentication using an API Key. You must include your API Key in the Authorization header of every request.

    // Include this header in your HTTP request
    Authorization: your_api_key_here

    Errors & Status Codes

    All error responses return JSON with a human-readable error message and a machine-readable code.

    { "status": "failed", "error": "Human readable message", "code": "MACHINE_CODE" }
    HTTP Code Meaning
    401UNAUTHORIZEDMissing or invalid API key
    402INSUFFICIENT_CREDITSAPI key has no credits remaining
    400INVALID_INPUTMissing required field or wrong type
    400INVALID_PLAYERIDplayerid must be 6–12 digits
    400INVALID_VOUCHERcode field missing or malformed
    400INVALID_PACKAGEUnknown package for the chosen shop
    400MISSING_PACKAGEpackage field missing for shell orders
    409ORDER_IN_FLIGHTSame orderid is already processing
    429RATE_LIMITEDToo many requests
    503SHELL_UNAVAILABLEShell shop not configured or unavailable
    503QUEUE_FULLServer queue full — retry shortly
    503SERVER_BUSYInstant endpoint at capacity — use /topup

    POST /topup

    Unipin Voucher Top-up

    Redeems one or more UniPin voucher codes for a Free Fire player. This is the async endpoint — it accepts the order, responds immediately with processing, then sends the final result to your url as a webhook callback.

    Body parameters

    orderid

    Your unique order ID (1–128 chars). Used to track this order and match the webhook callback. required

    playerid

    The Free Fire player UID being topped up. Must be 6–12 digits. required

    code

    One or more UniPin voucher codes, comma-separated (max 5). Each code is SERIAL PIN format (serial and pin separated by a space). Example: UPBD-Q-S-02710989 4333-3334-6353-3344. required

    url

    your webhook URL. The order result is POSTed here when processing finishes. required

    Example request

    curl -X POST https://api.teamnexa.shop/topup \
      -H "Authorization: your_api_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "orderid": "order-001",
        "playerid": "5006149700",
        "code": "UPBD-Q-S-02710989 4333-3334-6353-3344, UPBD-T-S-01885045 6591-4164-9992-5148",
        "url": "https://your-webhook.com/callback"
      }'

    Immediate response

    The server accepts the order and starts processing in the background.

    200 OK
    status: processing

    Callback — all success

    Sent to your url once every voucher in the batch has been redeemed.

    webhook POST
    {
      "status": "success",
      "orderid": "order-001",
      "nickname": "KG MIRAZ ツ",
      "content": {
        "batch": [
          {
            "uc": "UPBD-Q-S-02710989 4333-3334-6353-3344",
            "ok": true,
            "detail": "✅ Success"
          },
          {
            "uc": "UPBD-T-S-01885045 6591-4164-9992-5148",
            "ok": true,
            "detail": "✅ Success"
          }
        ],
        "callback_url": "https://your-webhook.com/callback"
      }
    }

    Callback — all failed

    webhook POST
    {
      "status": "failed",
      "orderid": "order-001",
      "nickname": "KG MIRAZ ツ",
      "content": {
        "batch": [
          {
            "uc": "UPBD-Q-S-02710989 4333-3334-6353-3344",
            "ok": false,
            "detail": "❌ Consumed Voucher"
          },
          {
            "uc": "UPBD-T-S-01885045 6591-4164-9992-5148",
            "ok": false,
            "detail": "❌ Consumed Voucher"
          }
        ],
        "callback_url": "https://your-webhook.com/callback"
      }
    }

    Callback — partial success

    Some vouchers redeemed, others failed. Check each batch item's ok field individually.

    webhook POST
    {
      "status": "partial",
      "orderid": "order-001",
      "nickname": "KG MIRAZ ツ",
      "content": {
        "batch": [
          {
            "uc": "UPBD-Q-S-02710989 4333-3334-6353-3344",
            "ok": true,
            "detail": "✅ Success"
          },
          {
            "uc": "UPBD-T-S-01885045 6591-4164-9992-5148",
            "ok": false,
            "detail": "❌ Consumed Voucher"
          }
        ],
        "callback_url": "https://your-webhook.com/callback"
      }
    }

    Possible detail values

    ❌ Consumed Voucher

    Voucher was already used

    Uid is invalid

    The provided Player ID doesn't exist

    Invalid PIN

    The voucher serial/PIN is incorrect

    POST /topup-instant

    Unipin Voucher Top-up — Instant

    Same Unipin redemption, but synchronous: the full result comes back in the HTTP response itself. No url field, no callback — useful when you would rather wait on the request than handle a webhook.

    Example request

    Note the codes use a colon SERIAL:PIN format on this endpoint.

    curl -X POST https://api.teamnexa.shop/topup-instant \
      -H "Authorization: your_api_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "orderid": "order-002",
        "playerid": "5006149700",
        "code": "UPBD-Q-S-02710989:4333-3334-6353-3344,UPBD-T-S-01885045:6591-4164-9992-5148"
      }'

    Response — all success

    200 OK
    {
      "status": "success",
      "orderid": "order-002",
      "nickname": "KG MIRAZ ツ",
      "content": {
        "batch": [
          { "uc": "UPBD-Q-S-02710989 4333-3334-6353-3344", "ok": true, "detail": "✅ Success" },
          { "uc": "UPBD-T-S-01885045 6591-4164-9992-5148", "ok": true, "detail": "✅ Success" }
        ]
      }
    }

    Response — all failed / partial

    Same batch shape as the async endpoint — see the /topup examples above for the all-failed and partial-success formats. The same detail values apply.

    POST /topup

    Shell Top-up (Async)

    Tops up Garena Shell on SG, MY, or Indonesia shop backend. Uses the same /topup endpoint — the code field switches it into shell mode. Async — responds immediately with accepted, then POSTs the result to your url.

    Request Body (JSON)

    orderid

    Your unique system order ID. Required

    playerid

    The customer's Free Fire UID. Required

    code

    Shop selector: sgshell (Singapore), myshell (Malaysia), indoshell (Indonesia). Required

    package

    Package alias (e.g. lite, weekly). Required

    username

    Garena account username. Optional (falls back to saved account)

    password

    Garena account password. Optional (falls back to saved account)

    autocode

    Your secret OTP/auth key for the account. Optional (falls back to saved account)

    qty

    Quantity (default is 1). Optional

    url

    Your webhook URL for the callback. Required

    Example Request

    curl -X POST https://api.teamnexa.shop/topup \
      -H "Authorization: your_api_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "orderid": "shell-001",
        "playerid": "123456789",
        "code": "shell",
        "package": "lvl6",
        "qty": 1,
        "username": "your_username",
        "password": "your_password",
        "autocode": "your_secret_key",
        "url": "https://your-webhook.com/callback"
      }'

    Webhook Response

    {
      "status": "success",
      "orderid": "shell-001",
      "nickname": "KG MIRAZ ツ",
      "content": {
        "batch": [
          { "package": "LITE", "ok": true, "detail": "Success" }
        ]
      }
    }

    POST /topup-instant

    Shell Top-up (Instant)

    Same shell payload as async /topup, but synchronous. Drop the url field — the result comes back immediately in the HTTP response. If the instant endpoint is at capacity, returns 503 SERVER_BUSY.

    Example Request

    curl -X POST https://api.teamnexa.shop/topup-instant \
      -H "Authorization: your_api_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "orderid": "shell-001",
        "playerid": "123456789",
        "code": "shell",
        "package": "lvl6",
        "qty": 1,
        "username": "your_username",
        "password": "your_password",
        "autocode": "your_secret_key"
      }'

    Response — success (single)

    {
      "status": "success",
      "orderid": "shell-002",
      "nickname": "KG MIRAZ ツ",
      "content": {
        "batch": [
          { "package": "LITE", "ok": true, "detail": "Success" }
        ]
      }
    }

    Response — multiple qty (partial)

    {
      "status": "failed",
      "orderid": "shell-002",
      "nickname": "KG MIRAZ ツ",
      "content": {
        "batch": [
          { "package": "LITE", "ok": true, "detail": "Success" },
          { "package": "LITE", "ok": false, "detail": "Provider Rejected" }
        ]
      }
    }

    Response — server busy

    { "status": "failed", "error": "Instant endpoint busy — use /topup instead.", "code": "SERVER_BUSY" }

    Shell Package Reference

    Use the package codes below with the package field. Each shop supports different packages — check the shop-specific sections.
    Package Code Package
    lite / weeklylite Weekly Lite
    weekly Weekly Membership
    monthly Monthly Membership
    115 115 Diamonds
    240 240 Diamonds
    610 610 Diamonds
    1240 1240 Diamonds
    2530 2530 Diamonds
    lvl6 - lvl30 Level Up packs
    108588 - 108593 Level Up (numeric aliases)

    Indonesia Server

    Shop Code: indoshell
    Package Code Package
    weekly Weekly Membership
    monthly Monthly Membership
    5, 50, 70, 140... Indo Diamonds
    (5, 50, 70, 140, 355, 720, 7290, 36500, 73100)
    115, 240, 610... BD Fallback Diamonds
    (115, 240, 610, 1240, 2530)
    fulllevelup Full Level Up Pass
    lvl6 - lvl30 Specific Tier
    (lvl6, 10, 15, 20, 25, 30)
    5 5 Diamonds
    50 50 Diamonds
    70 70 Diamonds
    140 140 Diamonds
    355 355 Diamonds
    720 720 Diamonds
    7290 7290 Diamonds
    36500 36500 Diamonds
    73100 73100 Diamonds

    Singapore Server

    Shop Code: sgshell
    Package Code Package
    lite / weeklylite Weekly Lite
    weekly Weekly Membership
    monthly Monthly Membership
    25, 100, 310, 520... SG Diamonds
    (25, 100, 310, 520, 1060, 2180, 5600, 11500)
    fulllevelup Full Level Up Pass
    lvl6 - lvl30 Specific Tier
    (lvl6, 10, 15, 20, 25, 30)
    25 25 Diamonds
    100 100 Diamonds
    310 310 Diamonds
    520 520 Diamonds
    1060 1060 Diamonds
    2180 2180 Diamonds
    5600 5600 Diamonds
    11500 11500 Diamonds

    Malaysia Server

    Shop Code: myshell
    Package Code Package
    lite / weeklylite Weekly Lite
    weekly Weekly Membership
    monthly Monthly Membership
    25, 100, 310, 520... MY Diamonds
    (25, 100, 310, 520, 1060, 2180, 5600, 11500)
    115, 240, 610... BD Fallback Diamonds
    (115, 240, 610, 1240, 2530)
    fulllevelup Full Level Up Pass
    lvl6 - lvl30 Specific Tier
    (lvl6, 10, 15, 20, 25, 30)