openapi: 3.0.0
info:
description: |
This API offers three functionalities:
- User management
- Emailing
User management can be used to add, get and modify user information. This can be done be a user with customer admin rights, without 2FA.Emailing can be used without authorization. The mail functionality can be used to sent registered emails with attachment without 2FA. Mail management, XML, can be seen by webservice users. It can be used to retrieve ticket information once the ticket id is known.
### Key highlights
- **Sandbox:** Full-fledged capabilities.
- **Security:** HTTPS, OAuth, Rate limit
- **Versioning:** Supports version-less API, version tight. If no version
is provided (in header) it defaults to latest version.
## [Source view](https://app.swaggerhub.com/apis/kpn/registeredemail-registeredemail/)
[Documentation view](https://app.swaggerhub.com/apis-docs/kpn/registeredemail-registeredemail/)
---
## [KPN API Store](https://developer.kpn.com/)
[Getting Started](https://developer.kpn.com/getting-started)
---
version: "v.1.1.1"
title: Registered E-mail - Registered E-mail
contact:
name: API Support
email: api_developer@kpn.com
url: 'https://developer.kpn.com/support'
termsOfService: 'https://developer.kpn.com/legal'
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/kpn/registeredemail-registeredemail/v.1.1.1
- url: 'https://api-prd.kpn.com/data/registeredemail/registeredemail'
externalDocs:
description: HTTP response headers
url: https://developer.kpn.com/documentation-response-headers
paths:
/api/user/:
post:
tags:
- 'User Management'
description: "This endpoint creates a new user (with role user)."
security:
- oauth2: []
parameters:
- $ref: '#/components/parameters/api_version'
requestBody:
$ref: '#/components/requestBodies/CreateUser'
responses:
201:
$ref: '#/components/responses/UserCreated'
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/error"
401:
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/error"
403:
description: Forbidden
content:
application/json:
schema:
$ref: "#/components/schemas/error"
404:
description: Not Found
content:
application/json:
schema:
$ref: "#/components/schemas/error"
429:
description: Too many requests
content:
application/json:
schema:
$ref: "#/components/schemas/error"
500:
description: Server error
content:
application/json:
schema:
$ref: "#/components/schemas/error"
/webservice/mailsender/send:
post:
tags:
- 'Emailing'
description: "With this endpoint a user can send registered emails."
security:
- oauth2: []
parameters:
- $ref: '#/components/parameters/api_version'
requestBody:
$ref: '#/components/requestBodies/SentEmail'
responses:
200:
$ref: '#/components/responses/SentEmailResponse'
400:
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/error"
401:
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/error"
403:
description: Forbidden
content:
application/json:
schema:
$ref: "#/components/schemas/error"
404:
description: Not Found
content:
application/json:
schema:
$ref: "#/components/schemas/error"
429:
description: Too many requests
content:
application/json:
schema:
$ref: "#/components/schemas/error"
500:
description: Server error
content:
application/json:
schema:
$ref: "#/components/schemas/error"
components:
securitySchemes:
oauth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://api-prd.kpn.com/oauth/client_credential/accesstoken?grant_type=client_credentials
parameters:
api_version:
in: header
name: api-version
schema:
type: string
description: API Version. If no version is provided it defaults to latest version.
required: false
api_version_query:
in: query
name: api-version
schema:
type: string
description: API Version. If no version is provided it defaults to latest version.
required: false
requestBodies:
CreateUser:
required: true
content:
'application/json':
schema:
type: object
properties:
email_address:
type: string
format: email
required:
- email_address
UpdateTabel:
required: true
content:
'application/json':
schema:
$ref: '#/components/schemas/TabelInformation'
SentEmail:
required: true
content:
'application/json':
schema:
$ref: '#/components/schemas/email'
responses:
UserCreated:
description: Created
content:
'application/json':
schema:
$ref: '#/components/schemas/UserInfo'
UpdatedTabel:
description: Ok
content:
'application/json':
schema:
$ref: '#/components/schemas/TabelInformation'
CreateRowInTabel:
description: Created
content:
'application/json':
schema:
$ref: '#/components/schemas/TabelInformation'
SentEmailResponse:
description: A successful delivery
content:
'application/json':
schema:
type: object
properties:
ticket_token:
type: string
example: K.SF1m-w
ticket_url:
type: string
example: https://environment.aangetekendmailen.nl/webservice/dashboard/?ticket_token=K.SF1m-w&action=ticket_html&lang=nl
message:
type: string
example: OK
XMLresponse:
description: xml body
content:
'application/xml':
schema:
$ref: '#/components/schemas/biljetten'
BadRequestError:
description: Bad request
# content:
# 'application/json':
# schema:
# $ref: '#/components/schemas/Error'
UnauthorizedError:
description: Authentication information is missing or invalid
# headers:
# WWW_Authenticate:
# schema:
# type: string
ForbiddenError:
description: Forbidden
# content:
# 'application/json':
# schema:
# $ref: '#/components/schemas/Error'
NotFoundError:
description: Not found
# content:
# 'application/json':
# schema:
# $ref: '#/components/schemas/Error'
MethodNotAllowedError:
description: Method not allowed
UnsupportedMediaTypeError:
description: Unsupported Media Type
# content:
# 'application/json':
# schema:
# $ref: '#/components/schemas/Error'
UnexpectedError:
description: Serverside error
# content:
# 'application/json':
# schema:
# $ref: '#/components/schemas/Error'
schemas:
UserInfo:
type: object
properties:
id:
$ref: '#/components/schemas/id'
required:
- id
id:
type: integer
example: 154
error:
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
TabelInformation:
type: object
properties:
real_name:
$ref: '#/components/schemas/real_name'
username:
$ref: '#/components/schemas/username'
phone_number:
$ref: '#/components/schemas/phone_number'
email_address:
$ref: '#/components/schemas/email_address'
date_of_birth:
$ref: '#/components/schemas/date_of_birth'
sender_allowed:
$ref: '#/components/schemas/sender_allowed'
required:
- username
- email_address
real_name:
type: string
example: "Jane Doe"
username:
type: string
example: "janedoe"
phone_number:
type: string
example: "0612345678"
email_address:
type: string
example: "janedoe@emailaddress.com"
date_of_birth:
type: string
example: "2000-12-31"
sender_allowed:
type: boolean
email:
type: object
properties:
message_body:
type: string
example: this is the email body
sender_email:
type: string
example: sender@email.com
sender_real_name:
type: string
example: Jane Doe
subject:
type: string
example: this is the subject
x-own-id:
type: string
example: id
x-own-guid:
type: string
example: guid
x-own-campaign:
type: string
example: campaign
recipient_email:
type: string
example: recipient@email.com
recipient_language:
type: string
example: en
attachments:
type: array
items:
$ref: '#/components/schemas/attachment'
required:
- message_body
- sender_email
- sender_real_name
- subject
- recipient_email
- attachments
attachment:
type: object
description: 'The attachment is Base64 encoded, the MIME type should be corresponding with the format of the actual file and the name should be correct.'
properties:
attachment:
type: string
example: BAse64E=
attachment_name:
type: string
example: attachment.pdf
attachment_type:
type: string
example: application/pdf
required:
- attachment
- attachment_name
- attachment_type
biljetten:
type: object
description: list of biljets
properties:
biljet:
$ref: '#/components/schemas/biljet'
biljet:
type: object
description: list of statusses and attachments
properties:
id:
type: string
example: K.SF1m-w
xml:
attribute: true
afzender:
type: string
example: janedoe@xmlservice.com
xml:
attribute: true
ontvanger:
type: string
example: johndoe@xmlservice.com
xml:
attribute: true
onderwerp:
type: string
example: emailSubject
xml:
attribute: true
customer_id:
type: string
example: 123456
xml:
attribute: true
taal:
type: string
example: nl
xml:
attribute: true
handtekening_nodig:
type: string
example: 1
xml:
attribute: true
bijlagen:
$ref: '#/components/schemas/bijlagen'
statussen:
$ref: '#/components/schemas/statussen'
bijlagen:
type: object
description: list of attachments
properties:
bijlage:
$ref: '#/components/schemas/bijlage'
statussen:
type: object
description: list of attachments
properties:
status:
$ref: '#/components/schemas/status'
bijlage:
type: object
description: list of attachments
properties:
bijlage:
type: string
example: example.pdf
xml:
attribute: true
hash:
type: string
example: 'abCdeFg8hI/JLabcDEFGH8iJ86KLMNopQR0/stU6vwX='
xml:
attribute: true
geaccepteerd:
type: string
example: 1
xml:
attribute: true
status:
type: object
description: list of attachments
properties:
statusdatumtijd:
type: string
example: '2020-03-03 15:43:20'
xml:
attribute: true
statusomschrijving:
type: string
example: Herinnering aangetekende mail verstuurd
xml:
attribute: true
statuscode:
type: string
example: 95
xml:
attribute: true
statusdetail:
type: string
example: " "
xml:
attribute: true