# 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                       |
