Assist_Design/freebit-api-docs/PA05-38_mvno-contract-change.md

132 lines
4.7 KiB
Markdown
Raw Normal View History

# 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"
}
}
```