{
  "openapi": "3.1.0",
  "info": {
    "title": "Melostore H2H Public API",
    "version": "1.4.0",
    "description": "Public partner API. Two authentication headers are required together unless an operation explicitly has security=[]. Fictional order creation examples set sandbox_mode=true; omitted/null mode uses the account setting. Enter the Webhook URL in the dashboard. Rotate Keys generates the API Key, Secret Key, and Webhook Secret together and shows them once; later rotations replace all three immediately. Update API credentials and the webhook receiver secret after rotation."
  },
  "servers": [
    {
      "url": "https://api.melostore.id"
    }
  ],
  "security": [
    {
      "ApiKey": [],
      "SecretKey": []
    }
  ],
  "tags": [
    {
      "name": "profile"
    },
    {
      "name": "catalog"
    },
    {
      "name": "transactions"
    },
    {
      "name": "bulk"
    },
    {
      "name": "accounts"
    }
  ],
  "paths": {
    "/api/v1/h2h/profile": {
      "get": {
        "operationId": "getProfile",
        "summary": "Profile",
        "description": "Authenticated profile and tier. MC/IDR is the wallet currency; USD is a display estimate.",
        "tags": [
          "profile"
        ],
        "x-title-id": "Profil",
        "x-description-id": "Profil dan tier terautentikasi. Saldo tetap MC/IDR; USD hanya perkiraan.",
        "x-section": "getProfile",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Profile"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "name": "Example Partner",
                        "email": "partner@example.com",
                        "tier": {
                          "name": "Basic",
                          "code": "basic",
                          "rate_limit": 30,
                          "max_ips": 3
                        },
                        "h2h_balance": 100000,
                        "is_sandbox_mode": true,
                        "total_volume_30_days": 5000,
                        "webhook_url": "https://partner.example.com/h2h-callback",
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "usd_idr_rate": 17000,
                        "display_usd_idr_rate": 17000,
                        "display_rate_updated_at": "2026-10-02T03:00:00+00:00"
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "referenceFxUnavailable": {
                    "summary": "FX rate unavailable",
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "name": "Example Partner",
                        "email": "partner@example.com",
                        "tier": {
                          "name": "Basic",
                          "code": "basic",
                          "rate_limit": 30,
                          "max_ips": 3
                        },
                        "h2h_balance": 100000,
                        "is_sandbox_mode": true,
                        "total_volume_30_days": 5000,
                        "webhook_url": "https://partner.example.com/h2h-callback",
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "usd_idr_rate": 17000,
                        "display_usd_idr_rate": null,
                        "display_rate_updated_at": null
                      }
                    },
                    "x-summary-id": "Kurs belum tersedia"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/profile/balance": {
      "get": {
        "operationId": "getBalance",
        "summary": "Balance and FX",
        "description": "Reference FX is separate from configured deposit conversion. Nullable USD estimate when reference FX is unavailable.",
        "tags": [
          "profile"
        ],
        "x-title-id": "Saldo dan kurs",
        "x-description-id": "Kurs tampilan terpisah dari kurs deposit. Perkiraan USD null saat kurs belum tersedia.",
        "x-section": "getBalance",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Balance"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "h2h_balance": 100000,
                        "is_sandbox_mode": true,
                        "usd_idr_rate": 17000,
                        "display_usd_idr_rate": 17000,
                        "display_rate_updated_at": "2026-10-02T03:00:00+00:00",
                        "h2h_balance_usd": 5.88
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "referenceFxUnavailable": {
                    "summary": "FX rate unavailable",
                    "value": {
                      "success": true,
                      "data": {
                        "h2h_balance": 100000,
                        "is_sandbox_mode": true,
                        "usd_idr_rate": 17000,
                        "display_usd_idr_rate": null,
                        "display_rate_updated_at": null,
                        "h2h_balance_usd": null
                      }
                    },
                    "x-summary-id": "Kurs belum tersedia"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/pricelists": {
      "get": {
        "operationId": "getPricelist",
        "summary": "Regular catalogue",
        "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.",
        "tags": [
          "catalog"
        ],
        "x-title-id": "Katalog reguler",
        "x-description-id": "Harga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.",
        "x-section": "getPricelist",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Catalogue"
                    },
                    {
                      "$ref": "#/components/schemas/LegacyCatalogue"
                    }
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "name": "Example product",
                          "sku_code": "EXAMPLE-10",
                          "price": 1000,
                          "category_name": "Example category",
                          "brand_id": 10,
                          "type_name": "Example type",
                          "category_order": 1,
                          "type_order": 1,
                          "server_code": "global",
                          "server_name": "Global",
                          "status": "active",
                          "inquiry_form_key": "example-form",
                          "h2h_description": null,
                          "description": null,
                          "id": 1
                        }
                      ],
                      "meta": {
                        "brands": [
                          {
                            "id": 10,
                            "name": "Example brand",
                            "thumbnail": null,
                            "order": 1
                          }
                        ],
                        "inquiry_forms": {
                          "example-form": {
                            "fields": [
                              {
                                "key": "customer_target",
                                "name": "Player ID",
                                "type": "text"
                              },
                              {
                                "key": "customer_target_zone",
                                "name": "Zone",
                                "type": "text"
                              }
                            ],
                            "notice": {
                              "id": "Masukkan ID dan zone sesuai akun pembeli.",
                              "en": "Enter the ID and zone from the buyer account."
                            }
                          }
                        },
                        "pagination": {
                          "cursor": null,
                          "next_cursor": null,
                          "limit": 100,
                          "total": 1,
                          "has_more": false
                        }
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "legacy": {
                    "summary": "Legacy format",
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "name": "Example product",
                          "sku_code": "EXAMPLE-10",
                          "price": 1000,
                          "category_name": "Example category",
                          "brand_id": 10,
                          "type_name": "Example type",
                          "category_order": 1,
                          "type_order": 1,
                          "server_code": "global",
                          "server_name": "Global",
                          "status": "active",
                          "h2h_description": null,
                          "description": null,
                          "id": 1,
                          "inquiry_fields": {
                            "fields": [
                              {
                                "key": "customer_target",
                                "name": "Player ID",
                                "type": "text"
                              },
                              {
                                "key": "customer_target_zone",
                                "name": "Zone",
                                "type": "text"
                              }
                            ],
                            "notice": null
                          },
                          "brand_name": "Example brand",
                          "brand_order": 1,
                          "brand_thumbnail": null
                        }
                      ]
                    },
                    "x-summary-id": "Format legacy"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The request parameters are invalid.",
                      "errors": {
                        "limit": [
                          "Use an integer between 1 and 1000."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000
            },
            "example": 500,
            "x-description-id": "Jumlah produk per halaman, 1–1000. Gunakan 500 untuk sinkronisasi. Tanpa limit, respons reguler berisi seluruh hasil; kirim limit untuk pagination."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Salin meta.pagination.next_cursor dari halaman sebelumnya. Pertahankan filter yang sama selama pagination."
          },
          {
            "name": "server",
            "in": "query",
            "required": false,
            "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "server_code produk dari katalog, bukan zone akun pelanggan. Tidak dikirim atau kosong berarti semua server katalog.",
            "allowEmptyValue": true
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination.",
            "schema": {
              "type": "string",
              "enum": [
                "compact",
                "legacy"
              ]
            },
            "x-description-id": "Tidak dikirim atau kosong memakai compact. legacy menyertakan inquiry_fields langsung dan mengembalikan semua hasil tanpa pagination cursor.",
            "allowEmptyValue": true
          },
          {
            "name": "brand_id",
            "in": "query",
            "required": false,
            "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands.",
            "x-description-id": "Filter memakai data[].brand_id dari daftar brand katalog yang sama. Kosongkan untuk mengambil semua brand.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ]
      }
    },
    "/api/v1/h2h/pricelists/{category_slug}": {
      "get": {
        "operationId": "pricelistCategory",
        "summary": "Regular prices by brand",
        "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.",
        "tags": [
          "catalog"
        ],
        "x-title-id": "Harga reguler per brand",
        "x-description-id": "Harga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.",
        "x-section": "pricelistCategory",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Catalogue"
                    },
                    {
                      "$ref": "#/components/schemas/LegacyCatalogue"
                    }
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "name": "Example product",
                          "sku_code": "EXAMPLE-10",
                          "price": 1000,
                          "category_name": "Example category",
                          "brand_id": 10,
                          "type_name": "Example type",
                          "category_order": 1,
                          "type_order": 1,
                          "server_code": "global",
                          "server_name": "Global",
                          "status": "active",
                          "inquiry_form_key": "example-form",
                          "h2h_description": null,
                          "description": null,
                          "id": 1
                        }
                      ],
                      "meta": {
                        "brands": [
                          {
                            "id": 10,
                            "name": "Example brand",
                            "thumbnail": null,
                            "order": 1
                          }
                        ],
                        "inquiry_forms": {
                          "example-form": {
                            "fields": [
                              {
                                "key": "customer_target",
                                "name": "Player ID",
                                "type": "text"
                              },
                              {
                                "key": "customer_target_zone",
                                "name": "Zone",
                                "type": "text"
                              }
                            ],
                            "notice": null
                          }
                        },
                        "pagination": {
                          "cursor": null,
                          "next_cursor": null,
                          "limit": 100,
                          "total": 1,
                          "has_more": false
                        }
                      },
                      "category": {
                        "name": "Example brand",
                        "slug": "example-brand"
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "legacy": {
                    "summary": "Legacy format",
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "name": "Example product",
                          "sku_code": "EXAMPLE-10",
                          "price": 1000,
                          "category_name": "Example category",
                          "brand_id": 10,
                          "type_name": "Example type",
                          "category_order": 1,
                          "type_order": 1,
                          "server_code": "global",
                          "server_name": "Global",
                          "status": "active",
                          "h2h_description": null,
                          "description": null,
                          "id": 1,
                          "inquiry_fields": {
                            "fields": [
                              {
                                "key": "customer_target",
                                "name": "Player ID",
                                "type": "text"
                              },
                              {
                                "key": "customer_target_zone",
                                "name": "Zone",
                                "type": "text"
                              }
                            ],
                            "notice": null
                          },
                          "brand_name": "Example brand",
                          "brand_order": 1,
                          "brand_thumbnail": null
                        }
                      ],
                      "category": {
                        "name": "Example brand",
                        "slug": "example-brand"
                      }
                    },
                    "x-summary-id": "Format legacy"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Not found."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The request parameters are invalid.",
                      "errors": {
                        "limit": [
                          "Use an integer between 1 and 1000."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "category_slug",
            "in": "path",
            "required": true,
            "description": "Brand slug from data[].slug in the matching brands endpoint. Existing category/type slugs remain supported.",
            "schema": {
              "type": "string"
            },
            "example": "example-brand",
            "x-description-id": "Slug brand dari data[].slug pada daftar brand katalog yang sama. Slug kategori/tipe lama tetap didukung."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000
            },
            "example": 500,
            "x-description-id": "Jumlah produk per halaman, 1–1000. Gunakan 500 untuk sinkronisasi. Tanpa limit, respons reguler berisi seluruh hasil; kirim limit untuk pagination."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Salin meta.pagination.next_cursor dari halaman sebelumnya. Pertahankan filter yang sama selama pagination."
          },
          {
            "name": "server",
            "in": "query",
            "required": false,
            "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "server_code produk dari katalog, bukan zone akun pelanggan. Tidak dikirim atau kosong berarti semua server katalog.",
            "allowEmptyValue": true
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination.",
            "schema": {
              "type": "string",
              "enum": [
                "compact",
                "legacy"
              ]
            },
            "x-description-id": "Tidak dikirim atau kosong memakai compact. legacy menyertakan inquiry_fields langsung dan mengembalikan semua hasil tanpa pagination cursor.",
            "allowEmptyValue": true
          },
          {
            "name": "brand_id",
            "in": "query",
            "required": false,
            "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands.",
            "x-description-id": "Filter memakai data[].brand_id dari daftar brand katalog yang sama. Kosongkan untuk mengambil semua brand.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ]
      }
    },
    "/api/v1/h2h/smart-pricelists": {
      "get": {
        "operationId": "smartPricelist",
        "summary": "Smart catalogue",
        "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.",
        "tags": [
          "catalog"
        ],
        "x-title-id": "Katalog Smart",
        "x-description-id": "Harga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.",
        "x-section": "smartPricelist",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmartCatalogue"
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "name": "Example product",
                          "category_name": "Example category",
                          "brand_id": 10,
                          "type_name": "Example type",
                          "category_order": 1,
                          "type_order": 1,
                          "status": "active",
                          "inquiry_form_key": "example-form",
                          "h2h_description": null,
                          "description": null,
                          "smart_sku_code": "smartEXAMPLE",
                          "min_price": 1000,
                          "max_price": 1000,
                          "variant_count": 1,
                          "variants": [
                            {
                              "sku_code": "EXAMPLE-10",
                              "price": 1000,
                              "status": "active"
                            }
                          ]
                        }
                      ],
                      "meta": {
                        "brands": [
                          {
                            "id": 10,
                            "name": "Example brand",
                            "thumbnail": null,
                            "order": 1
                          }
                        ],
                        "inquiry_forms": {
                          "example-form": {
                            "fields": [
                              {
                                "key": "customer_target",
                                "name": "Player ID",
                                "type": "text"
                              },
                              {
                                "key": "customer_target_zone",
                                "name": "Zone",
                                "type": "text"
                              }
                            ],
                            "notice": null
                          }
                        },
                        "pagination": {
                          "cursor": null,
                          "next_cursor": null,
                          "limit": 100,
                          "has_more": false
                        }
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The request parameters are invalid.",
                      "errors": {
                        "limit": [
                          "Use an integer between 1 and 1000."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000
            },
            "example": 500,
            "x-description-id": "Jumlah produk per halaman, 1–1000. Gunakan 500 untuk sinkronisasi. Default 500."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Salin meta.pagination.next_cursor dari halaman sebelumnya. Pertahankan filter yang sama selama pagination."
          },
          {
            "name": "brand",
            "in": "query",
            "required": false,
            "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id.",
            "schema": {
              "oneOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "deprecated": true,
            "x-description-id": "Alias kompatibilitas: ID atau nama brand persis. Gunakan brand_id untuk integrasi baru."
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug.",
            "schema": {
              "oneOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "deprecated": true,
            "x-description-id": "Filter kompatibilitas kategori utama berdasarkan ID atau nama persis. Gunakan brand_id atau slug brand."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Search product name or Smart SKU.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Cari nama produk atau Smart SKU."
          },
          {
            "name": "brand_id",
            "in": "query",
            "required": false,
            "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands.",
            "x-description-id": "Filter memakai data[].brand_id dari daftar brand katalog yang sama. Kosongkan untuk mengambil semua brand.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ]
      }
    },
    "/api/v1/h2h/smart-pricelists/{category_slug}": {
      "get": {
        "operationId": "smartPricelistCategory",
        "summary": "Smart prices by brand",
        "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.",
        "tags": [
          "catalog"
        ],
        "x-title-id": "Harga Smart per brand",
        "x-description-id": "Harga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.",
        "x-section": "smartPricelistCategory",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmartCatalogue"
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "name": "Example product",
                          "category_name": "Example category",
                          "brand_id": 10,
                          "type_name": "Example type",
                          "category_order": 1,
                          "type_order": 1,
                          "status": "active",
                          "inquiry_form_key": "example-form",
                          "h2h_description": null,
                          "description": null,
                          "smart_sku_code": "smartEXAMPLE",
                          "min_price": 1000,
                          "max_price": 1000,
                          "variant_count": 1,
                          "variants": [
                            {
                              "sku_code": "EXAMPLE-10",
                              "price": 1000,
                              "status": "active"
                            }
                          ]
                        }
                      ],
                      "meta": {
                        "brands": [
                          {
                            "id": 10,
                            "name": "Example brand",
                            "thumbnail": null,
                            "order": 1
                          }
                        ],
                        "inquiry_forms": {
                          "example-form": {
                            "fields": [
                              {
                                "key": "customer_target",
                                "name": "Player ID",
                                "type": "text"
                              },
                              {
                                "key": "customer_target_zone",
                                "name": "Zone",
                                "type": "text"
                              }
                            ],
                            "notice": null
                          }
                        },
                        "pagination": {
                          "cursor": null,
                          "next_cursor": null,
                          "limit": 100,
                          "has_more": false
                        }
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Not found."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The request parameters are invalid.",
                      "errors": {
                        "limit": [
                          "Use an integer between 1 and 1000."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "category_slug",
            "in": "path",
            "required": true,
            "description": "Brand slug from data[].slug in the matching brands endpoint. Existing category/type slugs remain supported.",
            "schema": {
              "type": "string"
            },
            "example": "example-brand",
            "x-description-id": "Slug brand dari data[].slug pada daftar brand katalog yang sama. Slug kategori/tipe lama tetap didukung."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000
            },
            "example": 500,
            "x-description-id": "Jumlah produk per halaman, 1–1000. Gunakan 500 untuk sinkronisasi. Default 500."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Salin meta.pagination.next_cursor dari halaman sebelumnya. Pertahankan filter yang sama selama pagination."
          },
          {
            "name": "brand",
            "in": "query",
            "required": false,
            "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id.",
            "schema": {
              "oneOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "deprecated": true,
            "x-description-id": "Alias kompatibilitas: ID atau nama brand persis. Gunakan brand_id untuk integrasi baru."
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug.",
            "schema": {
              "oneOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "deprecated": true,
            "x-description-id": "Filter kompatibilitas kategori utama berdasarkan ID atau nama persis. Gunakan brand_id atau slug brand."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Search product name or Smart SKU.",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Cari nama produk atau Smart SKU."
          },
          {
            "name": "brand_id",
            "in": "query",
            "required": false,
            "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands.",
            "x-description-id": "Filter memakai data[].brand_id dari daftar brand katalog yang sama. Kosongkan untuk mengambil semua brand.",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ]
      }
    },
    "/api/v1/h2h/pricelists/categories": {
      "get": {
        "operationId": "categories",
        "summary": "Regular catalogue brands",
        "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.",
        "tags": [
          "catalog"
        ],
        "x-title-id": "Daftar brand reguler",
        "x-description-id": "Brand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.",
        "x-section": "categories",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CatalogueBrand"
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "brand_id": 10,
                          "name": "Example brand",
                          "slug": "example-brand",
                          "category": {
                            "id": 1,
                            "name": "Games",
                            "slug": "games"
                          },
                          "type": [
                            {
                              "id": 11,
                              "name": "Diamonds",
                              "slug": "example-diamonds"
                            },
                            {
                              "id": 12,
                              "name": "Passes",
                              "slug": "example-passes"
                            }
                          ]
                        }
                      ]
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "withoutTypes": {
                    "summary": "Brand without child types",
                    "x-summary-id": "Brand tanpa tipe anak",
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "brand_id": 20,
                          "name": "Another brand",
                          "slug": "another-brand",
                          "category": {
                            "id": 1,
                            "name": "Games",
                            "slug": "games"
                          },
                          "type": []
                        }
                      ]
                    }
                  },
                  "withoutParent": {
                    "summary": "Brand without a parent category",
                    "x-summary-id": "Brand tanpa kategori induk",
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "brand_id": 30,
                          "name": "Uncategorized brand",
                          "slug": "uncategorized-brand",
                          "category": null,
                          "type": []
                        }
                      ]
                    }
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/transaction": {
      "post": {
        "operationId": "createTransaction",
        "summary": "Create regular order",
        "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.",
        "tags": [
          "transactions"
        ],
        "x-title-id": "Buat transaksi reguler",
        "x-description-id": "Buat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.",
        "x-section": "createTransaction",
        "responses": {
          "200": {
            "description": "Existing buyer_trx_id: existing transaction, no extra debit",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Transaction"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "processing",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00"
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "with-max-price": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1100,
                        "status": "processing",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "max_price": 1100
                      }
                    },
                    "x-summary-id": "Dengan batas max_price",
                    "summary": "With max_price limit"
                  }
                }
              }
            }
          },
          "201": {
            "description": "Request accepted. Read data.status for the order result.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/Transaction"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "message": "Transaction successfully created and queued.",
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "processing",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00"
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "with-max-price": {
                    "value": {
                      "success": true,
                      "message": "Transaction successfully created and queued.",
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1100,
                        "status": "processing",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "max_price": 1100
                      }
                    },
                    "x-summary-id": "Dengan batas max_price",
                    "summary": "With max_price limit"
                  }
                }
              }
            },
            "x-description-id": "Request diterima. Baca data.status untuk hasil pesanan."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The customer target field is required.",
                      "errors": {
                        "customer_target": [
                          "The customer target field is required."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  },
                  "max-price-too-low": {
                    "value": {
                      "success": false,
                      "error_code": "MAX_PRICE_TOO_LOW",
                      "message": "max_price is below the current H2H price for your tier. Please refresh the price list."
                    },
                    "x-summary-id": "Batas harga terlalu rendah",
                    "summary": "Price limit too low"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Request outcome is uncertain; check the order by buyer_trx_id before retrying.",
            "x-description-id": "Hasil request belum pasti; cek pesanan memakai buyer_trx_id sebelum retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "unavailable": {
                    "value": {
                      "success": false,
                      "message": "Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference."
                    },
                    "x-summary-id": "Produk belum tersedia",
                    "summary": "Product unavailable"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTransaction"
              },
              "examples": {
                "basic": {
                  "summary": "Regular order (sandbox)",
                  "value": {
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "buyer_trx_id": "example-order-001",
                    "sandbox_mode": true,
                    "additional_data": {
                      "email": "buyer@example.com"
                    }
                  },
                  "x-summary-id": "Pesanan biasa (sandbox)"
                },
                "withMaxPrice": {
                  "summary": "With price limit (sandbox)",
                  "value": {
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "buyer_trx_id": "example-order-001",
                    "sandbox_mode": true,
                    "additional_data": {
                      "email": "buyer@example.com"
                    },
                    "max_price": 1100
                  },
                  "x-summary-id": "Dengan batas harga (sandbox)"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/smart-transaction": {
      "post": {
        "operationId": "smartOrder",
        "summary": "Create Smart Order",
        "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.",
        "tags": [
          "transactions"
        ],
        "x-title-id": "Buat Smart Order",
        "x-description-id": "Buat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.",
        "x-section": "smartOrder",
        "responses": {
          "200": {
            "description": "Existing buyer_trx_id: existing transaction, no extra debit",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/SmartTransaction"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-smart-order-001",
                        "sku_code": "smartEXAMPLE",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1100,
                        "status": "processing",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "max_bid": 1100,
                        "fulfilled_sku_code": null,
                        "attempts_count": 0
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            }
          },
          "201": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/SmartCreateAcknowledgement"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "message": "Transaction successfully created and queued.",
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-smart-order-001",
                        "sku_code": "smartEXAMPLE",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1100,
                        "status": "processing",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "max_bid": 1100
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The customer target field is required.",
                      "errors": {
                        "customer_target": [
                          "The customer target field is required."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Request outcome is uncertain; check the order by buyer_trx_id before retrying.",
            "x-description-id": "Hasil request belum pasti; cek pesanan memakai buyer_trx_id sebelum retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "unavailable": {
                    "value": {
                      "success": false,
                      "message": "Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference."
                    },
                    "x-summary-id": "Produk belum tersedia",
                    "summary": "Product unavailable"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSmartTransaction"
              },
              "examples": {
                "sandbox": {
                  "value": {
                    "sku_code": "smartEXAMPLE",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "buyer_trx_id": "example-smart-order-001",
                    "sandbox_mode": true,
                    "additional_data": {
                      "email": "buyer@example.com"
                    },
                    "max_bid": 1100
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/transaction/{id}": {
      "get": {
        "operationId": "transactionStatus",
        "summary": "Transaction status",
        "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.",
        "tags": [
          "transactions"
        ],
        "x-title-id": "Status transaksi",
        "x-description-id": "Cari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.",
        "x-section": "transactionStatus",
        "responses": {
          "200": {
            "description": "Order details. Read data.status for the current result.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/Transaction"
                        },
                        {
                          "$ref": "#/components/schemas/SmartTransaction"
                        }
                      ]
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "processing",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00"
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "paidAccountCheck": {
                    "summary": "Paid account check",
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": null,
                        "sku_code": null,
                        "product_name": "Pemeriksaan akun",
                        "customer_target": "123456789",
                        "customer_target_zone": null,
                        "price": 1,
                        "status": "success",
                        "serial_number": null,
                        "webhook_delivery_status": "skipped",
                        "is_sandbox": false,
                        "created_at": "2026-10-02T03:00:00+00:00"
                      }
                    },
                    "x-summary-id": "Pemeriksaan akun berbayar"
                  },
                  "smartFulfilled": {
                    "summary": "Smart fulfilled",
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-smart-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "success",
                        "serial_number": "EXAMPLE-SN-001",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "max_bid": 1100,
                        "fulfilled_sku_code": "EXAMPLE-10",
                        "attempts_count": 1
                      }
                    },
                    "x-summary-id": "Smart berhasil"
                  },
                  "regular-max-price-settled": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1071,
                        "status": "success",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "max_price": 1100
                      }
                    },
                    "x-summary-id": "Reguler sukses dengan batas harga",
                    "summary": "Regular success with price limit"
                  },
                  "regular-provider-price-changed": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1100,
                        "status": "failed",
                        "serial_number": "",
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "max_price": 1100,
                        "error_code": "PROVIDER_PRICE_CHANGED",
                        "message": "The product price has changed. Please refresh the price list and try placing a new order again in a few moments."
                      }
                    },
                    "x-summary-id": "Gagal karena perubahan harga",
                    "summary": "Failed due to price change"
                  },
                  "actionRequired": {
                    "summary": "Buyer code required",
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "processing",
                        "serial_number": null,
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "need_action": true,
                        "action": {
                          "id": "11111111-1111-4111-8111-111111111111",
                          "type": "two_factor",
                          "state": "required",
                          "version": 1,
                          "message": "Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.",
                          "can_submit": true,
                          "updated_at": "2026-10-10T08:01:00+07:00"
                        }
                      }
                    },
                    "x-summary-id": "Kode pembeli diperlukan"
                  },
                  "codeReceived": {
                    "summary": "Code received",
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "processing",
                        "serial_number": null,
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "need_action": false,
                        "action": {
                          "id": "11111111-1111-4111-8111-111111111111",
                          "type": "two_factor",
                          "state": "submitted",
                          "version": 2,
                          "message": "Your verification code has been received and is awaiting admin handling.",
                          "can_submit": false,
                          "updated_at": "2026-10-10T08:02:00+07:00"
                        }
                      }
                    },
                    "x-summary-id": "Kode telah diterima"
                  },
                  "actionResolved": {
                    "summary": "Verification resolved",
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "processing",
                        "serial_number": null,
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "need_action": false,
                        "action": {
                          "id": "11111111-1111-4111-8111-111111111111",
                          "type": "two_factor",
                          "state": "resolved",
                          "version": 3,
                          "message": "The requested action has been completed.",
                          "can_submit": false,
                          "updated_at": "2026-10-10T08:03:00+07:00"
                        }
                      }
                    },
                    "x-summary-id": "Verifikasi selesai"
                  },
                  "actionRequestedAgain": {
                    "summary": "New code requested",
                    "value": {
                      "success": true,
                      "data": {
                        "id": "11111111-1111-4111-8111-111111111111",
                        "buyer_trx_id": "example-order-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "price": 1000,
                        "status": "processing",
                        "serial_number": null,
                        "webhook_delivery_status": "pending",
                        "is_sandbox": true,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "need_action": true,
                        "action": {
                          "id": "11111111-1111-4111-8111-111111111111",
                          "type": "two_factor",
                          "state": "required",
                          "version": 4,
                          "message": "Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.",
                          "can_submit": true,
                          "updated_at": "2026-10-10T08:04:00+07:00"
                        }
                      }
                    },
                    "x-summary-id": "Kode baru diminta"
                  }
                }
              }
            },
            "x-description-id": "Detail pesanan. Baca data.status untuk hasil saat ini."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "not-found": {
                    "value": {
                      "success": false,
                      "message": "Transaction not found."
                    },
                    "x-summary-id": "Tidak ditemukan",
                    "summary": "Not found"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Owned transaction UUID or buyer_trx_id",
            "schema": {
              "type": "string"
            },
            "example": "11111111-1111-4111-8111-111111111111",
            "x-description-id": "ID milik akun Anda dari hasil create; status transaksi juga menerima buyer_trx_id."
          }
        ]
      }
    },
    "/api/v1/h2h/bulk-orders": {
      "post": {
        "operationId": "createBulk",
        "summary": "Create bulk order",
        "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.",
        "tags": [
          "bulk"
        ],
        "x-title-id": "Buat bulk order",
        "x-description-id": "Membuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.",
        "x-section": "createBulk",
        "responses": {
          "200": {
            "description": "Identical payload and key: original bulk, no additional debit",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/BulkOrder"
                    }
                  },
                  "required": [
                    "success",
                    "message",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "message": "Returning original bulk order.",
                      "data": {
                        "id": "22222222-2222-4222-8222-222222222222",
                        "buyer_bulk_id": "example-bulk-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "order_count": 3,
                        "unit_price": 1000,
                        "total_debit": 0,
                        "status": "queued",
                        "via": "api",
                        "is_sandbox": true,
                        "invoice_available": false,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "completed_at": null,
                        "total_count": 3,
                        "success_count": 0,
                        "failed_count": 0,
                        "processed_count": 0,
                        "remaining_count": 3,
                        "processing_count": 0,
                        "queued_count": 3
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            }
          },
          "201": {
            "description": "Request accepted. Read data.status for the order result.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/BulkOrder"
                    }
                  },
                  "required": [
                    "success",
                    "message",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "message": "Bulk order created and queued.",
                      "data": {
                        "id": "22222222-2222-4222-8222-222222222222",
                        "buyer_bulk_id": "example-bulk-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "order_count": 3,
                        "unit_price": 1000,
                        "total_debit": 0,
                        "status": "queued",
                        "via": "api",
                        "is_sandbox": true,
                        "invoice_available": false,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "completed_at": null,
                        "total_count": 3,
                        "success_count": 0,
                        "failed_count": 0,
                        "processed_count": 0,
                        "remaining_count": 3,
                        "processing_count": 0,
                        "queued_count": 3
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "withoutZone": {
                    "summary": "Without zone",
                    "value": {
                      "success": true,
                      "message": "Bulk order created and queued.",
                      "data": {
                        "id": "22222222-2222-4222-8222-222222222222",
                        "buyer_bulk_id": "example-bulk-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": null,
                        "order_count": 3,
                        "unit_price": 1000,
                        "total_debit": 0,
                        "status": "queued",
                        "via": "api",
                        "is_sandbox": true,
                        "invoice_available": false,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "completed_at": null,
                        "total_count": 3,
                        "success_count": 0,
                        "failed_count": 0,
                        "processed_count": 0,
                        "remaining_count": 3,
                        "processing_count": 0,
                        "queued_count": 3
                      }
                    },
                    "x-summary-id": "Tanpa zone"
                  }
                }
              }
            },
            "x-description-id": "Request diterima. Baca data.status untuk hasil pesanan."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "409": {
            "description": "A different request already uses this buyer_bulk_id",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "conflict": {
                    "value": {
                      "message": "buyer_bulk_id sudah digunakan dengan payload berbeda."
                    },
                    "x-summary-id": "Request tidak dapat dilanjutkan",
                    "summary": "Request conflict"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The customer target field is required.",
                      "errors": {
                        "customer_target": [
                          "The customer target field is required."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBulkOrder"
              },
              "examples": {
                "sandbox": {
                  "value": {
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "sandbox_mode": true,
                    "additional_data": {
                      "email": "buyer@example.com"
                    },
                    "order_count": 3,
                    "buyer_bulk_id": "example-bulk-001"
                  }
                }
              }
            }
          }
        }
      },
      "get": {
        "operationId": "bulkHistory",
        "summary": "Bulk history",
        "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.",
        "tags": [
          "bulk"
        ],
        "x-title-id": "History bulk",
        "x-description-id": "Pesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.",
        "x-section": "bulkHistory",
        "responses": {
          "200": {
            "description": "Bulk order data and progress.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/BulkPage"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "current_page": 1,
                        "data": [
                          {
                            "id": "22222222-2222-4222-8222-222222222222",
                            "buyer_bulk_id": "example-bulk-001",
                            "sku_code": "EXAMPLE-10",
                            "product_name": "Example product",
                            "customer_target": "123456789",
                            "customer_target_zone": "1234",
                            "order_count": 3,
                            "unit_price": 1000,
                            "total_debit": 0,
                            "status": "processing",
                            "via": "api",
                            "is_sandbox": true,
                            "invoice_available": false,
                            "created_at": "2026-10-02T03:00:00+00:00",
                            "completed_at": null,
                            "total_count": 3,
                            "success_count": 1,
                            "failed_count": 1,
                            "processed_count": 2,
                            "remaining_count": 1,
                            "processing_count": 1,
                            "queued_count": 0
                          }
                        ],
                        "first_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders?page=1",
                        "from": 1,
                        "last_page": 1,
                        "last_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders?page=1",
                        "links": [
                          {
                            "url": null,
                            "label": "Previous",
                            "active": false
                          }
                        ],
                        "next_page_url": null,
                        "path": "https://api.melostore.id/api/v1/h2h/bulk-orders",
                        "per_page": 15,
                        "prev_page_url": null,
                        "to": 1,
                        "total": 1
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "emptyPage": {
                    "summary": "Empty page",
                    "value": {
                      "success": true,
                      "data": {
                        "current_page": 1,
                        "data": [],
                        "first_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders?page=1",
                        "from": null,
                        "last_page": 1,
                        "last_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders?page=1",
                        "links": [
                          {
                            "url": null,
                            "label": "Previous",
                            "active": false
                          }
                        ],
                        "next_page_url": null,
                        "path": "https://api.melostore.id/api/v1/h2h/bulk-orders",
                        "per_page": 15,
                        "prev_page_url": null,
                        "to": null,
                        "total": 0
                      }
                    },
                    "x-summary-id": "Halaman kosong"
                  }
                }
              }
            },
            "x-description-id": "Data dan progres pesanan bulk."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The page field must be at least 1.",
                      "errors": {
                        "page": [
                          "The page field must be at least 1."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "integer"
            },
            "example": 1,
            "x-description-id": "Nomor halaman, mulai dari 1."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "string",
              "enum": [
                "queued",
                "processing",
                "completed",
                "partially_failed",
                "failed"
              ]
            },
            "x-description-id": "Filter status bulk sesuai nilai yang tersedia."
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Buyer reference, target, SKU or product name",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Cari referensi, target, SKU, atau nama produk."
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Tanggal awal YYYY-MM-DD, zona Asia/Jakarta."
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD, not earlier than start_date",
            "schema": {
              "type": "string"
            },
            "x-description-id": "Tanggal akhir YYYY-MM-DD, tidak sebelum tanggal awal."
          }
        ]
      }
    },
    "/api/v1/h2h/bulk-orders/{id}": {
      "get": {
        "operationId": "bulkDetail",
        "summary": "Bulk progress",
        "description": "Read the bulk status and order counts. processed_count includes successful and failed orders; remaining_count includes orders still waiting or processing.",
        "tags": [
          "bulk"
        ],
        "x-title-id": "Progres bulk",
        "x-description-id": "Lihat status bulk dan jumlah pesanan. processed_count mencakup pesanan berhasil dan gagal; remaining_count mencakup pesanan yang masih menunggu atau diproses.",
        "x-section": "bulkDetail",
        "responses": {
          "200": {
            "description": "Bulk order data and progress.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/BulkOrder"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "id": "22222222-2222-4222-8222-222222222222",
                        "buyer_bulk_id": "example-bulk-001",
                        "sku_code": "EXAMPLE-10",
                        "product_name": "Example product",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "order_count": 3,
                        "unit_price": 1000,
                        "total_debit": 0,
                        "status": "processing",
                        "via": "api",
                        "is_sandbox": true,
                        "invoice_available": false,
                        "created_at": "2026-10-02T03:00:00+00:00",
                        "completed_at": null,
                        "total_count": 3,
                        "success_count": 1,
                        "failed_count": 1,
                        "processed_count": 2,
                        "remaining_count": 1,
                        "processing_count": 1,
                        "queued_count": 0
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            },
            "x-description-id": "Data dan progres pesanan bulk."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "not-found": {
                    "value": {
                      "message": "Bulk order not found."
                    },
                    "x-summary-id": "Tidak ditemukan",
                    "summary": "Not found"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Bulk UUID returned by POST /bulk-orders. Use the bulk ID, not buyer_bulk_id or a child transaction ID.",
            "schema": {
              "type": "string"
            },
            "example": "22222222-2222-4222-8222-222222222222",
            "x-description-id": "UUID bulk dari POST /bulk-orders. Gunakan ID bulk, bukan buyer_bulk_id atau ID transaksi anak."
          }
        ]
      }
    },
    "/api/v1/h2h/bulk-orders/{id}/transactions": {
      "get": {
        "operationId": "bulkTransactions",
        "summary": "Bulk child transactions",
        "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.",
        "tags": [
          "bulk"
        ],
        "x-title-id": "Transaksi anak bulk",
        "x-description-id": "Pesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.",
        "x-section": "bulkTransactions",
        "responses": {
          "200": {
            "description": "Bulk order data and progress.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/ChildPage"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "current_page": 1,
                        "data": [
                          {
                            "id": "11111111-1111-4111-8111-111111111111",
                            "buyer_trx_id": "BULK-22222222-2222-4222-8222-222222222222-1",
                            "bulk_order_id": "22222222-2222-4222-8222-222222222222",
                            "buyer_bulk_id": "example-bulk-001",
                            "bulk_sequence": 1,
                            "sku_code": "EXAMPLE-10",
                            "customer_target": "123456789",
                            "customer_target_zone": "1234",
                            "price": 1000,
                            "status": "success",
                            "serial_number": "EXAMPLE-SN-001",
                            "error_code": null,
                            "message": null,
                            "created_at": "2026-10-02T03:00:00+00:00",
                            "updated_at": "2026-10-02T03:00:00+00:00"
                          }
                        ],
                        "first_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1",
                        "from": 1,
                        "last_page": 1,
                        "last_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1",
                        "links": [
                          {
                            "url": null,
                            "label": "Previous",
                            "active": false
                          }
                        ],
                        "next_page_url": null,
                        "path": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions",
                        "per_page": 15,
                        "prev_page_url": null,
                        "to": 1,
                        "total": 1
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "emptyPage": {
                    "summary": "Empty page",
                    "value": {
                      "success": true,
                      "data": {
                        "current_page": 1,
                        "data": [],
                        "first_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1",
                        "from": null,
                        "last_page": 1,
                        "last_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1",
                        "links": [
                          {
                            "url": null,
                            "label": "Previous",
                            "active": false
                          }
                        ],
                        "next_page_url": null,
                        "path": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions",
                        "per_page": 15,
                        "prev_page_url": null,
                        "to": null,
                        "total": 0
                      }
                    },
                    "x-summary-id": "Halaman kosong"
                  },
                  "withoutZone": {
                    "summary": "Without zone",
                    "value": {
                      "success": true,
                      "data": {
                        "current_page": 1,
                        "data": [
                          {
                            "id": "11111111-1111-4111-8111-111111111111",
                            "buyer_trx_id": "BULK-22222222-2222-4222-8222-222222222222-1",
                            "bulk_order_id": "22222222-2222-4222-8222-222222222222",
                            "buyer_bulk_id": "example-bulk-001",
                            "bulk_sequence": 1,
                            "sku_code": "EXAMPLE-10",
                            "customer_target": "123456789",
                            "customer_target_zone": null,
                            "price": 1000,
                            "status": "success",
                            "serial_number": "EXAMPLE-SN-001",
                            "error_code": null,
                            "message": null,
                            "created_at": "2026-10-02T03:00:00+00:00",
                            "updated_at": "2026-10-02T03:00:00+00:00"
                          }
                        ],
                        "first_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1",
                        "from": 1,
                        "last_page": 1,
                        "last_page_url": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1",
                        "links": [
                          {
                            "url": null,
                            "label": "Previous",
                            "active": false
                          }
                        ],
                        "next_page_url": null,
                        "path": "https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions",
                        "per_page": 15,
                        "prev_page_url": null,
                        "to": 1,
                        "total": 1
                      }
                    },
                    "x-summary-id": "Tanpa zone"
                  }
                }
              }
            },
            "x-description-id": "Data dan progres pesanan bulk."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "not-found": {
                    "value": {
                      "message": "Bulk order not found."
                    },
                    "x-summary-id": "Tidak ditemukan",
                    "summary": "Not found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The page field must be at least 1.",
                      "errors": {
                        "page": [
                          "The page field must be at least 1."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Bulk UUID returned by POST /bulk-orders. Use the bulk ID, not buyer_bulk_id or a child transaction ID.",
            "schema": {
              "type": "string"
            },
            "example": "22222222-2222-4222-8222-222222222222",
            "x-description-id": "UUID bulk dari POST /bulk-orders. Gunakan ID bulk, bukan buyer_bulk_id atau ID transaksi anak."
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "",
            "schema": {
              "type": "integer"
            },
            "example": 1,
            "x-description-id": "Nomor halaman, mulai dari 1."
          }
        ]
      }
    },
    "/api/v1/h2h/bulk-orders/{id}/invoice": {
      "get": {
        "operationId": "bulkInvoice",
        "summary": "Download final bulk invoice",
        "description": "Download one PDF summarising the completed bulk's costs and refunds. HTTP 409 means the invoice is not yet available or the bulk uses sandbox. A live bulk where all orders fail shows a full refund and zero final cost.",
        "tags": [
          "bulk"
        ],
        "x-title-id": "Unduh invoice akhir bulk",
        "x-description-id": "Unduh satu PDF yang merangkum biaya dan refund bulk yang selesai. HTTP 409 berarti invoice belum tersedia atau bulk menggunakan sandbox. Jika semua pesanan live gagal, invoice menunjukkan refund penuh dan biaya akhir nol.",
        "x-section": "bulkInvoice",
        "responses": {
          "200": {
            "description": "Final PDF attachment, stable number H2H-BULK-{UUID}",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                },
                "description": "attachment; filename=\"H2H-BULK-{UUID}.pdf\""
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "x-description-id": "Lampiran PDF akhir dengan nomor invoice tetap H2H-BULK-{UUID}."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "not-found": {
                    "value": {
                      "message": "Bulk order not found."
                    },
                    "x-summary-id": "Tidak ditemukan",
                    "summary": "Not found"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Invoice not yet available, or bulk uses sandbox",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "conflict": {
                    "value": {
                      "message": "Invoice bulk tersedia setelah seluruh transaksi riil selesai."
                    },
                    "x-summary-id": "Request tidak dapat dilanjutkan",
                    "summary": "Request conflict"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Bulk UUID returned by POST /bulk-orders. Use the bulk ID, not buyer_bulk_id or a child transaction ID.",
            "schema": {
              "type": "string"
            },
            "example": "22222222-2222-4222-8222-222222222222",
            "x-description-id": "UUID bulk dari POST /bulk-orders. Gunakan ID bulk, bukan buyer_bulk_id atau ID transaksi anak."
          }
        ]
      }
    },
    "/api/v1/h2h/check-nickname/games": {
      "get": {
        "operationId": "nicknameGames",
        "summary": "Supported accounts/games",
        "description": "Public list and zone requirements. Zone reference in these docs is a snapshot.",
        "tags": [
          "accounts"
        ],
        "x-title-id": "Game/akun yang didukung",
        "x-description-id": "Daftar publik serta kebutuhan zone. Referensi zone docs merupakan snapshot.",
        "x-section": "nicknameGames",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Games"
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "games": [
                        {
                          "game_code": "mobile-legends",
                          "name": "Mobile Legends",
                          "type": "game",
                          "zone_required": true,
                          "zone_values": null,
                          "params": [
                            {
                              "name": "customer_target"
                            },
                            {
                              "name": "customer_target_zone"
                            }
                          ],
                          "status": "available"
                        }
                      ]
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          }
        },
        "security": []
      }
    },
    "/api/v1/h2h/check-nickname/plan": {
      "get": {
        "operationId": "nicknamePlan",
        "summary": "Account-check plan",
        "description": "Public current allowance/rates. Values in examples are fictional snapshots, not an active quote.",
        "tags": [
          "accounts"
        ],
        "x-title-id": "Paket pemeriksaan akun",
        "x-description-id": "Jatah/tarif aktif publik. Angka contoh adalah snapshot fiktif, bukan tarif aktif.",
        "x-section": "nicknamePlan",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "const": true
                    },
                    "data": {
                      "$ref": "#/components/schemas/NicknamePlan"
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "free_daily_limit": 40,
                        "free_minute_limit": 20,
                        "paid_price_mc": 1,
                        "paid_minute_limit": 20,
                        "resets_at": "00:00 UTC"
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          }
        },
        "security": []
      }
    },
    "/api/v1/h2h/check-nickname": {
      "post": {
        "operationId": "checkNickname",
        "summary": "Check account nickname",
        "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.",
        "tags": [
          "accounts"
        ],
        "x-title-id": "Periksa nama akun",
        "x-description-id": "Mode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.",
        "x-section": "checkNickname",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-Nickname-RateLimit-Limit": {
                "description": "Account-check requests per minute",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Nickname-RateLimit-Remaining": {
                "description": "Remaining account-check requests",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NicknameResult"
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "game_code": "mobile-legends",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "username": "Example Player",
                        "region": "ID",
                        "region_type": "country"
                      },
                      "billing": {
                        "charged_mc": 0,
                        "free_remaining_today": 39,
                        "transaction_id": null
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "withoutZoneOrRegion": {
                    "summary": "Without zone or region",
                    "value": {
                      "success": true,
                      "data": {
                        "game_code": "pubg-mobile",
                        "customer_target": "123456789",
                        "customer_target_zone": null,
                        "username": "Example Player",
                        "region": null,
                        "region_type": null
                      },
                      "billing": {
                        "charged_mc": 0,
                        "free_remaining_today": 39,
                        "transaction_id": null
                      }
                    },
                    "x-summary-id": "Tanpa zone atau region"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "402": {
            "description": "Insufficient account-check balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Saldo H2H tidak mencukupi untuk pemeriksaan akun.",
                      "error": {
                        "code": 4020,
                        "message": "Saldo H2H tidak mencukupi untuk pemeriksaan akun.",
                        "category": "insufficient_balance"
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Akun tidak ditemukan.",
                      "error": {
                        "code": 4001,
                        "message": "Akun tidak ditemukan.",
                        "category": "not_found"
                      },
                      "billing": {
                        "charged_mc": 0,
                        "free_remaining_today": 39,
                        "transaction_id": null
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The customer target field is required.",
                      "errors": {
                        "customer_target": [
                          "The customer target field is required."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Nickname-RateLimit-Limit": {
                "description": "Account-check requests per minute",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Nickname-RateLimit-Remaining": {
                "description": "Remaining account-check requests",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Batas pemeriksaan akun tercapai. Coba lagi setelah kuota diperbarui.",
                      "error": {
                        "code": 4290,
                        "category": "limit_reached"
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "502": {
            "description": "Account check temporarily unavailable",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Sistem verifikasi sedang mengalami gangguan.",
                      "error": {
                        "code": 4007,
                        "message": "Sistem verifikasi sedang mengalami gangguan.",
                        "category": "server"
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckNickname"
              },
              "examples": {
                "example": {
                  "value": {
                    "game_code": "mobile-legends",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234"
                  },
                  "x-summary-id": "Contoh berhasil",
                  "summary": "Successful example"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/mobile-legends/purchase-limit": {
      "post": {
        "operationId": "purchaseLimit",
        "summary": "Mobile Legends purchase limit",
        "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.",
        "tags": [
          "accounts"
        ],
        "x-title-id": "Batas pembelian Mobile Legends",
        "x-description-id": "Endpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.",
        "x-section": "purchaseLimit",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-Nickname-RateLimit-Limit": {
                "description": "Account-check requests per minute",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Nickname-RateLimit-Remaining": {
                "description": "Remaining account-check requests",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PurchaseLimitResult"
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": {
                        "game_code": "mobile-legends",
                        "customer_target": "123456789",
                        "customer_target_zone": "1234",
                        "username": "Example Player",
                        "weekly_pass": {
                          "limit_reached": false,
                          "items": [
                            {
                              "package_code": "weekly-pass",
                              "limit_reached": false
                            }
                          ]
                        },
                        "double_diamonds": {
                          "eligible": true,
                          "items": [
                            {
                              "package_code": "double-diamonds-50",
                              "limit_reached": false
                            }
                          ]
                        }
                      },
                      "billing": {
                        "charged_mc": 0,
                        "free_remaining_today": 39,
                        "transaction_id": null
                      }
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "402": {
            "description": "Insufficient account-check balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Saldo H2H tidak mencukupi untuk pemeriksaan akun.",
                      "error": {
                        "code": 4020,
                        "message": "Saldo H2H tidak mencukupi untuk pemeriksaan akun.",
                        "category": "insufficient_balance"
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Owned resource/category/account not found",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Akun tidak ditemukan.",
                      "error": {
                        "code": 4001,
                        "message": "Akun tidak ditemukan.",
                        "category": "not_found"
                      },
                      "billing": {
                        "charged_mc": 0,
                        "free_remaining_today": 39,
                        "transaction_id": null
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation, product unavailable or insufficient order balance",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "validation": {
                    "value": {
                      "message": "The customer target field is required.",
                      "errors": {
                        "customer_target": [
                          "The customer target field is required."
                        ]
                      }
                    },
                    "x-summary-id": "Parameter tidak valid",
                    "summary": "Invalid parameters"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Nickname-RateLimit-Limit": {
                "description": "Account-check requests per minute",
                "schema": {
                  "type": "integer"
                }
              },
              "X-Nickname-RateLimit-Remaining": {
                "description": "Remaining account-check requests",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Batas pemeriksaan akun tercapai. Coba lagi setelah kuota diperbarui.",
                      "error": {
                        "code": 4290,
                        "category": "limit_reached"
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "502": {
            "description": "Account check temporarily unavailable",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Sistem verifikasi sedang mengalami gangguan.",
                      "error": {
                        "code": 4007,
                        "message": "Sistem verifikasi sedang mengalami gangguan.",
                        "category": "server"
                      }
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckPurchaseLimit"
              },
              "examples": {
                "example": {
                  "value": {
                    "customer_target": "123456789",
                    "customer_target_zone": "1234"
                  },
                  "x-summary-id": "Contoh berhasil",
                  "summary": "Successful example"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/transactions/2fa": {
      "post": {
        "operationId": "submitTwoFactor",
        "summary": "Submit a two-factor verification code",
        "description": "Submit a requested code for manual admin handling, for regular or Smart orders. Requires X-API-Key and X-Secret-Key and the existing IP whitelist. Limit: 5 requests/minute per owner and transaction. HTTP 202 confirms receipt, not validity. Trim code to 1–128 characters without control characters. Retry the same code if delivery is uncertain; a different code is rejected until a new request. This endpoint never creates an order or changes transaction/financial status.",
        "tags": [
          "transactions"
        ],
        "x-title-id": "Kirim kode verifikasi 2FA",
        "x-description-id": "Kirim kode yang diminta untuk penanganan admin pada transaksi reguler atau Smart. Gunakan X-API-Key, X-Secret-Key, dan IP whitelist yang berlaku. Batas 5 permintaan/menit per pemilik dan transaksi. HTTP 202 berarti diterima, bukan terbukti valid. Ulangi kode yang sama jika respons belum diterima; kode berbeda ditolak sampai permintaan baru. Status transaksi dan keuangan tidak berubah.",
        "x-section": "submitTwoFactor",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitTwoFactor"
              },
              "examples": {
                "submit": {
                  "value": {
                    "buyer_trx_id": "example-order-001",
                    "code": "fictional-alpha-91",
                    "action_id": "11111111-1111-4111-8111-111111111111",
                    "action_version": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Identical-code retry; previous receipt returned without another notification.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "message",
                    "data"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ActionSnapshot"
                    }
                  }
                },
                "examples": {
                  "received": {
                    "value": {
                      "success": true,
                      "message": "Your verification code has been received and is awaiting admin handling.",
                      "data": {
                        "need_action": false,
                        "action": {
                          "id": "11111111-1111-4111-8111-111111111111",
                          "type": "two_factor",
                          "state": "submitted",
                          "version": 2,
                          "message": "Your verification code has been received and is awaiting admin handling.",
                          "can_submit": false,
                          "updated_at": "2026-10-10T08:02:00+07:00"
                        }
                      }
                    },
                    "x-summary-id": "Kode diterima",
                    "summary": "Code accepted"
                  }
                }
              }
            }
          },
          "202": {
            "description": "Code accepted for admin handling.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "message",
                    "data"
                  ],
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "$ref": "#/components/schemas/ActionSnapshot"
                    }
                  }
                },
                "examples": {
                  "received": {
                    "value": {
                      "success": true,
                      "message": "Your verification code has been received and is awaiting admin handling.",
                      "data": {
                        "need_action": false,
                        "action": {
                          "id": "11111111-1111-4111-8111-111111111111",
                          "type": "two_factor",
                          "state": "submitted",
                          "version": 2,
                          "message": "Your verification code has been received and is awaiting admin handling.",
                          "can_submit": false,
                          "updated_at": "2026-10-10T08:02:00+07:00"
                        }
                      }
                    },
                    "x-summary-id": "Kode diterima",
                    "summary": "Code accepted"
                  }
                }
              }
            },
            "x-description-id": "Kode diterima untuk penanganan admin."
          },
          "401": {
            "description": "Missing or invalid credentials.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {}
              }
            }
          },
          "403": {
            "description": "Account or IP access denied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {}
              }
            }
          },
          "404": {
            "description": "Buyer reference not found in the caller profile.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {}
              }
            }
          },
          "409": {
            "description": "No current action, final transaction, stale action/version, or a different code was already submitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {}
              }
            }
          },
          "422": {
            "description": "Invalid code or payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {}
              }
            }
          },
          "429": {
            "description": "Five submissions per minute exceeded. Wait before retrying.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {}
              }
            }
          }
        }
      }
    },
    "/api/v1/h2h/smart-pricelists/categories": {
      "get": {
        "operationId": "smartCategories",
        "summary": "Smart catalogue brands",
        "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.",
        "tags": [
          "catalog"
        ],
        "x-title-id": "Daftar brand Smart",
        "x-description-id": "Brand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.",
        "x-section": "smartCategories",
        "responses": {
          "200": {
            "description": "Request succeeded.",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CatalogueBrand"
                      }
                    }
                  },
                  "required": [
                    "success",
                    "data"
                  ]
                },
                "examples": {
                  "example": {
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "brand_id": 10,
                          "name": "Example brand",
                          "slug": "example-brand",
                          "category": {
                            "id": 1,
                            "name": "Games",
                            "slug": "games"
                          },
                          "type": [
                            {
                              "id": 11,
                              "name": "Diamonds",
                              "slug": "example-diamonds"
                            },
                            {
                              "id": 12,
                              "name": "Passes",
                              "slug": "example-passes"
                            }
                          ]
                        }
                      ]
                    },
                    "x-summary-id": "Contoh berhasil",
                    "summary": "Successful example"
                  },
                  "withoutTypes": {
                    "summary": "Brand without child types",
                    "x-summary-id": "Brand tanpa tipe anak",
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "brand_id": 20,
                          "name": "Another brand",
                          "slug": "another-brand",
                          "category": {
                            "id": 1,
                            "name": "Games",
                            "slug": "games"
                          },
                          "type": []
                        }
                      ]
                    }
                  },
                  "withoutParent": {
                    "summary": "Brand without a parent category",
                    "x-summary-id": "Brand tanpa kategori induk",
                    "value": {
                      "success": true,
                      "data": [
                        {
                          "brand_id": 30,
                          "name": "Uncategorized brand",
                          "slug": "uncategorized-brand",
                          "category": null,
                          "type": []
                        }
                      ]
                    }
                  }
                }
              }
            },
            "x-description-id": "Request berhasil."
          },
          "401": {
            "description": "Authentication missing/invalid",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Unauthorized: Missing X-API-Key or X-Secret-Key headers."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Account/IP forbidden",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Forbidden: H2H API access is not active for this account."
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          },
          "429": {
            "description": "Tier, catalogue or nickname limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying a rate-limited request",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "General requests per minute for the account tier",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining general requests in the current minute",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "error": {
                    "value": {
                      "success": false,
                      "message": "Too Many Requests"
                    },
                    "x-summary-id": "Galat",
                    "summary": "Error"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "transactionCompleted": {
      "post": {
        "summary": "Per-transaction result sent to partner-configured webhook URL",
        "description": "Final results for API orders and individual bulk orders. Verify raw-body HMAC-SHA256 using Webhook Secret, save events durably before returning 2xx, and deduplicate repeated deliveries. Action events can arrive while processing; they do not finalize an order. Final callback delivery uses up to three attempts with retry delays of 30 and 120 seconds; delivery may be later. Respond within 10 seconds. If delivery fails, check transaction status. Dashboard orders do not send partner callbacks.",
        "security": [],
        "parameters": [
          {
            "name": "X-H2H-Signature",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Hex HMAC-SHA256 of the exact raw body using webhook_secret"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/RegularCallback"
                  },
                  {
                    "$ref": "#/components/schemas/SmartCallback"
                  },
                  {
                    "$ref": "#/components/schemas/BulkCallback"
                  },
                  {
                    "$ref": "#/components/schemas/ActionCallback"
                  }
                ]
              },
              "examples": {
                "regular-success": {
                  "value": {
                    "id": "11111111-1111-4111-8111-111111111111",
                    "buyer_trx_id": "example-order-001",
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "status": "success",
                    "serial_number": "EXAMPLE-SN-001",
                    "is_sandbox": true,
                    "created_at": "2026-10-02T03:00:00+00:00",
                    "price_charged": 1000,
                    "updated_at": "2026-10-02T03:00:00+00:00"
                  },
                  "summary": "Regular success",
                  "x-summary-id": "Reguler berhasil"
                },
                "regular-failed": {
                  "value": {
                    "id": "11111111-1111-4111-8111-111111111111",
                    "buyer_trx_id": "example-order-001",
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "status": "failed",
                    "serial_number": "",
                    "is_sandbox": true,
                    "created_at": "2026-10-02T03:00:00+00:00",
                    "price_charged": 1000,
                    "updated_at": "2026-10-02T03:00:00+00:00",
                    "error_code": "SUPPLIER_ERROR",
                    "message": "Supplier error."
                  },
                  "summary": "Regular failure",
                  "x-summary-id": "Reguler gagal"
                },
                "smart-success": {
                  "value": {
                    "id": "11111111-1111-4111-8111-111111111111",
                    "buyer_trx_id": "example-smart-order-001",
                    "sku_code": "EXAMPLE",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "status": "success",
                    "serial_number": "EXAMPLE-SN-001",
                    "is_sandbox": true,
                    "created_at": "2026-10-02T03:00:00+00:00",
                    "price_charged": 1000,
                    "updated_at": "2026-10-02T03:00:00+00:00",
                    "max_bid": 1100,
                    "fulfilled_sku_code": "EXAMPLE-10",
                    "attempts_count": 1
                  },
                  "summary": "Smart success",
                  "x-summary-id": "Smart berhasil"
                },
                "smart-failed": {
                  "value": {
                    "id": "11111111-1111-4111-8111-111111111111",
                    "buyer_trx_id": "example-smart-order-001",
                    "sku_code": "EXAMPLE",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "status": "failed",
                    "serial_number": "",
                    "is_sandbox": true,
                    "created_at": "2026-10-02T03:00:00+00:00",
                    "price_charged": 1000,
                    "updated_at": "2026-10-02T03:00:00+00:00",
                    "error_code": "SUPPLIER_ERROR",
                    "message": "Supplier error.",
                    "max_bid": 1100,
                    "fulfilled_sku_code": null,
                    "attempts_count": 1
                  },
                  "summary": "Smart failure",
                  "x-summary-id": "Smart gagal"
                },
                "bulk-success": {
                  "value": {
                    "id": "11111111-1111-4111-8111-111111111111",
                    "buyer_trx_id": "BULK-22222222-2222-4222-8222-222222222222-1",
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "status": "success",
                    "serial_number": "EXAMPLE-SN-001",
                    "is_sandbox": true,
                    "created_at": "2026-10-02T03:00:00+00:00",
                    "price_charged": 1000,
                    "updated_at": "2026-10-02T03:00:00+00:00",
                    "bulk_order_id": "22222222-2222-4222-8222-222222222222",
                    "buyer_bulk_id": "example-bulk-001",
                    "bulk_sequence": 1
                  },
                  "summary": "Bulk child success",
                  "x-summary-id": "Pesanan bulk berhasil"
                },
                "bulk-failed": {
                  "value": {
                    "id": "11111111-1111-4111-8111-111111111111",
                    "buyer_trx_id": "BULK-22222222-2222-4222-8222-222222222222-1",
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "status": "failed",
                    "serial_number": "",
                    "is_sandbox": true,
                    "created_at": "2026-10-02T03:00:00+00:00",
                    "price_charged": 1000,
                    "updated_at": "2026-10-02T03:00:00+00:00",
                    "error_code": "SUPPLIER_ERROR",
                    "message": "Supplier error.",
                    "bulk_order_id": "22222222-2222-4222-8222-222222222222",
                    "buyer_bulk_id": "example-bulk-001",
                    "bulk_sequence": 1
                  },
                  "summary": "Bulk child failure",
                  "x-summary-id": "Pesanan bulk gagal"
                },
                "regular-provider-price-changed": {
                  "value": {
                    "id": "11111111-1111-4111-8111-111111111111",
                    "buyer_trx_id": "example-order-001",
                    "sku_code": "EXAMPLE-10",
                    "customer_target": "123456789",
                    "customer_target_zone": "1234",
                    "status": "failed",
                    "serial_number": "",
                    "is_sandbox": true,
                    "created_at": "2026-10-02T03:00:00+00:00",
                    "price_charged": 1100,
                    "updated_at": "2026-10-02T03:00:00+00:00",
                    "error_code": "PROVIDER_PRICE_CHANGED",
                    "message": "The product price has changed. Please refresh the price list and try placing a new order again in a few moments.",
                    "max_price": 1100
                  },
                  "summary": "Failed due to price change",
                  "x-summary-id": "Gagal karena perubahan harga"
                },
                "actionRequired": {
                  "summary": "Buyer code required",
                  "value": {
                    "event": "transaction.action_change",
                    "event_id": "22222222-2222-4222-8222-000000000001",
                    "id": "example-transaction-001",
                    "buyer_trx_id": "example-order-001",
                    "status": "processing",
                    "updated_at": "2026-10-10T08:01:00+07:00",
                    "need_action": true,
                    "action": {
                      "id": "11111111-1111-4111-8111-111111111111",
                      "type": "two_factor",
                      "state": "required",
                      "version": 1,
                      "message": "Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.",
                      "can_submit": true,
                      "updated_at": "2026-10-10T08:01:00+07:00"
                    }
                  },
                  "x-summary-id": "Kode pembeli diperlukan"
                },
                "codeReceived": {
                  "summary": "Code received",
                  "value": {
                    "event": "transaction.action_change",
                    "event_id": "22222222-2222-4222-8222-000000000002",
                    "id": "example-transaction-001",
                    "buyer_trx_id": "example-order-001",
                    "status": "processing",
                    "updated_at": "2026-10-10T08:02:00+07:00",
                    "need_action": false,
                    "action": {
                      "id": "11111111-1111-4111-8111-111111111111",
                      "type": "two_factor",
                      "state": "submitted",
                      "version": 2,
                      "message": "Your verification code has been received and is awaiting admin handling.",
                      "can_submit": false,
                      "updated_at": "2026-10-10T08:02:00+07:00"
                    }
                  },
                  "x-summary-id": "Kode telah diterima"
                },
                "actionResolved": {
                  "summary": "Verification resolved",
                  "value": {
                    "event": "transaction.action_change",
                    "event_id": "22222222-2222-4222-8222-000000000003",
                    "id": "example-transaction-001",
                    "buyer_trx_id": "example-order-001",
                    "status": "processing",
                    "updated_at": "2026-10-10T08:03:00+07:00",
                    "need_action": false,
                    "action": {
                      "id": "11111111-1111-4111-8111-111111111111",
                      "type": "two_factor",
                      "state": "resolved",
                      "version": 3,
                      "message": "The requested action has been completed.",
                      "can_submit": false,
                      "updated_at": "2026-10-10T08:03:00+07:00"
                    }
                  },
                  "x-summary-id": "Verifikasi selesai"
                },
                "actionRequestedAgain": {
                  "summary": "New code requested",
                  "value": {
                    "event": "transaction.action_change",
                    "event_id": "22222222-2222-4222-8222-000000000004",
                    "id": "example-transaction-001",
                    "buyer_trx_id": "example-order-001",
                    "status": "processing",
                    "updated_at": "2026-10-10T08:04:00+07:00",
                    "need_action": true,
                    "action": {
                      "id": "11111111-1111-4111-8111-111111111111",
                      "type": "two_factor",
                      "state": "required",
                      "version": 4,
                      "message": "Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.",
                      "can_submit": true,
                      "updated_at": "2026-10-10T08:04:00+07:00"
                    }
                  },
                  "x-summary-id": "Kode baru diminta"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Durably accepted; duplicates must also receive 2xx"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Full API Key generated in dashboard API Credentials via Rotate Keys and shown once. Rotating replaces all three credentials immediately."
      },
      "SecretKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Secret-Key",
        "description": "Full API Secret Key generated with the API Key and Webhook Secret. Use it only for API authentication; verify callbacks using Webhook Secret."
      }
    },
    "schemas": {
      "Transaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Buyer reference for product orders; null for paid account-check transactions."
          },
          "sku_code": {
            "type": [
              "string",
              "null"
            ],
            "description": "Product SKU in the transaction result. For Smart, it may differ from the ordered SKU; match by id/buyer_trx_id and use fulfilled_sku_code for successful fulfillment. May be null, including on paid account checks."
          },
          "product_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": "number",
            "description": "MC/IDR. While processing, Smart shows max_bid and a capped regular order shows its max_price hold. On success this is the final charge; a failed order is refunded."
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "success",
              "failed",
              "refunded"
            ]
          },
          "serial_number": {
            "type": [
              "string",
              "null"
            ]
          },
          "webhook_delivery_status": {
            "type": "string"
          },
          "is_sandbox": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "max_price": {
            "type": "integer",
            "minimum": 1,
            "description": "Present only on regular orders submitted with max_price. Original hold and maximum final charge in MC/IDR."
          },
          "need_action": {
            "type": "boolean",
            "description": "True only when customer action is required. Independent of transaction status."
          },
          "action": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomerAction"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current customer action. Submit only when can_submit=true; compare version before applying updates."
          }
        },
        "required": [
          "id",
          "buyer_trx_id",
          "sku_code",
          "customer_target",
          "customer_target_zone",
          "price",
          "status",
          "serial_number",
          "webhook_delivery_status",
          "is_sandbox",
          "created_at"
        ]
      },
      "SmartTransaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": "string"
          },
          "sku_code": {
            "type": "string",
            "description": "Smart order results may use a different sku_code from creation. Store the ordered SKU and match by id/buyer_trx_id; use fulfilled_sku_code for successful fulfillment."
          },
          "product_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "serial_number": {
            "type": "string"
          },
          "webhook_delivery_status": {
            "type": "string"
          },
          "is_sandbox": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "max_bid": {
            "type": [
              "integer",
              "null"
            ]
          },
          "fulfilled_sku_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "attempts_count": {
            "type": "integer"
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "buyer_trx_id",
          "sku_code",
          "product_name",
          "customer_target",
          "customer_target_zone",
          "price",
          "status",
          "serial_number",
          "webhook_delivery_status",
          "is_sandbox",
          "created_at",
          "max_bid",
          "fulfilled_sku_code",
          "attempts_count"
        ]
      },
      "BulkOrder": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_bulk_id": {
            "type": "string"
          },
          "sku_code": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "order_count": {
            "type": "integer"
          },
          "unit_price": {
            "type": "number"
          },
          "total_debit": {
            "type": "number"
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "processing",
              "completed",
              "partially_failed",
              "failed"
            ]
          },
          "via": {
            "type": "string"
          },
          "is_sandbox": {
            "type": "boolean"
          },
          "invoice_available": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "completed_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "total_count": {
            "type": "integer"
          },
          "success_count": {
            "type": "integer"
          },
          "failed_count": {
            "type": "integer"
          },
          "processed_count": {
            "type": "integer"
          },
          "remaining_count": {
            "type": "integer"
          },
          "processing_count": {
            "type": "integer"
          },
          "queued_count": {
            "type": "integer"
          }
        },
        "required": [
          "id",
          "buyer_bulk_id",
          "sku_code",
          "product_name",
          "customer_target",
          "customer_target_zone",
          "order_count",
          "unit_price",
          "total_debit",
          "status",
          "via",
          "is_sandbox",
          "invoice_available",
          "created_at",
          "completed_at",
          "total_count",
          "success_count",
          "failed_count",
          "processed_count",
          "remaining_count",
          "processing_count",
          "queued_count"
        ]
      },
      "Profile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "tier": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "rate_limit": {
                "type": "integer"
              },
              "max_ips": {
                "type": "integer"
              }
            },
            "required": [
              "name",
              "code",
              "rate_limit",
              "max_ips"
            ]
          },
          "h2h_balance": {
            "type": "number"
          },
          "is_sandbox_mode": {
            "type": "boolean"
          },
          "total_volume_30_days": {
            "type": "number"
          },
          "webhook_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string"
          },
          "usd_idr_rate": {
            "type": "number",
            "description": "Configured deposit conversion rate; separate from the reference display rate."
          },
          "display_usd_idr_rate": {
            "type": [
              "number",
              "null"
            ]
          },
          "display_rate_updated_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "Last reference FX update, or null when a valid reference rate is unavailable."
          }
        },
        "required": [
          "id",
          "name",
          "email",
          "tier",
          "h2h_balance",
          "is_sandbox_mode",
          "total_volume_30_days",
          "webhook_url",
          "created_at",
          "usd_idr_rate",
          "display_usd_idr_rate",
          "display_rate_updated_at"
        ]
      },
      "Balance": {
        "type": "object",
        "properties": {
          "h2h_balance": {
            "type": "number"
          },
          "is_sandbox_mode": {
            "type": "boolean"
          },
          "usd_idr_rate": {
            "type": "number",
            "description": "Configured deposit conversion rate; separate from the reference display rate."
          },
          "display_usd_idr_rate": {
            "type": [
              "number",
              "null"
            ]
          },
          "display_rate_updated_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "Last reference FX update, or null when a valid reference rate is unavailable."
          },
          "h2h_balance_usd": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "h2h_balance",
          "is_sandbox_mode",
          "usd_idr_rate",
          "display_usd_idr_rate",
          "display_rate_updated_at",
          "h2h_balance_usd"
        ]
      },
      "Catalogue": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "sku_code": {
                  "type": "string"
                },
                "price": {
                  "type": "number"
                },
                "category_name": {
                  "type": "string"
                },
                "brand_id": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Brand ID; full brand discovery is available from the matching categories endpoint.",
                  "x-description-id": "ID brand; daftar lengkap tersedia pada endpoint categories katalog yang sama."
                },
                "type_name": {
                  "type": "string"
                },
                "category_order": {
                  "type": "integer"
                },
                "type_order": {
                  "type": "integer"
                },
                "server_code": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Catalogue product server. This is separate from customer_target_zone.",
                  "x-description-id": "Server produk pada katalog, terpisah dari customer_target_zone."
                },
                "server_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "type": "string",
                  "description": "Order only active products. out_of_stock means unavailable.",
                  "x-description-id": "Pesan hanya produk active. out_of_stock berarti tidak tersedia.",
                  "enum": [
                    "active",
                    "out_of_stock"
                  ]
                },
                "inquiry_form_key": {
                  "type": "string",
                  "description": "Look up this key in meta.inquiry_forms on this same page.",
                  "x-description-id": "Cari key ini pada meta.inquiry_forms di halaman yang sama."
                },
                "h2h_description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "id": {
                  "type": "integer"
                }
              },
              "required": [
                "name",
                "sku_code",
                "price",
                "category_name",
                "brand_id",
                "type_name",
                "category_order",
                "type_order",
                "server_code",
                "server_name",
                "status",
                "inquiry_form_key",
                "h2h_description",
                "description"
              ]
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "brands": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "thumbnail": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "order": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "thumbnail",
                    "order"
                  ]
                },
                "description": "Brand metadata for this page only. Use the categories endpoint for the full list.",
                "x-description-id": "Metadata brand pada halaman ini saja. Gunakan endpoint categories untuk daftar lengkap."
              },
              "inquiry_forms": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/InquiryForm"
                    }
                  },
                  {
                    "type": "array",
                    "maxItems": 0
                  }
                ],
                "description": "Product input forms keyed by inquiry_form_key. An empty result may be {} or [].",
                "x-description-id": "Form input produk berdasarkan inquiry_form_key. Hasil kosong dapat berupa {} atau []."
              },
              "pagination": {
                "type": "object",
                "properties": {
                  "cursor": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "next_cursor": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "limit": {
                    "type": "integer"
                  },
                  "total": {
                    "type": "integer"
                  },
                  "has_more": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "cursor",
                  "next_cursor",
                  "limit",
                  "total",
                  "has_more"
                ],
                "x-description-id": "Ikuti next_cursor selama has_more=true. Pada respons reguler, objek ini muncul saat limit dikirim."
              }
            },
            "required": [
              "brands",
              "inquiry_forms"
            ]
          },
          "category": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "slug"
            ]
          }
        },
        "required": [
          "success",
          "data",
          "meta"
        ]
      },
      "SmartCatalogue": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "category_name": {
                  "type": "string"
                },
                "brand_id": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Brand ID; full brand discovery is available from the matching categories endpoint.",
                  "x-description-id": "ID brand; daftar lengkap tersedia pada endpoint categories katalog yang sama."
                },
                "type_name": {
                  "type": "string"
                },
                "category_order": {
                  "type": "integer"
                },
                "type_order": {
                  "type": "integer"
                },
                "status": {
                  "type": "string",
                  "description": "Order only active products. out_of_stock means unavailable.",
                  "x-description-id": "Pesan hanya produk active. out_of_stock berarti tidak tersedia.",
                  "enum": [
                    "active",
                    "out_of_stock"
                  ]
                },
                "inquiry_form_key": {
                  "type": "string",
                  "description": "Look up this key in meta.inquiry_forms on this same page.",
                  "x-description-id": "Cari key ini pada meta.inquiry_forms di halaman yang sama."
                },
                "h2h_description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "smart_sku_code": {
                  "type": "string"
                },
                "min_price": {
                  "type": "integer"
                },
                "max_price": {
                  "type": "integer"
                },
                "variant_count": {
                  "type": "integer"
                },
                "variants": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku_code": {
                        "type": "string"
                      },
                      "price": {
                        "type": [
                          "integer",
                          "null"
                        ]
                      },
                      "status": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "sku_code",
                      "price",
                      "status"
                    ]
                  }
                }
              },
              "required": [
                "name",
                "category_name",
                "brand_id",
                "type_name",
                "category_order",
                "type_order",
                "status",
                "inquiry_form_key",
                "h2h_description",
                "description",
                "smart_sku_code",
                "min_price",
                "max_price",
                "variant_count",
                "variants"
              ]
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "brands": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "thumbnail": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "order": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "thumbnail",
                    "order"
                  ]
                },
                "description": "Brand metadata for this page only. Use the categories endpoint for the full list.",
                "x-description-id": "Metadata brand pada halaman ini saja. Gunakan endpoint categories untuk daftar lengkap."
              },
              "inquiry_forms": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "$ref": "#/components/schemas/InquiryForm"
                    }
                  },
                  {
                    "type": "array",
                    "maxItems": 0
                  }
                ],
                "description": "Product input forms keyed by inquiry_form_key. An empty result may be {} or [].",
                "x-description-id": "Form input produk berdasarkan inquiry_form_key. Hasil kosong dapat berupa {} atau []."
              },
              "pagination": {
                "type": "object",
                "properties": {
                  "cursor": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "next_cursor": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "limit": {
                    "type": "integer"
                  },
                  "has_more": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "cursor",
                  "next_cursor",
                  "limit",
                  "has_more"
                ],
                "x-description-id": "Ikuti next_cursor selama has_more=true. Pada respons reguler, objek ini muncul saat limit dikirim."
              }
            },
            "required": [
              "brands",
              "inquiry_forms",
              "pagination"
            ]
          }
        },
        "required": [
          "success",
          "data",
          "meta"
        ]
      },
      "NicknameResult": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "game_code": {
                "type": "string"
              },
              "customer_target": {
                "type": "string"
              },
              "customer_target_zone": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "username": {
                "type": "string"
              },
              "region": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "region_type": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "game_code",
              "customer_target",
              "customer_target_zone",
              "username",
              "region",
              "region_type"
            ]
          },
          "billing": {
            "type": "object",
            "properties": {
              "charged_mc": {
                "type": "number"
              },
              "free_remaining_today": {
                "type": "integer"
              },
              "transaction_id": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "charged_mc",
              "free_remaining_today",
              "transaction_id"
            ]
          }
        },
        "required": [
          "success",
          "data",
          "billing"
        ]
      },
      "PurchaseLimitResult": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "properties": {
              "game_code": {
                "type": "string"
              },
              "customer_target": {
                "type": "string"
              },
              "customer_target_zone": {
                "type": "string"
              },
              "username": {
                "type": "string"
              },
              "weekly_pass": {
                "type": "object",
                "properties": {
                  "limit_reached": {
                    "type": "boolean"
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "package_code": {
                          "type": "string"
                        },
                        "limit_reached": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "package_code",
                        "limit_reached"
                      ]
                    }
                  }
                },
                "required": [
                  "limit_reached",
                  "items"
                ]
              },
              "double_diamonds": {
                "type": "object",
                "properties": {
                  "eligible": {
                    "type": "boolean"
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "package_code": {
                          "type": "string"
                        },
                        "limit_reached": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "package_code",
                        "limit_reached"
                      ]
                    }
                  }
                },
                "required": [
                  "eligible",
                  "items"
                ]
              }
            },
            "required": [
              "game_code",
              "customer_target",
              "customer_target_zone",
              "username",
              "weekly_pass",
              "double_diamonds"
            ]
          },
          "billing": {
            "type": "object",
            "properties": {
              "charged_mc": {
                "type": "number"
              },
              "free_remaining_today": {
                "type": "integer"
              },
              "transaction_id": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "charged_mc",
              "free_remaining_today",
              "transaction_id"
            ]
          }
        },
        "required": [
          "success",
          "data",
          "billing"
        ]
      },
      "NicknamePlan": {
        "type": "object",
        "properties": {
          "free_daily_limit": {
            "type": "integer"
          },
          "free_minute_limit": {
            "type": "integer"
          },
          "paid_price_mc": {
            "type": "integer"
          },
          "paid_minute_limit": {
            "type": "integer"
          },
          "resets_at": {
            "type": "string"
          }
        },
        "required": [
          "free_daily_limit",
          "free_minute_limit",
          "paid_price_mc",
          "paid_minute_limit",
          "resets_at"
        ]
      },
      "Games": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "games": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "game_code": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "zone_required": {
                  "type": "boolean"
                },
                "zone_values": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "params": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name"
                    ]
                  }
                },
                "status": {
                  "type": "string"
                }
              },
              "required": [
                "game_code",
                "name",
                "type",
                "zone_required",
                "zone_values",
                "params",
                "status"
              ]
            }
          }
        },
        "required": [
          "success",
          "games"
        ]
      },
      "Error": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": false
          },
          "message": {
            "type": "string"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "integer"
              },
              "message": {
                "type": "string"
              },
              "category": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "category"
            ]
          },
          "billing": {
            "type": "object",
            "properties": {
              "charged_mc": {
                "type": "number"
              },
              "free_remaining_today": {
                "type": "integer"
              },
              "transaction_id": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "error_code": {
            "type": "string",
            "description": "For example MAX_PRICE_TOO_LOW when a regular-order limit is below the current tier price."
          }
        },
        "required": [
          "message"
        ]
      },
      "CreateTransaction": {
        "type": "object",
        "properties": {
          "sku_code": {
            "type": "string",
            "description": "Exact sku_code from the regular catalogue.",
            "x-description-id": "sku_code persis dari katalog reguler."
          },
          "customer_target": {
            "type": "string",
            "maxLength": 255,
            "description": "Customer ID, phone number or email according to the first catalogue inquiry field. Keep it as a string.",
            "x-description-id": "ID pelanggan, nomor telepon, atau email sesuai field pertama pada form katalog. Kirim sebagai string."
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 100,
            "description": "Required only when the product/game form requires a second zone field. Use its option value, not its label.",
            "x-description-id": "Wajib jika form produk/game memerlukan field zone kedua. Gunakan nilai opsi, bukan label tampilannya."
          },
          "additional_data": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true,
            "description": "Other product form values, keyed by the field key in meta.inquiry_forms. Omit when not required.",
            "x-description-id": "Nilai field form lainnya, memakai key dari meta.inquiry_forms. Kosongkan jika tidak diperlukan."
          },
          "buyer_trx_id": {
            "type": "string",
            "maxLength": 64,
            "description": "Your unique order reference. Keep it for retries of the same order; use a new reference for each new order.",
            "x-description-id": "Referensi unik pesanan Anda. Pertahankan saat retry pesanan yang sama; gunakan referensi baru untuk pesanan baru."
          },
          "sandbox_mode": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true simulates an order without charging your wallet. false uses live mode. Omit/null uses your account setting.",
            "x-description-id": "true untuk simulasi tanpa debit saldo; false untuk pesanan live. Kosongkan/null mengikuti mode akun."
          },
          "max_price": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "maximum": 99999999999,
            "description": "Optional maximum final charge in MC/IDR. Must cover the current price for your tier. Your balance must cover the whole limit, which is held upfront. Unused hold is returned on success; failed orders receive a full refund. Omit/null for automatic pricing.",
            "x-description-id": "Batas biaya akhir opsional dalam MC/IDR, minimal harga tier saat ini. Saldo harus cukup untuk seluruh batas yang ditahan di awal. Sisa dikembalikan saat sukses; gagal mendapat refund penuh. Kosongkan/null untuk harga otomatis."
          }
        },
        "required": [
          "sku_code",
          "customer_target",
          "buyer_trx_id"
        ]
      },
      "CreateSmartTransaction": {
        "type": "object",
        "properties": {
          "sku_code": {
            "type": "string",
            "maxLength": 100,
            "description": "Use the smart_sku_code value from the Smart catalogue.",
            "x-description-id": "Isi dengan nilai smart_sku_code dari katalog Smart."
          },
          "customer_target": {
            "type": "string",
            "maxLength": 255,
            "description": "Customer ID, phone number or email according to the first catalogue inquiry field. Keep it as a string.",
            "x-description-id": "ID pelanggan, nomor telepon, atau email sesuai field pertama pada form katalog. Kirim sebagai string."
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 100,
            "description": "Required only when the product/game form requires a second zone field. Use its option value, not its label.",
            "x-description-id": "Wajib jika form produk/game memerlukan field zone kedua. Gunakan nilai opsi, bukan label tampilannya."
          },
          "additional_data": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true,
            "description": "Other product form values, keyed by the field key in meta.inquiry_forms. Omit when not required.",
            "x-description-id": "Nilai field form lainnya, memakai key dari meta.inquiry_forms. Kosongkan jika tidak diperlukan."
          },
          "buyer_trx_id": {
            "type": "string",
            "maxLength": 64,
            "description": "Your unique order reference. Keep it for retries of the same order; use a new reference for each new order.",
            "x-description-id": "Referensi unik pesanan Anda. Pertahankan saat retry pesanan yang sama; gunakan referensi baru untuk pesanan baru."
          },
          "sandbox_mode": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true simulates an order without charging your wallet. false uses live mode. Omit/null uses your account setting.",
            "x-description-id": "true untuk simulasi tanpa debit saldo; false untuk pesanan live. Kosongkan/null mengikuti mode akun."
          },
          "max_bid": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum Smart order budget in MC/IDR. The whole amount is held upfront; unused hold is returned.",
            "x-description-id": "Anggaran maksimal Smart Order dalam MC/IDR. Seluruh nilai ditahan di awal; sisanya dikembalikan."
          }
        },
        "required": [
          "sku_code",
          "customer_target",
          "buyer_trx_id",
          "max_bid"
        ]
      },
      "CreateBulkOrder": {
        "type": "object",
        "properties": {
          "sku_code": {
            "type": "string",
            "maxLength": 100,
            "description": "Exact sku_code from the regular catalogue.",
            "x-description-id": "sku_code persis dari katalog reguler."
          },
          "customer_target": {
            "type": "string",
            "maxLength": 255,
            "description": "Customer ID, phone number or email according to the first catalogue inquiry field. Keep it as a string.",
            "x-description-id": "ID pelanggan, nomor telepon, atau email sesuai field pertama pada form katalog. Kirim sebagai string."
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 100,
            "description": "Required only when the product/game form requires a second zone field. Use its option value, not its label.",
            "x-description-id": "Wajib jika form produk/game memerlukan field zone kedua. Gunakan nilai opsi, bukan label tampilannya."
          },
          "additional_data": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": true,
            "description": "Other product form values, keyed by the field key in meta.inquiry_forms. Omit when not required.",
            "x-description-id": "Nilai field form lainnya, memakai key dari meta.inquiry_forms. Kosongkan jika tidak diperlukan."
          },
          "sandbox_mode": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "true simulates an order without charging your wallet. false uses live mode. Omit/null uses your account setting.",
            "x-description-id": "true untuk simulasi tanpa debit saldo; false untuk pesanan live. Kosongkan/null mengikuti mode akun."
          },
          "buyer_bulk_id": {
            "type": "string",
            "maxLength": 64,
            "description": "Your unique bulk reference. Identical retries return the original bulk; a changed payload returns HTTP 409.",
            "x-description-id": "Referensi unik bulk Anda. Retry identik mengembalikan bulk sebelumnya; isi berbeda menghasilkan HTTP 409."
          },
          "order_count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of separate orders, 1–100, processed sequentially for one regular SKU and target.",
            "x-description-id": "Jumlah pesanan terpisah, 1–100, diproses berurutan untuk satu SKU reguler dan target."
          }
        },
        "required": [
          "sku_code",
          "customer_target",
          "buyer_bulk_id",
          "order_count"
        ],
        "additionalProperties": true,
        "allOf": [
          {
            "properties": {
              "quantity": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string",
                    "pattern": "^[ \\t\\n\\r\\u0000\\u000b]*$"
                  },
                  {
                    "type": "array",
                    "maxItems": 0
                  },
                  {
                    "type": "object",
                    "maxProperties": 0
                  }
                ]
              },
              "max_bid": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string",
                    "pattern": "^[ \\t\\n\\r\\u0000\\u000b]*$"
                  },
                  {
                    "type": "array",
                    "maxItems": 0
                  },
                  {
                    "type": "object",
                    "maxProperties": 0
                  }
                ]
              },
              "order_mode": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string",
                    "pattern": "^[ \\t\\n\\r\\u0000\\u000b]*$"
                  },
                  {
                    "type": "array",
                    "maxItems": 0
                  },
                  {
                    "type": "object",
                    "maxProperties": 0
                  }
                ]
              }
            }
          }
        ],
        "description": "Use order_count for the number of orders. Omit quantity, max_bid, and order_mode; populated values are rejected with HTTP 422."
      },
      "CheckNickname": {
        "type": "object",
        "properties": {
          "game_code": {
            "type": "string",
            "maxLength": 100,
            "description": "Copy games[].game_code from GET /check-nickname/games. It is separate from a product brand slug.",
            "x-description-id": "Ambil games[].game_code dari GET /check-nickname/games. Nilai ini berbeda dari slug brand produk."
          },
          "customer_target": {
            "type": "string",
            "maxLength": 255,
            "description": "Account ID or customer number for the selected game/account check. Send it as a string.",
            "x-description-id": "ID akun atau nomor pelanggan untuk pemeriksaan game/akun yang dipilih. Kirim sebagai string."
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 100,
            "description": "Account zone/server according to zone_required and zone_values from GET /check-nickname/games. Required for the Mobile Legends purchase-limit check.",
            "x-description-id": "Zone/server akun sesuai zone_required dan zone_values dari GET /check-nickname/games. Wajib untuk pemeriksaan batas pembelian Mobile Legends."
          }
        },
        "required": [
          "game_code",
          "customer_target"
        ]
      },
      "CheckPurchaseLimit": {
        "type": "object",
        "properties": {
          "customer_target": {
            "type": "string",
            "maxLength": 255,
            "description": "Account ID or customer number for the selected game/account check. Send it as a string.",
            "x-description-id": "ID akun atau nomor pelanggan untuk pemeriksaan game/akun yang dipilih. Kirim sebagai string."
          },
          "customer_target_zone": {
            "type": "string",
            "maxLength": 100,
            "description": "Account zone/server according to zone_required and zone_values from GET /check-nickname/games. Required for the Mobile Legends purchase-limit check.",
            "x-description-id": "Zone/server akun sesuai zone_required dan zone_values dari GET /check-nickname/games. Wajib untuk pemeriksaan batas pembelian Mobile Legends."
          }
        },
        "required": [
          "customer_target",
          "customer_target_zone"
        ]
      },
      "BulkPage": {
        "type": "object",
        "properties": {
          "current_page": {
            "type": "integer"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkOrder"
            }
          },
          "first_page_url": {
            "type": "string"
          },
          "from": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Item position, or null when this page contains no items."
          },
          "last_page": {
            "type": "integer"
          },
          "last_page_url": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "label": {
                  "type": "string"
                },
                "active": {
                  "type": "boolean"
                }
              },
              "required": [
                "url",
                "label",
                "active"
              ]
            }
          },
          "next_page_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "type": "string"
          },
          "per_page": {
            "type": "integer"
          },
          "prev_page_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "to": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Item position, or null when this page contains no items."
          },
          "total": {
            "type": "integer"
          }
        },
        "required": [
          "current_page",
          "data",
          "first_page_url",
          "from",
          "last_page",
          "last_page_url",
          "links",
          "next_page_url",
          "path",
          "per_page",
          "prev_page_url",
          "to",
          "total"
        ]
      },
      "BulkChild": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": "string"
          },
          "bulk_order_id": {
            "type": "string"
          },
          "buyer_bulk_id": {
            "type": "string"
          },
          "bulk_sequence": {
            "type": "integer"
          },
          "sku_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": "number"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "success",
              "failed",
              "refunded"
            ]
          },
          "serial_number": {
            "type": "string"
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "buyer_trx_id",
          "bulk_order_id",
          "buyer_bulk_id",
          "bulk_sequence",
          "sku_code",
          "customer_target",
          "customer_target_zone",
          "price",
          "status",
          "serial_number",
          "error_code",
          "message",
          "created_at",
          "updated_at"
        ]
      },
      "ChildPage": {
        "type": "object",
        "properties": {
          "current_page": {
            "type": "integer"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkChild"
            }
          },
          "first_page_url": {
            "type": "string"
          },
          "from": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Item position, or null when this page contains no items."
          },
          "last_page": {
            "type": "integer"
          },
          "last_page_url": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "label": {
                  "type": "string"
                },
                "active": {
                  "type": "boolean"
                }
              },
              "required": [
                "url",
                "label",
                "active"
              ]
            }
          },
          "next_page_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "type": "string"
          },
          "per_page": {
            "type": "integer"
          },
          "prev_page_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "to": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Item position, or null when this page contains no items."
          },
          "total": {
            "type": "integer"
          }
        },
        "required": [
          "current_page",
          "data",
          "first_page_url",
          "from",
          "last_page",
          "last_page_url",
          "links",
          "next_page_url",
          "path",
          "per_page",
          "prev_page_url",
          "to",
          "total"
        ]
      },
      "RegularCallback": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": "string"
          },
          "sku_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "success",
              "failed"
            ]
          },
          "serial_number": {
            "type": "string"
          },
          "is_sandbox": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "price_charged": {
            "type": "number"
          },
          "updated_at": {
            "type": "string"
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          },
          "max_price": {
            "type": "integer",
            "minimum": 1,
            "description": "Present only on regular orders submitted with max_price. Original hold and maximum final charge in MC/IDR."
          },
          "need_action": {
            "type": "boolean",
            "description": "True only when customer action is required. Independent of transaction status."
          },
          "action": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomerAction"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current customer action. Submit only when can_submit=true; compare version before applying updates."
          }
        },
        "required": [
          "id",
          "buyer_trx_id",
          "sku_code",
          "customer_target",
          "customer_target_zone",
          "status",
          "serial_number",
          "is_sandbox",
          "created_at",
          "price_charged",
          "updated_at"
        ],
        "additionalProperties": false
      },
      "SmartCallback": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": "string"
          },
          "sku_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "success",
              "failed"
            ]
          },
          "serial_number": {
            "type": "string"
          },
          "is_sandbox": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "price_charged": {
            "type": "number"
          },
          "updated_at": {
            "type": "string"
          },
          "max_bid": {
            "type": [
              "integer",
              "null"
            ]
          },
          "fulfilled_sku_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "attempts_count": {
            "type": "integer"
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "buyer_trx_id",
          "sku_code",
          "customer_target",
          "customer_target_zone",
          "status",
          "serial_number",
          "is_sandbox",
          "created_at",
          "price_charged",
          "updated_at",
          "attempts_count"
        ],
        "additionalProperties": false
      },
      "BulkCallback": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": "string"
          },
          "sku_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "success",
              "failed"
            ]
          },
          "serial_number": {
            "type": "string"
          },
          "is_sandbox": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "price_charged": {
            "type": "number"
          },
          "updated_at": {
            "type": "string"
          },
          "bulk_order_id": {
            "type": "string"
          },
          "buyer_bulk_id": {
            "type": "string"
          },
          "bulk_sequence": {
            "type": "integer"
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "buyer_trx_id",
          "sku_code",
          "customer_target",
          "customer_target_zone",
          "status",
          "serial_number",
          "is_sandbox",
          "created_at",
          "price_charged",
          "updated_at",
          "bulk_order_id",
          "buyer_bulk_id",
          "bulk_sequence"
        ],
        "additionalProperties": false
      },
      "SmartCreateAcknowledgement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": "string"
          },
          "sku_code": {
            "type": "string",
            "description": "Smart order results may use a different sku_code from creation. Store the ordered SKU and match by id/buyer_trx_id; use fulfilled_sku_code for successful fulfillment."
          },
          "product_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_target": {
            "type": "string"
          },
          "customer_target_zone": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": "number"
          },
          "status": {
            "type": "string"
          },
          "serial_number": {
            "type": "string"
          },
          "webhook_delivery_status": {
            "type": "string"
          },
          "is_sandbox": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "max_bid": {
            "type": [
              "integer",
              "null"
            ]
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "buyer_trx_id",
          "sku_code",
          "product_name",
          "customer_target",
          "customer_target_zone",
          "price",
          "status",
          "serial_number",
          "webhook_delivery_status",
          "is_sandbox",
          "created_at",
          "max_bid"
        ]
      },
      "InquiryForm": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "required": {
                  "type": "boolean",
                  "description": "Whether the buyer must provide this field.",
                  "x-description-id": "Apakah field wajib diisi oleh pembeli."
                },
                "options": {
                  "type": "array",
                  "description": "For selection fields, display label and submit value.",
                  "x-description-id": "Untuk pilihan, tampilkan label dan kirim value.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "value": {
                        "type": [
                          "string",
                          "number"
                        ]
                      }
                    }
                  }
                },
                "placeholder": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "key",
                "name",
                "type"
              ]
            }
          },
          "notice": {
            "type": [
              "object",
              "null"
            ],
            "description": "Instructions by language. Read notice.id or notice.en; null when absent.",
            "x-description-id": "Petunjuk berdasarkan bahasa. Baca notice.id atau notice.en; null jika tidak ada.",
            "properties": {
              "id": {
                "type": "string"
              },
              "en": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "fields"
        ]
      },
      "LegacyCatalogue": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "sku_code": {
                  "type": "string"
                },
                "price": {
                  "type": "number"
                },
                "category_name": {
                  "type": "string"
                },
                "brand_id": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Brand ID; full brand discovery is available from the matching categories endpoint.",
                  "x-description-id": "ID brand; daftar lengkap tersedia pada endpoint categories katalog yang sama."
                },
                "type_name": {
                  "type": "string"
                },
                "category_order": {
                  "type": "integer"
                },
                "type_order": {
                  "type": "integer"
                },
                "server_code": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Catalogue product server. This is separate from customer_target_zone.",
                  "x-description-id": "Server produk pada katalog, terpisah dari customer_target_zone."
                },
                "server_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "type": "string",
                  "description": "Order only active products. out_of_stock means unavailable.",
                  "x-description-id": "Pesan hanya produk active. out_of_stock berarti tidak tersedia.",
                  "enum": [
                    "active",
                    "out_of_stock"
                  ]
                },
                "h2h_description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "id": {
                  "type": "integer"
                },
                "inquiry_fields": {
                  "$ref": "#/components/schemas/InquiryForm",
                  "description": "Included directly only in the regular legacy format.",
                  "x-description-id": "Disertakan langsung hanya pada format legacy reguler."
                },
                "brand_name": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Included directly only in the regular legacy format.",
                  "x-description-id": "Disertakan langsung hanya pada format legacy reguler."
                },
                "brand_order": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Included directly only in the regular legacy format.",
                  "x-description-id": "Disertakan langsung hanya pada format legacy reguler."
                },
                "brand_thumbnail": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Included directly only in the regular legacy format.",
                  "x-description-id": "Disertakan langsung hanya pada format legacy reguler."
                }
              },
              "required": [
                "name",
                "sku_code",
                "price",
                "category_name",
                "brand_id",
                "type_name",
                "category_order",
                "type_order",
                "server_code",
                "server_name",
                "status",
                "h2h_description",
                "description"
              ]
            }
          },
          "category": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "slug"
            ]
          }
        },
        "required": [
          "success",
          "data"
        ]
      },
      "CustomerAction": {
        "type": "object",
        "required": [
          "id",
          "type",
          "state",
          "version",
          "message",
          "can_submit",
          "updated_at"
        ],
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "enum": [
              "two_factor"
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "required",
              "submitted",
              "resolved"
            ]
          },
          "version": {
            "type": "integer",
            "minimum": 1
          },
          "message": {
            "type": "string"
          },
          "can_submit": {
            "type": "boolean"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ActionSnapshot": {
        "type": "object",
        "required": [
          "need_action",
          "action"
        ],
        "properties": {
          "need_action": {
            "type": "boolean",
            "description": "True only when customer action is required. Independent of transaction status."
          },
          "action": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomerAction"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current customer action. Submit only when can_submit=true; compare version before applying updates."
          }
        }
      },
      "SubmitTwoFactor": {
        "type": "object",
        "required": [
          "buyer_trx_id",
          "code"
        ],
        "additionalProperties": false,
        "properties": {
          "buyer_trx_id": {
            "type": "string",
            "maxLength": 255,
            "description": "buyer_trx_id of the existing order that requests this code. Use the same order reference.",
            "x-description-id": "buyer_trx_id pesanan yang sedang meminta kode ini. Gunakan referensi pesanan yang sama."
          },
          "code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "^[^\\u0000-\\u001F\\u007F]+$",
            "description": "Latest verification code from the buyer, trimmed, 1–128 characters without control characters.",
            "x-description-id": "Kode verifikasi terbaru dari pembeli, 1–128 karakter setelah trim, tanpa karakter kontrol."
          },
          "action_id": {
            "type": "string",
            "format": "uuid",
            "description": "Current action.id from this order status or action webhook. Recommended to avoid stale submissions.",
            "x-description-id": "action.id terbaru dari status pesanan ini atau webhook tindakan. Disarankan agar kode tidak terkirim ke permintaan lama."
          },
          "action_version": {
            "type": "integer",
            "minimum": 1,
            "description": "Current action.version from the same order. Send as a JSON integer.",
            "x-description-id": "action.version terbaru dari pesanan yang sama. Kirim sebagai integer JSON."
          }
        }
      },
      "ActionCallback": {
        "type": "object",
        "required": [
          "event",
          "event_id",
          "id",
          "status",
          "need_action",
          "action"
        ],
        "properties": {
          "event": {
            "type": "string",
            "const": "transaction.action_change"
          },
          "event_id": {
            "type": "string",
            "format": "uuid"
          },
          "id": {
            "type": "string"
          },
          "buyer_trx_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "processing",
              "success",
              "failed"
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "need_action": {
            "type": "boolean",
            "description": "True only when customer action is required. Independent of transaction status."
          },
          "action": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomerAction"
              },
              {
                "type": "null"
              }
            ],
            "description": "Current customer action. Submit only when can_submit=true; compare version before applying updates."
          }
        }
      },
      "CatalogueBrand": {
        "type": "object",
        "properties": {
          "brand_id": {
            "type": "integer",
            "description": "Brand identifier to use in the brand_id catalogue filter. Replaces the former id field in this directory.",
            "x-description-id": "ID brand untuk filter brand_id pada katalog. Menggantikan field id sebelumnya pada daftar brand ini."
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string",
            "description": "Brand slug for the matching /pricelists/{category_slug} or /smart-pricelists/{category_slug} path.",
            "x-description-id": "Slug brand untuk path /pricelists/{category_slug} atau /smart-pricelists/{category_slug} yang sesuai."
          },
          "category": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "slug": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "slug"
            ],
            "description": "Parent category of this brand, or null when no parent category is assigned.",
            "x-description-id": "Kategori induk brand ini, atau null jika tidak memiliki kategori induk."
          },
          "type": {
            "type": "array",
            "description": "All direct product-type children of this brand, sorted by name A-Z. Empty when the brand has no types. A type entry does not guarantee an available SKU; check the matching pricelist.",
            "x-description-id": "Seluruh tipe produk anak langsung dari brand ini, diurutkan menurut nama A-Z. Kosong jika brand tidak memiliki tipe. Adanya tipe tidak menjamin SKU tersedia; periksa daftar harga terkait.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "slug"
              ]
            }
          }
        },
        "required": [
          "brand_id",
          "name",
          "slug",
          "category",
          "type"
        ]
      }
    }
  }
}
