swagger: '2.0'
info:
title: Verify-Vonage
version: "v1.1.1"
termsOfService: 'https://developer.kpn.com/legal'
contact:
name: API Support
email: api_developer@kpn.com
url: 'https://developer.kpn.com/support'
description: >-
Verify API is to Verify if a phone number is valid, reachable, and
accessible by the user. Verification message can be customerized. Verify
API provides the following services
- **Verify Request** - Generate and send a PIN to your user. You use the request_id in the response is used for the Verify check.
- **Verify Check** - Confirm that the PIN you received from your user matches the one sent by Vonage as a result of your Verify request.
- **Verify Search** - Lookup the status of one or more requests.
- **Verify Control** - Control the progress of your Verify requests.
## [Source view](https://app.swaggerhub.com/apis/kpn/verify-nexmo/)
[Documentation view](https://app.swaggerhub.com/apis-docs/kpn/verify-nexmo/)
---
## [KPN Developer](https://developer.kpn.com/)
[Getting Started](https://developer.kpn.com/getting-started)
---
host: api-prd.kpn.com
basePath: /communication/nexmo/verify
externalDocs:
description: HTTP response headers
url: https://developer.kpn.com/documentation-response-headers
schemes:
- https
produces:
- application
paths:
'/':
post:
summary: Generate PIN
tags:
- Verify
description: |-
To use Verify Request, follwoing steps needs to be followed
- Create a Request to send a PIN to your user.
- Check the response codes in the Response to ensure that your request was successful.
### Example
Request:
```
curl -X POST \
'https://api-prd.kpn.com/communication/nexmo/verify' \
-H 'authorization: Bearer access_token' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'number=316********&brand=VerifyTest'
```
Response:
```
{
"request_id":"1267899",
"status":"status",
"error_text":"error"
}
```
consumes:
- application/x-www-form-urlencoded
parameters:
- in: formData
name: number
description: >-
The mobile or landline phone number to verify. Unless you are setting country explicitly, this number must be in E.164 format.
example: 447700900000
required: true
type: string
- in: formData
name: brand
description: >-
The name of the company or App you are using Verify for. This 18 character alphanumeric string is used in the body of Verify message.
example: "Your brand PIN is ..".
required: true
type: string
- in: formData
name: country
description: >-
If do not set number in international format or you are not sure if number is correctly formatted, set country with the two-character country code. For example, GB, US. Verify works out the international phone number for you.
required: false
type: string
- in: formData
name: sender_id
description: >-
An 11 character alphanumeric string to specify the SenderID for SMS sent by Verify. Depending on the destination of the phone number you are applying, restrictions may apply. By default, sender_id is VERIFY.
required: false
type: string
- in: formData
name: code_length
description: >-
The length of the PIN. Possible values are 6 or 4 characters. The default value is 4.
required: false
type: string
- in: formData
name: lg
description: >-
By default, the SMS or text-to-speech (TTS) message is generated in the locale that matches the number. For example, the text message or TTS message for a 33* number is sent in French. Use this parameter to explicitly control the language and accent used for the Verify request. The default language is en-us.
required: false
type: string
- in: formData
name: require_type
description: >-
'Restrict verification to a certain network type. Possible values are-
All (Default)
Mobile
Landline
Note- contact api_developer@kpn.com to enable this feature.'
required: false
type: string
- in: formData
name: pin_expiry
description: >-
The PIN validity time from generation. This is an integer value between 60 and 3600 seconds. The default is 300 seconds. When specified together, pin_expiry must be an integer multiple of next_event_wait. Otherwise, pin_expiry is set to equal next_event_wait.
For example:
- pin_expiry = 360 seconds, so next_event_wait = 120 seconds - all three attempts have the same PIN.
- pin_expiry = 240 seconds, so next_event_wait = 120 seconds - 1st and 2nd attempts have the same PIN, third attempt has a different PIN.
- pin_expiry = 120 (or 200 or 400 seconds) - each attempt has a different PIN.
required: false
type: string
- in: formData
name: next_event_wait
description: >-
An integer value between 60 and 900 seconds inclusive that specifies the wait time between attempts to deliver the PIN. Verify calculates the default value based on the average time taken by users to complete verification.
required: false
type: string
responses:
'200':
description: OK
schema:
$ref: '#/definitions/VerifyRequestResponse'
'400':
description: Bad Request
schema:
$ref: '#/definitions/ErrorResponse'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
'403':
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/ErrorResponse'
'500':
description: Server Error
schema:
$ref: '#/definitions/ErrorResponse'
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/ErrorResponse'
security:
- OAuth2: []
'/check':
post:
summary: Verify PIN
tags:
- Verify
description: |-
To use Check reosurce following steps need to be followed
- Use a check request to send the PIN you received from your user to Vonage.
- Check the response codes in the response to see if the PIN sent by your user matched the PIN generated by Vonage
### Examples
Request:
```
curl -X POST \
'https://api-prd.kpn.com/communication/nexmo/verify/check' \
-H 'authorization: Bearer access_token' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'request_id=REQUEST_ID&code=CODE'
```
Response:
```
{
"request_id":"1267899",
"status":"status",
"error_text":"error"
}
```
consumes:
- application/x-www-form-urlencoded
parameters:
- in: formData
name: request_id
description: >-
The identifier of the Verify request to check. This is the request_id you received in the Verify Request response.
required: true
type: string
- in: formData
name: code
description: >-
The PIN given by your user.
required: true
type: string
responses:
'200':
description: OK
schema:
$ref: '#/definitions/VerifyCheckResponse'
'400':
description: Bad Request
schema:
$ref: '#/definitions/ErrorResponse'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
'403':
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/ErrorResponse'
'500':
description: Server Error
schema:
$ref: '#/definitions/ErrorResponse'
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/ErrorResponse'
security:
- OAuth2: []
'/search':
post:
summary: Look up status
tags:
- Verify
description: |-
This API resource performs the following
- Send a Verify Search request containing the request_id's of the Verify requests to search for.
- Check the status response parameter in the Search Response to see if the request was successfully completed.
**Note :** Either `request_id` or `request_ids` can be provided as part of a request message.
### Example
Request:
```
curl -X POST \
'https://api-prd.kpn.com/communication/nexmo/verify/search' \
-H 'authorization: Bearer access_token' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'request_id=REQUEST_ID'
```
Response:
```
{
"request_id":"1267899",
"status":"status",
"error_text":"error"
}
```
consumes:
- application/x-www-form-urlencoded
parameters:
- in: formData
name: request_id
description: >-
`Conditional` The request_id you received in the Verify Request Response.
(Either request_id or request_ids to be provided)
required: false
type: string
- in: formData
name: request_ids
description: >-
`Conditional` More than one request_id. Each request_id is a new parameter in the Verify Search request. A maximum of 10 request_id parameters can be specified.
(Either request_id or request_ids to be provided)
required: false
type: string
responses:
'200':
description: OK
schema:
$ref: '#/definitions/VerifySearchResponse'
'400':
description: Bad Request
schema:
$ref: '#/definitions/ErrorResponse'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
'403':
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/ErrorResponse'
'500':
description: Server Error
schema:
$ref: '#/definitions/ErrorResponse'
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/ErrorResponse'
security:
- OAuth2: []
'/control':
post:
summary: Control Verify Request
tags:
- Verify
description: |-
This APi resource is used to control the progress of your Verify Requests
- Send a Verify request.
- Check the response.
Following are possible values of "status" in the response.(Code = Command : Error Text : Meaning)
- 0 = Success : Success : Success.
- 19 = Cancel Verification requests can't be cancelled within the first 30 seconds : You must wait at least 30s after sending a Verify Request before cancelling.
- 19 = Cancel : Verification requests can't be cancelled now. Too many attempts to re-deliver have already been made : Verify has made too many attempts to redeliver a PIN for this request; you have to wait for the workflow to complete. Also, you cannot initiate a new Verify Request until this one expires.
- 19 = Trigger_Next_Event : No more events are left to execute : All the attempts to deliver the PIN for this request have been completed and there are no more events to skip to.
### Example
Request:
```
curl -X POST \
'https://api-prd.kpn.com/communication/nexmo/verify/control' \
-H 'authorization: Bearer access_token' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'request_id=REQUEST_ID&cmd=CMD'
```
Response:
```
{
"status":"0",
"command":"cancel"
}
```
consumes:
- application/x-www-form-urlencoded
parameters:
- in: formData
name: request_id
description: >-
The request_id you received in the Verify Request Response.
required: true
type: string
- in: formData
name: cmd
description: >-
Change the command workflow. Supported values are
cancel - stop the request
trigger_next_event - advance the request to the next part of the process.
Verification requests can't be cancelled within the first 30 seconds. You must wait at least 30s after sending a Verify Request before cancelling.
required: true
type: string
responses:
'200':
description: OK
schema:
$ref: '#/definitions/VerifyControlResponse'
'400':
description: Bad Request
schema:
$ref: '#/definitions/ErrorResponse'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
'403':
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
'404':
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
'429':
description: Too Many Requests
schema:
$ref: '#/definitions/ErrorResponse'
'500':
description: Server Error
schema:
$ref: '#/definitions/ErrorResponse'
'503':
description: Service Unavailable
schema:
$ref: '#/definitions/ErrorResponse'
security:
- OAuth2: []
securityDefinitions:
OAuth2:
type: oauth2
tokenUrl: >-
https://api-prd.kpn.com/oauth/client_credential/accesstoken?grant_type=client_credentials
flow: application
definitions:
VerifyRequestResponse:
type: object
properties:
request_id:
type: string
description: >-
The unique ID of the Verify request you sent. The value of request_id
is up to 32 characters long. You use this request_id for the Verify
Check.
title: Request ID
status:
type: string
example: 3161111111
description: >-
The response code that explains how your request proceeded.
(verify_response_codes, somevalue). Details of Status values
- 0 = Success. The request was successfully accepted by Vonage .
- 1 = Throttled. You are trying to send more than the maximum of 30 requests per second.
- 2 = Your request is incomplete and missing the mandatory parameter ($parameter). The stated parameter is missing.
- 3 = Success. The request was successfully accepted by Vonage .
- 4 = Throttled. You are trying to send more than the maximum of 30 requests per second.
- 6 =Your request is incomplete and missing the mandatory parameter ($parameter). The stated parameter is missing
- 7 = The number you are trying to verify is blacklisted for verification .
- 8 = The api_key you supplied is for an account that has been barred from submitting messages
- 9 = Partner quota exceeded. Your account does not have sufficient credit to process this request.
- 10 = Concurrent verifications to the same number are not allowed.
- 15 = The destination number is not in a supported network. The request has been rejected.
- 16 = The code inserted does not match the expected value
- 17 = The wrong code was provided too many times. You can run Verify Check on a request_id up to three times unless a new PIN code is generated. If you check a request more than 3 times, it is set to FAILED and you cannot check it again
- 18 = Too many request_ids provided. You added more than the maximum of 10 request_ids to your request.
- 19 = No more events are left to execute for the request.
- 101 = No request found. There are no matching Verify requests.
title: status Value.
error_text:
type: string
description: 'If status is not 0, this explains the error encountered.'
title: Error Text
VerifyCheckResponse:
type: object
properties:
event_id:
type: string
description: The identifier of the SMS message-id
title: Event ID
status:
type: integer
description: >-
If the value of status is 0, your user entered the correct PIN. If it
is not, check the response code.
title: Status
error_text:
type: string
description: 'If status is not 0, this is brief explanation about the error.'
title: Error Text
VerifySearchRequest:
type: object
properties:
request_id:
type: string
description: The request_id you received in the Verify Request Response.
title: Request ID
request_ids:
type: string
description: >-
More than one request_id. Each request_id is a new parameter in the
Verify Search request.
title: Request IDs
VerifySearchResponse:
type: object
properties:
request_id:
type: string
description: >-
The request_id you received in the Verify Request Response and used in
the Verify Search request.
title: Request ID
account_id:
type: integer
description: The Account ID the request was for.
title: Account ID
status:
type: string
description: >-
The status of the Verify Request. Possible values are following
- IN PROGRESS = still in progress.
- SUCCESS = your user entered the PIN correctly.
- FAILED = user entered the wrong pin more than 3 times.
- EXPIRED = no PIN entered during the pin_expiry time.
- CANCELLED = the request was cancelled using Verify Control
- 101 = the request_id you set in the Verify Search request is invalid.
title: Response status
number:
type: string
description: The phone number this Verify Request was made for.
title: Phone Number
sender_id:
type: string
description: The sender_id you provided in the Verify Request
title: Sender ID
date_submitted:
type: string
description: >-
The date and time the Verification Request was submitted. This
response parameter is in the following format YYYY-MM-DD HH:MM:SS. For
example, 2012-04-05 09:22:57.
title: Verification request time.
date_finalized:
type: string
description: >-
The date and time the Verification Request was completed. This
response parameter is in the following format YYYY-MM-DD HH:MM:SS. For
example, 2012-04-05 09:22:57.
title: Verification completed time
first_event_date:
type: string
description: >-
Time first attempt was made. This response parameter is in the
following format YYYY-MM-DD HH:MM:SS. For example, 2012-04-05
09:22:57.
title: Verification first attempt time.
last_event_date:
type: string
description: >-
Time last attempt was made. This response parameter is in the
following format YYYY-MM-DD HH:MM:SS. For example, 2012-04-05
09:22:57. title: Verification last attempt time.
checks:
type: string
description: >-
The list of checks made for this verification and their outcomes.
Possible values are
- date_received - in YYYY-MM-DD HH:MM:SS format
- code
- status - possible values are VALID and INVALID
- ip_address
title: List of checks
error_text:
type: string
description: 'If status is not SUCCESS, this message explains the issue.'
title: Error text
VerifyControlRequest:
type: object
required:
- request_id
- cmd
properties:
request_id:
type: string
description: The request_id you received in the Verify Request Response.
title: Request ID
cmd:
type: string
description: |-
Change the command workflow. Verification requests can't be cancelled within the first 30 seconds. You must wait at least 30s after sending a Verify Request before cancelling. Supported values are
- cancel = stop the request
- trigger_next_event = advance the request to the next part of the process.
title: command
VerifyControlResponse:
type: object
properties:
request_id:
type: string
description: >-
The request_id you received in the Verify Request Response and used in
the Verify Search request.
title: Request ID
account_id:
type: integer
description: The Account ID the request was for.
title: Account ID
status:
type: string
description: >-
The Verify Control Response code that explains how your request
proceeded. Details of possible values are given in resource (/control) documentation.
title: ststus
command:
type: string
description: The cmd you sent in the request.
title: Command
ErrorResponse:
type: object
properties:
transactionId:
type: string
description: transaction id of the the request
title: Transaction ID
status:
type: string
description: Status
title: Status
name:
type: string
description: Error name
title: Error name
message:
type: string
description: Error message
title: Error message
info:
type: string
description: Additional information about error
title: Info