diff --git a/freebit-api-docs/PA05-05_mvno-voice-option-registration.md b/freebit-api-docs/PA05-05_mvno-voice-option-registration.md new file mode 100644 index 00000000..03a9916a --- /dev/null +++ b/freebit-api-docs/PA05-05_mvno-voice-option-registration.md @@ -0,0 +1,281 @@ +# PA05-05 - MVNO Voice Option Registration (MVNO音声オプション登録) + +## Overview + +Registers voice option features and identity verification information (identification data) for the requested account/MVNO service. + +- Voice option registration is **asynchronous** - cannot be cancelled while processing +- Registers both voice call features (voicemail, call waiting, etc.) and subscriber identity information + +--- + +## Request + +### Method + +`POST` (JSON format) + +### URL + +``` +https://[host]/emptool/api/mvno/talkoption/addOrder/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | ----------------------------------- | --------------------------- | ----- | ---------------------- | --- | --- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | account | Account | 1 | Alphanumeric + symbols | - | - | ◎ | Target SIM phone number | +| 3 | userConfirmed | User Confirmed Flag | 1 | Half-width numeric | 2 | 2 | ◎ | `"10"`: Enabled, `"20"`: Disabled. Returns error if not enabled | +| 4 | aladinOperated | ALADIN Operated Flag | 1 | Half-width numeric | 2 | 2 | - | `"10"`: Operated, `"20"`: Not operated. Defaults to `"20"` if omitted | +| 5 | talkOption | Voice Options | 1 | Object | - | - | △ | Voice option settings. If not specified, pass empty `{}` or omit entirely | +| 6 | talkOption.voiceMail | Voicemail | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Defaults to `"20"` | +| 7 | talkOption.callWaiting | Call Waiting | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Defaults to `"20"` | +| 8 | talkOption.callTransfer | Call Transfer | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Defaults to `"20"` | +| 9 | talkOption.callTransferToWorld | International Call Transfer | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Defaults to `"20"` | +| 10 | talkOption.worldCall | WORLD CALL | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Amount specified, `"11"`: Unlimited, `"20"`: Disabled. Defaults to `"20"` | +| 11 | talkOption.worldCallCreditLimit | WORLD CALL Credit Limit | 2 | Half-width numeric | 4 | 7 | △ | Credit limit in JPY. Only applies when worldCall is `"10"`. Defaults to `5000`. Ignored when worldCall is `"11"` or `"20"`. See [WORLD CALL Allowed Amounts](#world-call-allowed-amounts) | +| 12 | talkOption.worldWing | WORLD WING | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Amount specified, `"11"`: Unlimited, `"20"`: Disabled. Defaults to `"20"` | +| 13 | talkOption.worldWingCreditLimit | WORLD WING Suspension Limit | 2 | Half-width numeric | 5 | 7 | △ | Suspension threshold in JPY. Only applies when worldWing is `"10"`. Defaults to `50000`. Ignored when worldWing is `"11"` or `"20"`. See [WORLD WING Allowed Amounts](#world-wing-allowed-amounts) | +| 14 | identificationData | Identification Data | 1 | Object | - | - | ◎ | Key information to determine voice option usage count. Empty `{}` returns error | +| 15 | identificationData.lastnameKanji | Last Name (Kanji) | 2 | Full-width characters | 1 | 255 | △ | URL-encoded full-width characters. Registered as blank if omitted. See [Character Rules](#character-rules) | +| 16 | identificationData.firstnameKanji | First Name (Kanji) | 2 | Full-width characters | 1 | 255 | △ | URL-encoded full-width characters. Registered as blank if omitted. See [Character Rules](#character-rules) | +| 17 | identificationData.lastnameZenKana | Last Name (Katakana) | 2 | Full-width katakana | 1 | 255 | ◎ | URL-encoded full-width characters. See [Character Rules](#character-rules) | +| 18 | identificationData.firstnameZenKana | First Name (Katakana) | 2 | Full-width katakana | 1 | 255 | △ | URL-encoded full-width characters. Not required when gender is `"C"` (corporate). Required otherwise. See [Character Rules](#character-rules) | +| 19 | identificationData.gender | Gender | 2 | Half-width alpha | 1 | 1 | ◎ | `"M"`: Male, `"W"`: Female, `"C"`: Corporate. Invalid values return error | +| 20 | identificationData.birthday | Date of Birth | 2 | Alphanumeric + symbols | 1 | 10 | △ | `"YYYYMMDD"` or `"YYYY/MM/DD"` format. Not required when gender is `"C"` (corporate); value is ignored even if provided | + +**Legend:** ◎ Required | △ Conditional + +--- + +## Character Rules + +### Kanji Fields + +- Nearly all characters in the Unicode table are allowed +- **Excluded**: Special characters and platform-dependent characters (機種依存文字) + +### Katakana Fields + +Allowed characters: + +- Full-width katakana +- Full-width Roman letters (uppercase and lowercase) +- Full-width Arabic numerals +- The following symbols: + - `&` (ampersand) + - `'` (apostrophe) + - `,` (comma) + - `-` (hyphen) + - `.` (period) + - `・` (middle dot) + - ` ` (full-width space) + +--- + +## WORLD CALL Allowed Amounts + +Only the following values (in JPY) are accepted. Any other value returns an error. + +| | | | | +| ------ | ------ | ------- | --------- | +| 5,000 | 50,000 | 100,000 | 400,000 | +| 10,000 | 60,000 | 150,000 | 500,000 | +| 20,000 | 70,000 | 200,000 | 600,000 | +| 30,000 | 80,000 | 250,000 | 800,000 | +| 40,000 | 90,000 | 300,000 | 1,000,000 | + +--- + +## WORLD WING Allowed Amounts + +Only the following values (in JPY) are accepted. Any other value returns an error. + +| | | | +| ------- | ------- | --------- | +| 50,000 | 500,000 | 1,000,000 | +| 100,000 | 600,000 | | +| 200,000 | 700,000 | | +| 300,000 | 800,000 | | +| 400,000 | 900,000 | | + +--- + +## Request Examples + +### No Voice Options (empty object) + +```json +{ + "authKey": "XXXXXXXXXX", + "account": "09012345678", + "userConfirmed": "10", + "aladinOperated": "10", + "talkOption": {}, + "identificationData": { + "lastnameKanji": "山田", + "firstnameKanji": "太郎", + "lastnameZenKana": "ヤマダ", + "firstnameZenKana": "タロウ", + "gender": "M", + "birthday": "19900101" + } +} +``` + +### No Voice Options (omitted entirely) + +```json +{ + "authKey": "XXXXXXXXXX", + "account": "09012345678", + "userConfirmed": "10", + "aladinOperated": "10", + "identificationData": { + "lastnameKanji": "山田", + "firstnameKanji": "太郎", + "lastnameZenKana": "ヤマダ", + "firstnameZenKana": "タロウ", + "gender": "M", + "birthday": "19900101" + } +} +``` + +### With Voice Options (individual) + +```json +{ + "authKey": "XXXXXXXXXX", + "account": "09012345678", + "userConfirmed": "10", + "aladinOperated": "10", + "talkOption": { + "voiceMail": "10", + "callWaiting": "10", + "callTransfer": "10", + "callTransferToWorld": "20", + "worldCall": "10", + "worldCallCreditLimit": "10000", + "worldWing": "10", + "worldWingCreditLimit": "" + }, + "identificationData": { + "lastnameKanji": "山田", + "firstnameKanji": "太郎", + "lastnameZenKana": "ヤマダ", + "firstnameZenKana": "タロウ", + "gender": "M", + "birthday": "19900101" + } +} +``` + +### With Voice Options (corporate) + +```json +{ + "authKey": "XXXXXXXXXX", + "account": "09012345678", + "userConfirmed": "10", + "aladinOperated": "10", + "talkOption": { + "voiceMail": "10", + "callWaiting": "10", + "callTransfer": "10", + "callTransferToWorld": "20", + "worldCall": "10", + "worldCallCreditLimit": "10000", + "worldWing": "10", + "worldWingCreditLimit": "" + }, + "identificationData": { + "lastnameZenKana": "フリービット", + "firstnameZenKana": "", + "gender": "C" + } +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | ----------------------------------------------------------------------------------------------- | +| ○ | 200 | 100 | OK | Success | +| ○ | 200 | 101 | OK | Request already satisfied (options already in desired state) | +| × | 400 | 201 | Bad Request | Parameter error - account (account/to/tempAccount) issue | +| × | 400 | 204 | Bad Request | Parameter error - other parameter issue | +| × | 400 | 228 | Bad Request | Parameter error - authentication key (authKey) issue | +| × | 400 | 242 | Bad Request | Parameter error - user confirmed flag issue | +| × | 400 | 243 | Bad Request | Parameter error - voice options (object) issue | +| × | 400 | 244 | Bad Request | Parameter error - voicemail option issue | +| × | 400 | 245 | Bad Request | Parameter error - call waiting option issue | +| × | 400 | 246 | Bad Request | Parameter error - call transfer option issue | +| × | 400 | 247 | Bad Request | Parameter error - international call transfer option issue | +| × | 400 | 248 | Bad Request | Parameter error - WORLD CALL option issue | +| × | 400 | 249 | Bad Request | Parameter error - WORLD CALL credit limit issue | +| × | 400 | 250 | Bad Request | Parameter error - WORLD WING option issue | +| × | 400 | 251 | Bad Request | Parameter error - WORLD WING suspension limit issue | +| × | 400 | 252 | Bad Request | Parameter error - identification data (object) issue | +| × | 400 | 253 | Bad Request | Parameter error - last name (kanji) issue | +| × | 400 | 254 | Bad Request | Parameter error - first name (kanji) issue | +| × | 400 | 255 | Bad Request | Parameter error - last name (katakana) issue | +| × | 400 | 256 | Bad Request | Parameter error - first name (katakana) issue | +| × | 400 | 257 | Bad Request | Parameter error - gender issue | +| × | 400 | 258 | Bad Request | Parameter error - date of birth issue | +| × | 400 | 278 | Bad Request | Parameter error - ALADIN operated flag issue | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 404 | 263 | Not Found | Specified voice option does not exist | +| × | 500 | 210 | NG | Account not found error | +| × | 500 | 211 | NG | Account status does not allow request execution | +| × | 500 | 230 | NG | Account is waiting for async processing; request not allowed | +| × | 500 | 241 | NG | User confirmed flag is not enabled for voice option registration/change/cancellation | +| × | 500 | 260 | NG | MVNO account voice usage state is `20` (not in use); voice option addition not allowed | +| × | 500 | 261 | NG | Maximum voice SIM registrations per OEM exceeded (6 or more); voice option addition not allowed | +| × | 500 | 262 | NG | Voice option already registered. Use the change request API instead | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Example + +```json +{ + "resultCode": 100, + "status": { + "message": "OK", + "statusCode": 200 + } +} +``` diff --git a/freebit-api-docs/PA05-06_mvno-voice-option-change.md b/freebit-api-docs/PA05-06_mvno-voice-option-change.md new file mode 100644 index 00000000..668338a1 --- /dev/null +++ b/freebit-api-docs/PA05-06_mvno-voice-option-change.md @@ -0,0 +1,167 @@ +# PA05-06 - MVNO Voice Option Change (MVNO音声オプション変更依頼) + +## Overview + +Changes the voice option features for the requested account/MVNO service. + +- Voice option changes are **asynchronous** - cannot be cancelled while processing +- Unlike registration (PA05-05), this API does **not** accept identification data - only voice option changes +- Omitted options are treated as "no change" (not reset to defaults) +- The `talkOption` object is **required** and must not be empty + +--- + +## Request + +### Method + +`POST` (JSON format) + +### URL + +``` +https://[host]/emptool/api/mvno/talkoption/changeOrder/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | ------------------------------- | --------------------------- | ----- | ---------------------- | --- | --- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | account | Account | 1 | Alphanumeric + symbols | - | - | ◎ | Target SIM phone number | +| 3 | userConfirmed | User Confirmed Flag | 1 | Half-width numeric | 2 | 2 | ◎ | `"10"`: Enabled, `"20"`: Disabled. Returns error if not enabled | +| 4 | aladinOperated | ALADIN Operated Flag | 1 | Half-width numeric | 2 | 2 | - | `"10"`: Operated, `"20"`: Not operated. Defaults to `"20"` if omitted | +| 5 | talkOption | Voice Options | 1 | Object | - | - | ◎ | Voice option settings. **Must not be empty** - empty `{}` returns error | +| 6 | talkOption.voiceMail | Voicemail | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Omitted = no change | +| 7 | talkOption.callWaiting | Call Waiting | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Omitted = no change | +| 8 | talkOption.callTransfer | Call Transfer | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Omitted = no change | +| 9 | talkOption.callTransferToWorld | International Call Transfer | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Omitted = no change | +| 10 | talkOption.worldCall | WORLD CALL | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Amount specified, `"11"`: Unlimited, `"20"`: Disabled. Omitted = no change | +| 11 | talkOption.worldCallCreditLimit | WORLD CALL Credit Limit | 2 | Half-width numeric | 4 | 7 | △ | Credit limit in JPY. Only applies when worldCall is `"10"`. Defaults to `5000`. Ignored when worldCall is `"11"` or `"20"`. See [WORLD CALL Allowed Amounts](#world-call-allowed-amounts) | +| 12 | talkOption.worldWing | WORLD WING | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Amount specified, `"11"`: Unlimited, `"20"`: Disabled. Omitted = no change | +| 13 | talkOption.worldWingCreditLimit | WORLD WING Suspension Limit | 2 | Half-width numeric | 5 | 7 | △ | Suspension threshold in JPY. Only applies when worldWing is `"10"`. Defaults to `50000`. Ignored when worldWing is `"11"` or `"20"`. See [WORLD WING Allowed Amounts](#world-wing-allowed-amounts) | + +**Legend:** ◎ Required | △ Conditional + +--- + +## WORLD CALL Allowed Amounts + +Only the following values (in JPY) are accepted. Any other value returns an error. + +| | | | | +| ------ | ------ | ------- | --------- | +| 5,000 | 50,000 | 100,000 | 400,000 | +| 10,000 | 60,000 | 150,000 | 500,000 | +| 20,000 | 70,000 | 200,000 | 600,000 | +| 30,000 | 80,000 | 250,000 | 800,000 | +| 40,000 | 90,000 | 300,000 | 1,000,000 | + +--- + +## WORLD WING Allowed Amounts + +Only the following values (in JPY) are accepted. Any other value returns an error. + +| | | | +| ------- | ------- | --------- | +| 50,000 | 500,000 | 1,000,000 | +| 100,000 | 600,000 | | +| 200,000 | 700,000 | | +| 300,000 | 800,000 | | +| 400,000 | 900,000 | | + +--- + +## Request Example + +```json +{ + "authKey": "XXXXXXXXXX", + "account": "09012345678", + "userConfirmed": "10", + "aladinOperated": "10", + "talkOption": { + "voiceMail": "10", + "callWaiting": "10", + "callTransfer": "10", + "callTransferToWorld": "20", + "worldCall": "10", + "worldCallCreditLimit": "10000", + "worldWing": "10", + "worldWingCreditLimit": "20000" + } +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | ------------------------------------------------------------------------------------ | +| ○ | 200 | 100 | OK | Success | +| ○ | 200 | 101 | OK | Request already satisfied (options already in desired state) | +| × | 400 | 201 | Bad Request | Parameter error - account (account/to/tempAccount) issue | +| × | 400 | 204 | Bad Request | Parameter error - other parameter issue | +| × | 400 | 228 | Bad Request | Parameter error - authentication key (authKey) issue | +| × | 400 | 242 | Bad Request | Parameter error - user confirmed flag issue | +| × | 400 | 243 | Bad Request | Parameter error - voice options (object) issue | +| × | 400 | 244 | Bad Request | Parameter error - voicemail option issue | +| × | 400 | 245 | Bad Request | Parameter error - call waiting option issue | +| × | 400 | 246 | Bad Request | Parameter error - call transfer option issue | +| × | 400 | 247 | Bad Request | Parameter error - international call transfer option issue | +| × | 400 | 248 | Bad Request | Parameter error - WORLD CALL option issue | +| × | 400 | 249 | Bad Request | Parameter error - WORLD CALL credit limit issue | +| × | 400 | 250 | Bad Request | Parameter error - WORLD WING option issue | +| × | 400 | 251 | Bad Request | Parameter error - WORLD WING suspension limit issue | +| × | 400 | 278 | Bad Request | Parameter error - ALADIN operated flag issue | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 404 | 263 | Not Found | Specified voice option does not exist | +| × | 500 | 210 | NG | Account not found error | +| × | 500 | 211 | NG | Account status does not allow request execution | +| × | 500 | 230 | NG | Account is waiting for async processing; request not allowed | +| × | 500 | 241 | NG | User confirmed flag is not enabled for voice option registration/change/cancellation | +| × | 500 | 260 | NG | MVNO account voice usage state is `20` (not in use); voice option change not allowed | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Example + +```json +{ + "resultCode": 100, + "status": { + "message": "OK", + "statusCode": 200 + } +} +``` diff --git a/freebit-api-docs/PA05-18_mvno-semiblack-temp-registration.md b/freebit-api-docs/PA05-18_mvno-semiblack-temp-registration.md new file mode 100644 index 00000000..c52cad60 --- /dev/null +++ b/freebit-api-docs/PA05-18_mvno-semiblack-temp-registration.md @@ -0,0 +1,141 @@ +# PA05-18 - MVNO Semi-Black Account Temporary Registration (MVNO半黒アカウント仮登録) + +## Overview + +Queues a semi-black SIM account for later activation, based on an OEM request. Registers account information into related systems. + +- Settings are **NOT** applied immediately — they are saved to a **queue** +- To activate a SIM queued by this API, use **PA05-19** (MVNO Semi-Black Account Registration) +- Supports two MNP methods: semi-black SIM (`"10"`) and OTA (`"20"`) +- To overwrite existing MNP info (e.g., expired reservation), the entry must first be cancelled via **PA05-20** (MVNO Semi-Black Account Status Change) to status `"60"` (cancelled) + +--- + +## Request + +### Method + +`POST` (JSON format) + +### URL + +``` +https://[host]/emptool/api/mvno/semiblack/addTempAcnt/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | --------------------- | ---------------------- | ----- | ------------------ | --- | --- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | account | Account | 1 | Half-width numeric | 11 | 14 | △ | Target SIM phone number. Can be omitted when mnp.method is `"20"` (OTA). Required otherwise | +| 3 | tempAccount | Temporary Account | 1 | Half-width numeric | 11 | 14 | △ | Target SIM temporary phone number (parent number). Required when mnp.method is `"20"` (OTA). Not required otherwise | +| 4 | productNumber | Product Number | 1 | Alphanumeric | 15 | 15 | ◎ | Product number printed on the back of the SIM. First 2 chars uppercase alpha, remaining 13 digits (e.g., `AXxxxxxxxxxxxxx`, `DNxxxxxxxxxxxxx`) | +| 5 | repAccount | Representative Number | 1 | Half-width numeric | 11 | 14 | △ | Parent phone number for the target SIM | +| 6 | simKind | SIM Type | 1 | Alphanumeric | 2 | 2 | ◎ | SIM type. Format: `[size][capability]`. Size — `S`: Standard, `M`: Micro, `N`: Nano. Capability — `0`: Voice, `2`: No SMS, `3`: SMS. Examples: `S0`, `M2`, `N3` | +| 7 | expireDate | SIM Expiry Date | 1 | Half-width numeric | 8 | 8 | △ | YYYYMMDD format. Semi-black SIM card expiry. If specified: used as-is. If omitted: OTA (`"20"`) = no expiry; otherwise = system date + 15 days (inclusive) | +| 8 | mnp | MNP Info | 1 | Object | - | - | - | MNP information | +| 9 | mnp.method | MNP Method | 2 | Half-width numeric | 2 | 2 | ◎ | `"10"`: Semi-black SIM, `"20"`: OTA | +| 10 | mnp.reserveNumber | MNP Reservation Number | 2 | Half-width numeric | 10 | 10 | △ | MNP reservation number (no hyphens). Can be omitted when mnp.method is `"20"` (OTA). Required otherwise | +| 11 | mnp.reserveExpireDate | MNP Reservation Expiry | 2 | Half-width numeric | 8 | 8 | △ | YYYYMMDD format. MNP reservation expiry date. Can be omitted when mnp.method is `"20"` (OTA). Required otherwise | +| 12 | mnp.overWrite | Overwrite Flag | 2 | Half-width numeric | 2 | 2 | △ | `"10"`: Enabled, `"20"`: Disabled. Defaults to `"20"` if omitted. Used when MNP reservation expires before arrival. **Requires prior cancellation via PA05-20 (status `"60"`)** | + +**Legend:** ◎ Required | △ Conditional + +--- + +## Request Example + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "account": "08011112222", + "tempAccount": "08022223333", + "productNumber": "ZZ0009999999999", + "repAccount": "08000001111", + "simKind": "N0", + "expireDate": "20150901", + "mnp": { + "method": "10", + "reserveNumber": "1101201234", + "reserveExpireDate": "20150915" + } +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | ----------------------------------------------------------------------------------------- | +| ○ | 200 | 100 | OK | Success | +| × | 400 | 201 | Bad Request | Parameter error - account (account/tempAccount) issue | +| × | 400 | 266 | Bad Request | Parameter error - product number issue | +| × | 400 | 269 | Bad Request | Parameter error - representative number issue | +| × | 400 | 277 | Bad Request | Parameter error - SIM type issue | +| × | 400 | 309 | Bad Request | Parameter error - SIM expiry date issue | +| × | 400 | 306 | Bad Request | Parameter error - MNP method issue | +| × | 400 | 307 | Bad Request | Parameter error - MNP reservation number issue | +| × | 400 | 308 | Bad Request | Parameter error - MNP reservation expiry date issue | +| × | 400 | 314 | Bad Request | Parameter error - overwrite flag issue | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 500 | 208 | NG | Account (account/tempAccount) duplicate error | +| × | 500 | 275 | NG | No available phone number inventory for the specified representative number | +| × | 500 | 284 | NG | Representative number is locked | +| × | 500 | 287 | NG | Representative number does not exist or is unavailable | +| × | 500 | 288 | NG | Product number does not exist, is already in use, or has not been received into inventory | +| × | 500 | 289 | NG | SIM type does not match representative number's type | +| × | 500 | 310 | NG | MNP reservation number has duplication or other issues | +| × | 500 | 313 | NG | MNP reservation number expiry falls within the grace period; request cannot be accepted | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Example + +```json +{ + "resultCode": 100, + "status": { + "message": "OK", + "statusCode": 200 + } +} +``` + +--- + +## Related APIs + +| API | Name | Relationship | +| ------- | ------------------------------------- | ---------------------------------------------------- | +| PA05-19 | MVNO Semi-Black Account Registration | Activates SIMs queued by this API | +| PA05-20 | MVNO Semi-Black Account Status Change | Must cancel (status `"60"`) before overwrite is used | diff --git a/freebit-api-docs/PA05-19_mvno-semiblack-registration.md b/freebit-api-docs/PA05-19_mvno-semiblack-registration.md new file mode 100644 index 00000000..a80d7adc --- /dev/null +++ b/freebit-api-docs/PA05-19_mvno-semiblack-registration.md @@ -0,0 +1,142 @@ +# PA05-19 - MVNO Semi-Black Account Registration (MVNO半黒アカウント本登録) + +## Overview + +Performs full registration of a pre-provisioned semi-black SIM into related systems, based on an OEM request. + +- Settings are applied **immediately** (synchronous, unlike most other activation APIs) +- The SIM must have been previously pre-registered (仮登録) before calling this API +- Supports two MNP methods: semi-black SIM (`"10"`) and OTA (`"20"`) + +--- + +## Request + +### Method + +`POST` (JSON format) + +### URL + +``` +https://[host]/emptool/api/mvno/semiblack/addAcnt/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | -------------- | -------------------- | ----- | ---------------------- | --- | --- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | aladinOperated | ALADIN Operated Flag | 1 | Half-width numeric | 2 | 2 | - | `"10"`: Operated, `"20"`: Not operated. Defaults to `"20"` if omitted | +| 3 | masterAccount | Master Account | 1 | Alphanumeric + symbols | 1 | 64 | △ | IIC master account. Not required if: not using User Management Service, or no planCode specified | +| 4 | masterPassword | Master Password | 1 | Alphanumeric + symbols | 1 | 256 | △ | IIC master password. Required when createType is `"new"`. Not required if: not using User Management Service, or no planCode specified | +| 5 | createType | Registration Type | 1 | Alphanumeric | - | - | ◎ | `"new"`: Create new master account, `"add"`: Add to existing. `"add"` not allowed without User Management Service | +| 6 | account | Account | 1 | Half-width numeric | 11 | 14 | ◎ | Target SIM phone number. Can be omitted when mnp.method is `"20"` (OTA). Required otherwise | +| 7 | tempAccount | Temporary Account | 1 | Half-width numeric | 11 | 14 | △ | Target SIM temporary phone number. Required when mnp.method is `"20"` (OTA). Not required otherwise | +| 8 | productNumber | Product Number | 1 | Alphanumeric | 15 | 15 | ◎ | Product number printed on the back of the SIM. First 2 chars uppercase alpha, remaining 13 digits (e.g., `AXxxxxxxxxxxxxx`) | +| 9 | mnp | MNP Info | 1 | Object | - | - | - | MNP information | +| 10 | mnp.method | MNP Method | 2 | Half-width numeric | 2 | 2 | ◎ | `"10"`: Semi-black SIM, `"20"`: OTA | +| 11 | shipDate | Ship Date | 1 | Half-width numeric | 8 | 8 | ◎ | YYYYMMDD format. Past dates OK, future dates NG | +| 12 | globalIp | Global IP (yes/no) | 1 | Half-width numeric | 2 | 2 | - | `"20"`: Disabled. If not specified, not processed. Note: `"10"` (enabled) has been **deprecated**. Requires contract with freebit | +| 13 | planCode | Plan Code | 1 | Alphanumeric | 1 | 32 | ◎ | Plan to apply | +| 14 | deliveryCode | Delivery Code | 1 | Alphanumeric | 1 | 10 | - | Arbitrary code set by each OEM | + +**Legend:** ◎ Required | △ Conditional + +--- + +## Request Example + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "aladinOperated": "10", + "masterAccount": "testAccount@test.ne.jp", + "masterPassword": "testPass", + "createType": "new", + "account": "08011112222", + "tempAccount": "08022223333", + "productNumber": "ZZ0009999999999", + "mnp": { + "method": "10" + }, + "shipDate": "20150915", + "globalIp": "20", + "planCode": "100K_PLAN", + "deliveryCode": "XXX001" +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | ----------------------------------------------------------------------------------------- | +| ○ | 200 | 100 | OK | Success | +| × | 400 | 201 | Bad Request | Parameter error - account (account/to/tempAccount) issue | +| × | 400 | 202 | Bad Request | Parameter error - master password issue | +| × | 400 | 204 | Bad Request | Parameter error - other parameter issue | +| × | 400 | 215 | Bad Request | Parameter error - plan code (planCode) issue | +| × | 400 | 228 | Bad Request | Parameter error - authentication key (authKey) issue | +| × | 400 | 231 | Bad Request | Parameter error - global IP (globalIp) issue | +| × | 400 | 266 | Bad Request | Parameter error - product number issue | +| × | 400 | 269 | Bad Request | Parameter error - representative number issue | +| × | 400 | 274 | Bad Request | Parameter error - delivery code issue | +| × | 400 | 276 | Bad Request | Parameter error - ship date issue | +| × | 400 | 279 | Bad Request | Parameter error - registration type issue | +| × | 400 | 306 | Bad Request | Parameter error - MNP method issue | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 404 | 232 | Not Found | Specified plan does not exist | +| × | 500 | 208 | NG | Account (masterAccount/account) duplicate error | +| × | 500 | 210 | NG | Account (masterAccount) not found error | +| × | 500 | 211 | NG | Account status does not allow request execution | +| × | 500 | 230 | NG | Account is waiting for async processing; request not allowed | +| × | 500 | 275 | NG | No available phone number inventory for the specified representative number | +| × | 500 | 284 | NG | Representative number is locked | +| × | 500 | 287 | NG | Representative number does not exist or is unavailable | +| × | 500 | 288 | NG | Product number does not exist, is already in use, or has not been received into inventory | +| × | 500 | 289 | NG | SIM type does not match representative number's type | +| × | 500 | 313 | NG | MNP reservation number expiry falls within the grace period; request cannot be accepted | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Example + +```json +{ + "resultCode": 100, + "status": { + "message": "OK", + "statusCode": 200 + } +} +``` diff --git a/freebit-api-docs/PA05-20_mvno-semiblack-state-change.md b/freebit-api-docs/PA05-20_mvno-semiblack-state-change.md new file mode 100644 index 00000000..d85b602b --- /dev/null +++ b/freebit-api-docs/PA05-20_mvno-semiblack-state-change.md @@ -0,0 +1,137 @@ +# PA05-20 - MVNO Semi-Black Account Status Change (MVNO半黒アカウント状態変更) + +## Overview + +Updates the status of a semi-black SIM identified by its product number, in freebit's managed systems. + +- Used to manage the lifecycle of semi-black SIMs (cancel, mark as lost, returned, etc.) +- For white SIM inventory processing, use **PA05-15** (MVNO White SIM Status Change) instead +- Setting status to `"60"` (cancelled) is a prerequisite for using the overwrite flag in **PA05-18** + +--- + +## Request + +### Method + +`POST` (JSON format) + +### URL + +``` +https://[host]/emptool/api/mvno/semiblack/changeState/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | ----------------- | ---------------------- | ----- | ------------------ | --- | --- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | productNumber | Product Number | 1 | Alphanumeric | 15 | 15 | ◎ | Product number printed on the back of the SIM. First 2 chars uppercase alpha, remaining 13 digits (e.g., `AXxxxxxxxxxxxxx`, `DNxxxxxxxxxxxxx`) | +| 3 | account | Account | 1 | Half-width numeric | 11 | 14 | ◎ | Target SIM phone number. Can be omitted when mnp.method is `"20"` (OTA). Required otherwise | +| 4 | mnp | MNP Info | 1 | Object | - | - | - | MNP information | +| 5 | mnp.method | MNP Method | 2 | Half-width numeric | 2 | 2 | ◎ | `"10"`: Semi-black SIM, `"20"`: OTA | +| 6 | mnp.reserveNumber | MNP Reservation Number | 2 | Half-width numeric | 10 | 10 | △ | MNP reservation number (no hyphens). Can be omitted when mnp.method is `"20"` (OTA). Required otherwise | +| 7 | state | State | 1 | Half-width numeric | 1 | 2 | ◎ | Target SIM usage state (see State Values below) | + +**Legend:** ◎ Required | △ Conditional + +### State Values + +| Code | Name | Description | +| ---- | ----------------------- | -------------------------------------------------------------------------------- | +| 5 | OEM Received | SIM received into OEM inventory | +| 10 | Semi-black (= Temp Reg) | Temporary registration state | +| 20 | Burn Failure / Reissue | SIM burn failed, needs reissue | +| 30 | Lost / Reissue | SIM lost, needs reissue | +| 40 | Used | SIM has been used/consumed | +| 50 | Damaged | SIM is physically damaged | +| 60 | Cancelled | Cancelled (e.g., MNP reservation invalid). **Required before PA05-18 overwrite** | +| 70 | OEM Collected | SIM collected/recovered by OEM | +| 71 | OEM Uncollectable | SIM cannot be collected by OEM | +| 80 | Returned to FB | SIM returned to freebit | + +--- + +## Request Example + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "productNumber": "ZZ0009999999999", + "account": "08011112222", + "mnp": { + "method": "10", + "reserveNumber": "1101201234" + }, + "state": "10" +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | ----------------------------------------------------- | +| ○ | 200 | 100 | OK | Success | +| × | 400 | 201 | Bad Request | Parameter error - account (account/tempAccount) issue | +| × | 400 | 266 | Bad Request | Parameter error - product number issue | +| × | 400 | 306 | Bad Request | Parameter error - MNP method issue | +| × | 400 | 307 | Bad Request | Parameter error - MNP reservation number issue | +| × | 400 | 280 | Bad Request | Parameter error - state value issue | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 404 | 281 | Not Found | Specified product number does not exist | +| × | 500 | 282 | NG | State transition not allowed (invalid state change) | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Example + +```json +{ + "resultCode": 100, + "status": { + "message": "OK", + "statusCode": 200 + } +} +``` + +--- + +## Related APIs + +| API | Name | Relationship | +| ------- | ---------------------------------------------- | ------------------------------------------------------------- | +| PA05-15 | MVNO White SIM Status Change | Similar API for white SIMs (inventory processing) | +| PA05-18 | MVNO Semi-Black Account Temporary Registration | Queues SIMs; overwrite flag requires this API to cancel first | +| PA05-19 | MVNO Semi-Black Account Registration | Activates SIMs after temp registration | diff --git a/freebit-api-docs/PA05-33_ota-account-activation.md b/freebit-api-docs/PA05-33_ota-account-activation.md new file mode 100644 index 00000000..2ca1762a --- /dev/null +++ b/freebit-api-docs/PA05-33_ota-account-activation.md @@ -0,0 +1,327 @@ +# PA05-33 - OTA Account Activation (OTAアカウント開通) + +## Overview + +Activates a pre-created OTA-SIM based on an OEM request. Supports new activations, MNP transfers, and reissues. + +- Activation is **asynchronous** — not immediate. Completion is notified via file output: + - **Activation Ready Notification File** — output when activation preparation is complete + - **Activation Complete Notification File** — output when activation is fully complete + - File specifications: see CSV File Format Definition (MVNO Edition) +- When `aladinOperated` is `"10"` (operated) **and** `addKind` is `"R"` (reissue), the API returns `400-356` (unsupported pattern). Reissue with ALADIN operated is handled via file integration instead. + +--- + +## Request + +### Method + +`POST` (JSON format, URL-encoded) + +### URL + +``` +https://[host]/emptool/api/mvno/ota/addAcnt/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | ------------------------ | -------------------------- | ----- | ---------------------- | --- | --- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | aladinOperated | ALADIN Operated Flag | 1 | Half-width numeric | 2 | 2 | - | `"10"`: Operated, `"20"`: Not operated. Defaults to `"20"` if omitted | +| 3 | masterAccount | Master Account | 1 | Alphanumeric + symbols | 1 | 64 | △ | IIC master account. Not required if: not using User Management Service, no planCode specified, or addKind is `"R"` (reissue) | +| 4 | masterPassword | Master Password | 1 | Alphanumeric + symbols | 1 | 256 | △ | IIC master password. Required when createType is `"new"`. Not required if: not using User Management Service, no planCode, or addKind `"R"` | +| 5 | createType | Registration Type | 1 | Half-width alpha | 3 | 3 | △ | `"new"`: Create new master account, `"add"`: Add to existing. `"add"` not allowed without User Management Service. Not required for `"R"` | +| 6 | account | Account | 1 | Half-width numeric | 11 | 14 | ◎ | Target SIM phone number. If activating with same number as tempAccount, specify the tempAccount value | +| 7 | tempAccount | Temporary Account | 1 | Half-width numeric | 11 | 14 | ◎ | OTA-SIM temporary phone number | +| 8 | productNumber | Product Number | 1 | Alphanumeric | 15 | 15 | ◎ | Product number on back of OTA-SIM. First 2 chars uppercase alpha, remaining 13 digits (e.g., `AXxxxxxxxxxxxxx`) | +| 9 | repAccount | Representative Number | 1 | Half-width numeric | 11 | 14 | △ | Parent phone number. Required unless addKind is `"R"` (reissue) | +| 10 | size | SIM Size | 1 | Half-width alpha | 4 | 8 | ◎ | `"standard"`, `"nano"`, or `"micro"` | +| 11 | addKind | Activation Type | 1 | Half-width alpha | 1 | 1 | ◎ | `"N"`: New, `"M"`: MNP transfer, `"R"`: Reissue | +| 12 | reissue | Reissue Info | 1 | Object | - | - | △ | Required when addKind is `"R"`. Not required otherwise | +| 13 | reissue.oldSize | Original SIM Size | 2 | Half-width alpha | 4 | 8 | ○ | SIM size before reissue: `"standard"`, `"nano"`, or `"micro"` | +| 14 | reissue.oldProductNumber | Original Product Number | 2 | Alphanumeric | 15 | 15 | ○ | Product number of the SIM before reissue | +| 15 | mnp | MNP Info | 1 | Object | - | - | △ | Required when aladinOperated is `"20"` and addKind is `"M"`. Not required otherwise | +| 16 | mnp.reserveNumber | MNP Reservation Number | 2 | Half-width numeric | 10 | 10 | ○ | MNP reservation number (no hyphens) | +| 17 | mnp.reserveExpireDate | MNP Reservation Expiry | 2 | Half-width numeric | 8 | 8 | ○ | YYYYMMDD format. Future dates only | +| 18 | mnp.lastnameKanji | Last Name (Kanji) | 2 | Full-width characters | 1 | 50 | ○ | UTF-8 range. For non-corporate: lastname + full-width space + firstname ≤ 50 chars. For corporate (gender `"C"`): lastname ≤ 50 chars | +| 19 | mnp.firstnameKanji | First Name (Kanji) | 2 | Full-width characters | \* | \* | △ | Required when gender is not `"C"` (corporate). See lastname for length rules | +| 20 | mnp.lastnameZenKana | Last Name (Full Katakana) | 2 | Full-width katakana | 1 | 50 | ○ | UTF-8 range. For non-corporate: lastname + full-width space + firstname ≤ 50 chars. For corporate (gender `"C"`): lastname ≤ 50 chars | +| 21 | mnp.firstnameZenKana | First Name (Full Katakana) | 2 | Full-width katakana | \* | \* | △ | Required when gender is not `"C"` (corporate). See lastname for length rules | +| 22 | mnp.gender | Gender | 2 | Half-width alpha | 1 | 1 | ○ | `"M"`: Male, `"W"`: Female, `"C"`: Corporate | +| 23 | mnp.birthday | Date of Birth | 2 | Half-width numeric | 8 | 8 | △ | YYYYMMDD format. Required when gender is not `"C"` (corporate) | +| 24 | shipDate | Ship Date | 1 | Half-width numeric | 8 | 8 | △ | YYYYMMDD format. Past dates OK, future dates NG. Required when aladinOperated is `"10"`. When `"10"` + addKind `"R"`, treated as reissue completion date | +| 25 | planCode | Plan Code | 1 | Alphanumeric + symbols | 1 | 32 | - | Plan to apply. No plan = no connectivity. Not required for addKind `"R"` | +| 26 | globalIp | Global IP (yes/no) | 1 | Half-width numeric | 2 | 2 | - | `"20"`: Disabled. If not specified, not processed. `"10"` (enabled) is **deprecated**. Not required for addKind `"R"` | +| 27 | deliveryCode | Delivery Code | 1 | Alphanumeric | 1 | 10 | - | Arbitrary code set by each OEM | + +**Legend:** ◎ Required | ○ Required within level | △ Conditional + +--- + +## Character Rules + +### Kanji Fields + +Allowed characters: + +- Must be within UTF-8 range **and** convertible to Windows-31J encoding +- **Excluded**: half-width space (0x0020), half-width alphanumeric (0x0021-0x007E), half-width katakana (0xFF61-0xFF9F) +- Corporate (`"C"`): full-width spaces allowed +- Non-corporate: full-width spaces **not** allowed +- Full-width spaces **not** allowed at start/end of string + +### Katakana Fields + +Allowed characters (Unicode ranges): + +- Full-width space: 0x3000 +- Full-width digits: 0xFF10-0xFF19 +- Full-width uppercase alpha: 0xFF21-0xFF3A +- Full-width katakana: 0x30A1-0x30EF, 0x30F3 (ン), 0x30F4 (ヴ), 0x30FC (ー) +- Same corporate/non-corporate space rules as kanji fields + +--- + +## Request Examples + +### MNP Transfer (ALADIN operated, with User Management Service) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "aladinOperated": "10", + "masterAccount": "testAccount@test.ne.jp", + "masterPassword": "testPass", + "createType": "new", + "account": "08011112222", + "tempAccount": "08022223333", + "productNumber": "ZZ0009999999001", + "repAccount": "08000001111", + "size": "standard", + "addKind": "M", + "shipDate": "20170301", + "planCode": "100K_PLAN", + "globalIp": "20", + "deliveryCode": "XXXX" +} +``` + +### MNP Transfer (ALADIN operated, no User Management Service) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "aladinOperated": "10", + "createType": "new", + "account": "08011112223", + "tempAccount": "08022223334", + "productNumber": "ZZ0009999999002", + "repAccount": "08000001111", + "size": "nano", + "addKind": "M", + "shipDate": "20170301", + "planCode": "100K_PLAN", + "globalIp": "20" +} +``` + +### MNP Transfer (ALADIN not operated, with User Management Service, individual) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "masterAccount": "testAccount@test.ne.jp", + "masterPassword": "testPass", + "createType": "new", + "account": "08011112222", + "tempAccount": "08022223333", + "productNumber": "ZZ0009999999001", + "repAccount": "08000001111", + "size": "nano", + "addKind": "M", + "mnp": { + "reserveNumber": "1101201234", + "reserveExpireDate": "20170323", + "lastnameKanji": "山田", + "firstnameKanji": "太郎", + "lastnameZenKana": "ヤマダ", + "firstnameZenKana": "タロウ", + "gender": "M", + "birthday": "19900101" + }, + "planCode": "100K_PLAN", + "globalIp": "20", + "deliveryCode": "XXXX" +} +``` + +### MNP Transfer (ALADIN not operated, no User Management Service, corporate) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "createType": "new", + "account": "08011112223", + "tempAccount": "08022223334", + "productNumber": "ZZ0009999999002", + "repAccount": "08000001111", + "size": "micro", + "addKind": "M", + "mnp": { + "reserveNumber": "1101201235", + "reserveExpireDate": "20170323", + "lastnameKanji": "フリービット 株式会社", + "lastnameZenKana": "フリービット カブシキカイシャ", + "gender": "C" + }, + "planCode": "100K_PLAN", + "globalIp": "20" +} +``` + +### New Activation (ALADIN not operated, no User Management Service, with plan) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "createType": "new", + "account": "08011112224", + "tempAccount": "08011112224", + "productNumber": "ZZ0009999999003", + "repAccount": "08000001111", + "size": "nano", + "addKind": "N", + "planCode": "100K_PLAN", + "deliveryCode": "XXXX" +} +``` + +### New Activation (ALADIN not operated, no User Management Service, no plan) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "account": "08011112224", + "tempAccount": "08011112224", + "productNumber": "ZZ0009999999003", + "repAccount": "08000001111", + "size": "nano", + "addKind": "N", + "deliveryCode": "XXXX" +} +``` + +### Reissue (ALADIN not operated) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "account": "08011112225", + "tempAccount": "08022223336", + "productNumber": "ZZ0009999999004", + "size": "nano", + "addKind": "R", + "reissue": { + "oldSize": "micro", + "oldProductNumber": "CD0009999999004" + }, + "globalIp": "20" +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | ------------------------------------------------------------------------------ | +| ○ | 200 | 100 | OK | Success | +| × | 400 | 201 | Bad Request | Parameter error - account (masterAccount/account/tempAccount) issue | +| × | 400 | 202 | Bad Request | Parameter error - master password issue | +| × | 400 | 204 | Bad Request | Parameter error - other parameter issue | +| × | 400 | 215 | Bad Request | Parameter error - plan code issue | +| × | 400 | 228 | Bad Request | Parameter error - authentication key issue | +| × | 400 | 231 | Bad Request | Parameter error - global IP issue | +| × | 400 | 253 | Bad Request | Parameter error - last name (kanji) issue | +| × | 400 | 254 | Bad Request | Parameter error - first name (kanji) issue | +| × | 400 | 255 | Bad Request | Parameter error - last name (full katakana) issue | +| × | 400 | 256 | Bad Request | Parameter error - first name (full katakana) issue | +| × | 400 | 257 | Bad Request | Parameter error - gender issue | +| × | 400 | 258 | Bad Request | Parameter error - date of birth issue | +| × | 400 | 266 | Bad Request | Parameter error - product number (productNumber/oldProductNumber) issue | +| × | 400 | 267 | Bad Request | Parameter error - SIM size (size/oldSize) issue | +| × | 400 | 269 | Bad Request | Parameter error - representative number issue | +| × | 400 | 274 | Bad Request | Parameter error - delivery code issue | +| × | 400 | 276 | Bad Request | Parameter error - ship date issue | +| × | 400 | 278 | Bad Request | Parameter error - ALADIN operated flag issue | +| × | 400 | 279 | Bad Request | Parameter error - registration type issue | +| × | 400 | 307 | Bad Request | Parameter error - MNP reservation number issue | +| × | 400 | 308 | Bad Request | Parameter error - MNP reservation expiry date issue | +| × | 400 | 333 | Bad Request | Parameter error - activation type issue | +| × | 400 | 356 | Bad Request | Parameter error - unsupported pattern (ALADIN operated flag + activation type) | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 404 | 232 | Not Found | Specified plan does not exist | +| × | 500 | 208 | NG | Account (masterAccount/account/tempAccount) duplicate error | +| × | 500 | 210 | NG | Account (masterAccount/account) not found error | +| × | 500 | 230 | NG | Account is waiting for async processing; request not allowed | +| × | 500 | 275 | NG | No available phone number inventory for the specified representative number | +| × | 500 | 284 | NG | Representative number is locked | +| × | 500 | 287 | NG | Representative number does not exist or is unavailable | +| × | 500 | 288 | NG | Product number is unavailable (does not exist, already in use, etc.) | +| × | 500 | 310 | NG | MNP reservation number has duplication or other issues | +| × | 500 | 334 | NG | Temporary phone number does not match product number | +| × | 500 | 342 | NG | SIM size mismatch (does not match managed SIM size) | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Example + +```json +{ + "resultCode": 100, + "status": { + "message": "OK", + "statusCode": 200 + } +} +``` + +--- + +## Related APIs + +| API | Name | Relationship | +| ------- | ---------------------------------------------- | ---------------------------------------------------------------- | +| PA05-41 | eSIM Account Activation | Similar API for eSIM activations (also supports MNP and reissue) | +| PA05-18 | MVNO Semi-Black Account Temporary Registration | Pre-staging API for semi-black SIM MNP (queue-based) | +| PA05-19 | MVNO Semi-Black Account Registration | Synchronous activation for semi-black SIMs | diff --git a/freebit-api-docs/PA05-38_mvno-contract-change.md b/freebit-api-docs/PA05-38_mvno-contract-change.md new file mode 100644 index 00000000..0580a2de --- /dev/null +++ b/freebit-api-docs/PA05-38_mvno-contract-change.md @@ -0,0 +1,131 @@ +# PA05-38 - MVNO Contract Line Change (MVNO契約変更依頼) + +## Overview + +Changes the contract line type (4G/5G) for the specified account. + +- Processing takes approximately **30 minutes** per request (may vary with load) +- Once called, the request is **immediately locked** - subsequent requests for the same account are rejected until processing completes +- Requests **cannot be cancelled** once submitted; the only option is to wait for completion + +--- + +## Request + +### Method + +`POST` (JSON format) + +### URL + +``` +https://[host]/emptool/api/mvno/contractline/change/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | ------------- | ------------------ | ----- | ---------------------- | --- | --- | -------- | ----------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | account | Account | 1 | Alphanumeric + symbols | - | - | ◎ | Target account. For MVNO, specify the phone number | +| 3 | productNumber | Product Number | 1 | Alphanumeric | 15 | 15 | △ | First 2 chars uppercase alpha, remaining 13 digits (e.g., `AXxxxxxxxxxxxxx`, `DNxxxxxxxxxxxxx`) | +| 4 | contractLine | Contract Line Type | 1 | Alphanumeric + symbols | 2 | 2 | ◎ | `"4G"`: Change to 4G line, `"5G"`: Change to 5G line | + +**Legend:** ◎ Required | △ Conditional + +--- + +## Request Examples + +### Basic (without product number) + +```json +{ + "authKey": "XXXXXXXXXX", + "account": "09012345678", + "contractLine": "5G" +} +``` + +### With Product Number + +```json +{ + "authKey": "XXXXXXXXXX", + "account": "09012345678", + "productNumber": "AX1234567890123", + "contractLine": "4G" +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | -------------------------------------------------------- | +| ○ | 200 | 100 | OK | Success | +| × | 400 | 201 | Bad Request | Parameter error - account (account/to/tempAccount) issue | +| × | 400 | 228 | Bad Request | Parameter error - authentication key (authKey) issue | +| × | 400 | 266 | Bad Request | Parameter error - product number issue | +| × | 400 | 360 | Bad Request | Parameter error - contract type issue | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 500 | 210 | NG | Account not found error | +| × | 500 | 361 | NG | Account already has the target contract line type | +| × | 500 | 362 | NG | Account is currently processing a contract change | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Examples + +### Success + +```json +{ + "resultCode": "100", + "status": { + "message": "OK", + "statusCode": "200" + } +} +``` + +### Error + +```json +{ + "resultCode": "900", + "status": { + "message": "NG", + "statusCode": "500" + } +} +``` diff --git a/freebit-api-docs/PA05-41_esim-account-activation.md b/freebit-api-docs/PA05-41_esim-account-activation.md new file mode 100644 index 00000000..0828d541 --- /dev/null +++ b/freebit-api-docs/PA05-41_esim-account-activation.md @@ -0,0 +1,295 @@ +# PA05-41 - eSIM Account Activation (eSIMアカウント開通) + +## Overview + +Handles eSIM activation requests from OEM including new activations, MNP transfers, and reissues. + +- Activation is **asynchronous** - not immediate; completion is notified via the "eSIM Request Completion Notification File" +- For file format details, refer to the "CSV File Format Definition (MVNO Edition)" sheet "eSIM依頼完了通知ファイル" +- When `aladinOperated` is `"10"` (operated) **and** `addKind` is not `"N"` (new), the API returns `400-356` (unsupported pattern) + +--- + +## Request + +### Method + +`POST` (JSON format, URL-encoded) + +### URL + +``` +https://[host]/emptool/api/mvno/esim/addAcnt/ +``` + +### Authentication + +Obtained via separate authentication API, included in request parameters. + +### POST Parameters + +| No | Parameter | Name | Required | Description | +| --- | --------- | --------------- | -------- | ----------------- | +| 1 | json | JSON Parameters | ◎ | Main request body | + +### JSON Parameters + +| No | Parameter | Name | Level | Type | Min | Max | Required | Description | +| --- | ------------------------ | -------------------------- | ----- | ---------------------- | --- | --- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | authKey | Authentication Key | 1 | Alphanumeric | - | - | ◎ | Obtained from OEM authentication | +| 2 | aladinOperated | ALADIN Operated Flag | 1 | Half-width numeric | 2 | 2 | - | `"10"`: Operated, `"20"`: Not operated. Defaults to `"20"` if omitted | +| 3 | masterAccount | Master Account | 1 | Alphanumeric + symbols | 1 | 64 | △ | IIC master account. Not required if: not using User Management Service, no planCode specified, or addKind is `"R"` | +| 4 | masterPassword | Master Password | 1 | Alphanumeric + symbols | 1 | 256 | △ | IIC master password. Required when createType is `"new"`. Not required if: not using User Management Service, no planCode specified, or addKind is `"R"` | +| 5 | createType | Registration Type | 1 | Half-width alpha | 3 | 3 | △ | `"new"`: Create new master account, `"add"`: Add service account to existing. `"add"` not allowed without User Management Service. Not required if: no planCode specified, or addKind is `"R"` | +| 6 | eid | eSIM Identifier | 1 | Half-width numeric | 32 | 32 | ◎ | Target SIM's eSIM identifier (EID) | +| 7 | account | Account | 1 | Half-width numeric | 11 | 14 | △ | Target SIM's phone number. Not required when aladinOperated is `"20"` and addKind is `"N"`. Required otherwise | +| 8 | simKind | SIM Type | 1 | Alphanumeric | 2 | 2 | △ | `"E2"`: No SMS, `"E3"`: With SMS, `"E0"`: With voice. Not required when addKind is `"R"`. Required otherwise | +| 9 | contractLine | Contract Line Type | 1 | Alphanumeric | 2 | 2 | △ | `"4G"`: 4G line, `"5G"`: 5G line. Not required when aladinOperated is `"10"` or addKind is `"R"`. Defaults to `"4G"` if omitted | +| 10 | repAccount | Representative Number | 1 | Half-width numeric | 11 | 14 | △ | Parent phone number. Required when aladinOperated is `"10"` and addKind is `"N"`. Not required when addKind is `"R"`. Otherwise required for specific representative number activation | +| 11 | addKind | Activation Type | 1 | Half-width alpha | 1 | 1 | ◎ | `"N"`: New, `"M"`: MNP transfer, `"R"`: Reissue | +| 12 | reissue | Reissue Info | 1 | Object | - | - | △ | Required when aladinOperated is `"20"` and addKind is `"R"`. Not required otherwise | +| 13 | reissue.oldProductNumber | Old Product Number | 2 | Alphanumeric | 15 | 15 | △ | Product number of the SIM before reissue. First 2 chars uppercase alpha, remaining 13 digits (e.g., `AXxxxxxxxxxxxxx`). Only for physical SIM → eSIM | +| 14 | reissue.oldEid | Old eSIM Identifier | 2 | Half-width numeric | 32 | 32 | △ | EID of the eSIM before reissue. Only for eSIM → eSIM | +| 15 | mnp | MNP Info | 1 | Object | - | - | △ | Required when aladinOperated is `"20"` and addKind is `"M"`. Not required otherwise | +| 16 | mnp.reserveNumber | MNP Reservation Number | 2 | Half-width numeric | 10 | 10 | ○ | MNP reservation number (no hyphens) | +| 17 | mnp.lastnameKanji | Last Name (Kanji) | 2 | Full-width characters | 1 | 50 | ○ | UTF-8 range. For non-corporate: lastname + full-width space + firstname ≤ 50 chars. For corporate (gender `"C"`): lastname ≤ 50 chars. See [Character Rules](#character-rules) | +| 18 | mnp.firstnameKanji | First Name (Kanji) | 2 | Full-width characters | \* | \* | △ | Required when gender is not `"C"` (corporate). See lastname for length rules | +| 19 | mnp.lastnameZenKana | Last Name (Full Katakana) | 2 | Full-width katakana | 1 | 50 | ○ | UTF-8 range. For non-corporate: lastname + full-width space + firstname ≤ 50 chars. For corporate (gender `"C"`): lastname ≤ 50 chars. See [Character Rules](#character-rules) | +| 20 | mnp.firstnameZenKana | First Name (Full Katakana) | 2 | Full-width katakana | \* | \* | △ | Required when gender is not `"C"` (corporate). See lastname for length rules | +| 21 | mnp.gender | Gender | 2 | Half-width alpha | 1 | 1 | ○ | `"M"`: Male, `"W"`: Female, `"C"`: Corporate | +| 22 | mnp.birthday | Date of Birth | 2 | Half-width numeric | 8 | 8 | △ | YYYYMMDD format. Required when gender is not `"C"` (corporate) | +| 23 | shipDate | Ship Date | 1 | Half-width numeric | 8 | 8 | △ | YYYYMMDD format. Past dates OK, future dates NG. Required when aladinOperated is `"10"` | +| 24 | planCode | Plan Code | 1 | Alphanumeric + symbols | 1 | 32 | - | Plan to apply. No plan = no connectivity. Not required when addKind is `"R"` | +| 25 | deliveryCode | Delivery Code | 1 | Alphanumeric | 1 | 10 | - | Arbitrary code set by each OEM | + +**Legend:** ◎ Required | ○ Required within level | △ Conditional + +--- + +## Character Rules + +### Kanji Fields + +- Allowed: Characters within UTF-8 range that can be converted to Windows-31J, **excluding**: + - Half-width space (`U+0020`) + - Half-width alphanumeric (`U+0021`–`U+007E`) + - Half-width katakana (`U+FF61`–`U+FF9F`) +- Full-width spaces: Allowed within string for corporate (`"C"`) only; never allowed at string edges + +### Katakana Fields + +- Allowed Unicode ranges only: + - Full-width space: `U+3000` + - Full-width digits: `U+FF10`–`U+FF19` + - Full-width uppercase alpha: `U+FF21`–`U+FF3A` + - Full-width katakana: `U+30A1`–`U+30EF`, `U+30F3` (ン), `U+30F4` (ヴ), `U+30FC` (ー) +- Full-width spaces: Allowed within string for corporate (`"C"`) only; never allowed at string edges + +--- + +## Request Examples + +### New Activation (ALADIN not operated, no User Management Service, with plan, no representative number) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "createType": "new", + "eid": "11112222333344445555666677778888", + "simKind": "E2", + "contractLine": "4G", + "addKind": "N", + "planCode": "100K_PLAN", + "deliveryCode": "XXXX" +} +``` + +### New Activation (ALADIN not operated, no User Management Service, no plan, with representative number) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "eid": "11112222333344445555666677778888", + "simKind": "E0", + "repAccount": "08000001111", + "addKind": "N", + "deliveryCode": "XXXX" +} +``` + +### MNP Transfer (ALADIN operated, with User Management Service, no representative number) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "aladinOperated": "10", + "masterAccount": "testAccount@test.ne.jp", + "masterPassword": "testPass", + "createType": "new", + "eid": "11112222333344445555666677778888", + "account": "08011112222", + "simKind": "E0", + "contractLine": "4G", + "addKind": "M", + "shipDate": "20170301", + "planCode": "100K_PLAN", + "deliveryCode": "XXXX" +} +``` + +### MNP Transfer (ALADIN operated, no User Management Service, with representative number) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "aladinOperated": "10", + "createType": "new", + "eid": "11112222333344445555666677778888", + "account": "08011112223", + "simKind": "E3", + "repAccount": "08000001111", + "addKind": "M", + "shipDate": "20170301", + "planCode": "100K_PLAN" +} +``` + +### MNP Transfer (ALADIN not operated, with User Management Service, individual) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "masterAccount": "testAccount@test.ne.jp", + "masterPassword": "testPass", + "createType": "new", + "eid": "11112222333344445555666677778888", + "account": "08011112222", + "simKind": "E0", + "contractLine": "5G", + "addKind": "M", + "mnp": { + "reserveNumber": "1101201234", + "lastnameKanji": "山田", + "firstnameKanji": "太郎", + "lastnameZenKana": "ヤマダ", + "firstnameZenKana": "タロウ", + "gender": "M", + "birthday": "19900101" + }, + "planCode": "100K_PLAN", + "deliveryCode": "XXXX" +} +``` + +### MNP Transfer (ALADIN not operated, no User Management Service, corporate, with representative number) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "createType": "new", + "eid": "11112222333344445555666677778888", + "account": "08011112223", + "simKind": "E0", + "repAccount": "08000001111", + "addKind": "M", + "mnp": { + "reserveNumber": "1101201235", + "lastnameKanji": "フリービット 株式会社", + "lastnameZenKana": "フリービット カブシキカイシャ", + "gender": "C" + }, + "planCode": "100K_PLAN" +} +``` + +### Reissue (ALADIN not operated, physical SIM → eSIM) + +```json +{ + "authKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "account": "08011112225", + "eid": "11112222333344445555666677778888", + "addKind": "R", + "reissue": { + "oldProductNumber": "CD0009999999004" + } +} +``` + +--- + +## Response + +### Format + +JSON + +### Parameters + +| No | Parameter | Name | Level | Type | Description | +| --- | ----------------- | ------------------ | ----- | ---------------------- | ------------------------- | +| 1 | resultCode | Result Code | 1 | Numeric | Processing result code | +| 2 | status | Status | 1 | Object | Status details | +| 3 | status.message | Message | 2 | Alphanumeric + symbols | Processing result message | +| 4 | status.statusCode | Detail Result Code | 2 | Numeric | Detailed status code | + +--- + +## Response Codes + +| Status | Status Code | Detail Code | Message | Description | +| ------ | ----------- | ----------- | ----------- | ------------------------------------------------------------------------------ | +| ○ | 200 | 100 | OK | Success | +| × | 400 | 201 | Bad Request | Parameter error - account (masterAccount/account) issue | +| × | 400 | 202 | Bad Request | Parameter error - master password issue | +| × | 400 | 204 | Bad Request | Parameter error - other parameter issue | +| × | 400 | 215 | Bad Request | Parameter error - plan code issue | +| × | 400 | 228 | Bad Request | Parameter error - authentication key (authKey) issue | +| × | 400 | 253 | Bad Request | Parameter error - last name (kanji) issue | +| × | 400 | 254 | Bad Request | Parameter error - first name (kanji) issue | +| × | 400 | 255 | Bad Request | Parameter error - last name (full katakana) issue | +| × | 400 | 256 | Bad Request | Parameter error - first name (full katakana) issue | +| × | 400 | 257 | Bad Request | Parameter error - gender issue | +| × | 400 | 258 | Bad Request | Parameter error - date of birth issue | +| × | 400 | 266 | Bad Request | Parameter error - product number (productNumber/oldProductNumber) issue | +| × | 400 | 269 | Bad Request | Parameter error - representative number issue | +| × | 400 | 274 | Bad Request | Parameter error - delivery code issue | +| × | 400 | 276 | Bad Request | Parameter error - ship date issue | +| × | 400 | 277 | Bad Request | Parameter error - SIM type issue | +| × | 400 | 278 | Bad Request | Parameter error - ALADIN operated flag issue | +| × | 400 | 279 | Bad Request | Parameter error - registration type issue | +| × | 400 | 307 | Bad Request | Parameter error - MNP reservation number issue | +| × | 400 | 333 | Bad Request | Parameter error - activation type issue | +| × | 400 | 356 | Bad Request | Parameter error - unsupported pattern (ALADIN operated flag + activation type) | +| × | 400 | 360 | Bad Request | Parameter error - contract type issue | +| × | 400 | 370 | Bad Request | Parameter error - eSIM identifier (eid/oldEid) issue | +| × | 403 | 205 | Auth Error | Authentication key problem | +| × | 404 | 232 | Not Found | Specified plan does not exist | +| × | 500 | 208 | NG | Account (masterAccount/account) duplicate error | +| × | 500 | 210 | NG | Account (masterAccount/account) not found error | +| × | 500 | 230 | NG | Account is waiting for async processing; request not allowed | +| × | 500 | 275 | NG | No available phone number inventory for the specified representative number | +| × | 500 | 284 | NG | Representative number is locked | +| × | 500 | 287 | NG | Representative number does not exist or is unavailable | +| × | 500 | 288 | NG | Product number is unavailable (does not exist or already in use) | +| × | 500 | 289 | NG | SIM type does not match representative number's type | +| × | 500 | 304 | NG | SIM type does not match representative number's type | +| × | 500 | 310 | NG | MNP reservation number has duplication or other issues | +| × | 500 | 371 | NG | eSIM identifier (eid) duplicate error | +| × | 500 | 372 | NG | eSIM identifier (eid) not found error | +| × | 500 | 374 | NG | Specified eSIM identifier has reached the monthly activation limit | +| × | 500 | 900 | NG | Unexpected error occurred | + +--- + +## Response Example + +```json +{ + "resultCode": 100, + "status": { + "message": "OK", + "statusCode": 200 + } +} +```