{
  "info": {
    "name": "Axis Unified Inbox API — Payments",
    "description": "# Axis Unified Inbox API\n\nPayments — 19 endpoints, generated from the Laravel route table on Tue, 04 Aug 2026 12:47:23 GMT.\n\n## Getting started\n\n1. Set the `baseUrl` collection variable if you are not using the default.\n2. Run **Authentication → `POST /user/login`** with your email and password.\n   A test script stores the returned JWT into `{{access_token}}` automatically.\n3. Every other request inherits that bearer token — just hit Send.\n\nRequests using an API key instead read `{{api_key}}` or `{{engage_key}}`; set those\nvariables if you need them.\n\n## Variables\n\n| Variable | Purpose |\n| --- | --- |\n| `baseUrl` | API host, e.g. `https://api.axis.im` |\n| `access_token` | JWT bearer token (auto-filled by the login request) |\n| `api_key` | Value for the `X-API-KEY` header |\n| `engage_key` | Value for the `X-Axis-Admin-API-Key` header |",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "axis-api-docs"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{access_token}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "POST /cancelpackage",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/cancelpackage",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "cancelpackage"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@cancelPackage`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /changepackage",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/changepackage",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "changepackage"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@changePackage`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /coupons/apply",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/coupons/apply",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "coupons",
            "apply"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\CouponController@applyCoupon`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "GET /coupons/available",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/coupons/available",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "coupons",
            "available"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\CouponController@getAvailableCoupons`"
      },
      "response": []
    },
    {
      "name": "GET /coupons/usage-history",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/coupons/usage-history",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "coupons",
            "usage-history"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\CouponController@getUsageHistory`"
      },
      "response": []
    },
    {
      "name": "POST /coupons/validate",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/coupons/validate",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "coupons",
            "validate"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\CouponController@validateCoupon`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "GET /currentpackage",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/currentpackage",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "currentpackage"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@currentPackage`"
      },
      "response": []
    },
    {
      "name": "POST /extrausers",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/extrausers",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "extrausers"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@extrausers`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /iap/apple/verify",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/iap/apple/verify",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "iap",
            "apple",
            "verify"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\AppleIapController@verify`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /initializetransaction",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/initializetransaction",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "initializetransaction"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@initializetransaction`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /paymentwebhook",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/paymentwebhook",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "paymentwebhook"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Payments\\PaymentController@paymentwebhook`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /payviampesa",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/payviampesa",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "payviampesa"
          ]
        },
        "description": "**Authentication:** Sanctum token\n**Handler:** `Payments\\MpesaController@payviampesa`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /previewpayment",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/previewpayment",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "previewpayment"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@previewPayment`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "GET /registermpesa",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/registermpesa",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "registermpesa"
          ]
        },
        "description": "**Authentication:** Sanctum token\n**Handler:** `Payments\\MpesaController@index`"
      },
      "response": []
    },
    {
      "name": "POST /revenuecat-webhook",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/revenuecat-webhook",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "revenuecat-webhook"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Payments\\PaymentController@revenuecatWebhook`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /toggle-auto-renewal",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/toggle-auto-renewal",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "toggle-auto-renewal"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@toggleAutoRenewal`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /validation",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/validation",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "validation"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Payments\\MpesaController@mpesaupdate`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "GET /verify-payment/{reference}",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/verify-payment/:reference",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "verify-payment",
            ":reference"
          ],
          "variable": [
            {
              "key": "reference",
              "value": "",
              "description": "reference identifier"
            }
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Payments\\PaymentController@verifyPayment`"
      },
      "response": []
    },
    {
      "name": "POST /wallettopup",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/wallettopup",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "wallettopup"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Payments\\WallettransactionsController`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.axis.im",
      "type": "string"
    },
    {
      "key": "access_token",
      "value": "",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "",
      "type": "string"
    },
    {
      "key": "engage_key",
      "value": "",
      "type": "string"
    }
  ]
}