Roamify eSIM APIs (Most Affordable)
Home
Roamify Docs
Home
Roamify Docs
  1. Refunds
  • eSIM Country
    • Get eSIM Supported Country
      GET
  • eSIM Packages
    • Get eSIM Packages
      GET
  • Orders
    • Create eSIM Order
      POST
    • Create eSIM Top-Up Order
      POST
    • Create Instant eSIM Order (no /apply needed)
      POST
    • Get all eSIM Orders
      GET
    • Get Order
      GET
  • eSIMs
    • Generate eSIM Profile
      POST
    • Get eSIM Compatible TopUp Packages
      GET
    • Get eSIM Usage
      GET
    • Get eSIM Usage Details
      GET
    • Get eSIM Events
      GET
    • Get eSIM
      GET
    • Get eSIMs
      GET
    • Get eSIM Packages History
      GET
    • Send SMS
      POST
    • Generate eSIMs Link for Sharing
      POST
  • Compatible Devices
    • Get eSIM Compatible Devices
      GET
  • Account Balance
    • Get Account Balance
      GET
  • Exchange Rates
    • Get Supported Currencies
    • Get Exchange Rate
  • Health Check
    • API Health
  • Refunds
    • Create Refund Request
      POST
    • Get Refund Request
      GET
    • Create Bulk Refund Requests
      POST
    • List Refund Requests
      GET
    • Cancel Refund Request
      PUT
  • Schemas
    • RefundIssue
    • RefundView
    • BulkRefundResponse
    • RefundErrorResponse
  1. Refunds

Create Bulk Refund Requests

Development
https://api-dev.getroamify.com
Development
https://api-dev.getroamify.com
POST
https://api-dev.getroamify.com
/api/refund/bulk
Refunds
Last modified:2026-11-09 07:09:16
Maintainer:Not configured
Submit 1 to 20 refund requests in one call. Each entry carries an iccid or an esimId, a reason and optional notes (notes are required for OTHER, 10 to 1000 characters). Each entry is answered on its own, so a refused eSIM does not stop the others. Duplicates are not created twice: an entry with the same iccid or esimId as an earlier one, or an iccid and an esimId of the same eSIM, comes back as DUPLICATE and the first one is kept. Reasons: UNABLE_TO_INSTALL, NO_CONNECTIVITY, WRONG_PACKAGE, DUPLICATE_PURCHASE, TRIP_CANCELLED, DEVICE_NOT_COMPATIBLE, CUSTOMER_REQUEST, OTHER. Returns 400 for an invalid body.

Request

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200
application/json
One result per entry, in the order sent
Bodyapplication/json

🟠400
🟠422
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api-dev.getroamify.com/api/refund/bulk' \
--header 'Authorization: Bearer roamify_3fegvaRHZxZoAsB7Yg5KFs5ymSg3kBN1trn4DxRrqW1mDRoo9DueN6FSfNTuGndVGpR2iTyH4UVmZf39tVb5muWUPqBm1dh5eHiH5WkPN3wGLF8cr7MhemqekwK7rdqFizTZD9VDRq5P5RHAXzL2tCHfcrsskg2YoP8JE1fndNoiQCUSS1GBUUpmH' \
--header 'Content-Type: application/json' \
--data '{
    "productType": "esim",
    "refunds": [
        {
            "iccid": "string",
            "esimId": "string",
            "reason": "UNABLE_TO_INSTALL",
            "notes": "string"
        }
    ]
}'
Response Response Example
200 - Example 1
{
    "status": "success",
    "data": {
        "summary": {
            "requested": 0,
            "created": 0,
            "failed": 0,
            "duplicates": 0
        },
        "results": [
            {
                "index": 0,
                "iccid": "string",
                "esimId": "string",
                "status": "CREATED",
                "refund": {
                    "refundId": "string",
                    "status": "PENDING",
                    "productType": "esim",
                    "item": {
                        "esimId": "string",
                        "iccid": "string",
                        "orderId": "string",
                        "referenceId": "string",
                        "countryName": "Japan",
                        "optionName": "5GB - 30 days"
                    },
                    "reason": "UNABLE_TO_INSTALL",
                    "notes": "string",
                    "amount": 0,
                    "currency": "string",
                    "balanceCreditUsd": 0,
                    "transaction": {
                        "id": "string",
                        "paymentMethod": "string",
                        "paymentStatus": "string",
                        "refundedAt": 0
                    },
                    "rejectionReason": "string",
                    "rejectionNote": "string",
                    "createdAt": 0,
                    "updatedAt": 0,
                    "processedAt": 0,
                    "cancelledAt": 0,
                    "history": [
                        {
                            "status": "PENDING",
                            "at": 0
                        }
                    ]
                },
                "error": {
                    "code": "REFUND_REQUEST_ALREADY_EXISTS",
                    "message": "string",
                    "reasons": [
                        {
                            "code": "ESIM_ALREADY_REFUNDED",
                            "message": "string"
                        }
                    ],
                    "refundId": "string"
                },
                "duplicateOf": 0
            }
        ]
    }
}
Modified at 2026-11-09 07:09:16
Previous
Get Refund Request
Next
List Refund Requests
Built with