CDK Global create API
The create API from CDK Global — 1 operation(s) for create.
The create API from CDK Global — 1 operation(s) for create.
swagger: '2.0'
info:
version: 3.0.0
title: appointments adopt create API
description: "## Fortellis - Service - Appointments\nA service appointment is a booking of a vehicle into the service department for work that needs to be carried out on the vehicle. This could be a service, repair, body repair, government test etc.\n\n## What does this API do?\nThe API will allow you to query, create and manage service appointments. \n\n## Intended Audience\nIt is expected that systems that require create, read, update, and delete access to appointments will use this API. Systems implementing service-scheduling will use this API to store appointment records.\n"
contact:
name: Developer Evangelists
url: https://example.com
email: support@fortellis.io
host: fortellis.io
basePath: /sales/notification/v3
schemes:
- https
security:
- permission-model:
- anonymous
tags:
- name: create
paths:
/:
post:
consumes:
- application/json
summary: Create an appointment
description: 'Creates an appointment. Creating an appointment using this endpoint does not require the underlying system to implement any appointment capacity checks or dependent resource reservations. It is suggested that the service-scheduling API be used for this purpose.
'
operationId: createAppointment
tags:
- create
parameters:
- $ref: '#/parameters/header.Accept'
- $ref: '#/parameters/header.Accept-Charset'
- $ref: '#/parameters/header.Accept-Language'
- $ref: '#/parameters/header.If-Match'
- $ref: '#/parameters/header.If-None-Match'
- $ref: '#/parameters/header.Prefer'
- $ref: '#/parameters/header.Request-Id'
- $ref: '#/parameters/header.Subscription-Id'
- $ref: '#/parameters/header.Authorization'
- $ref: '#/parameters/body.CreateRequest'
produces:
- application/json
responses:
'200':
$ref: '#/responses/Appointment'
'400':
$ref: '#/responses/BadRequest'
'401':
$ref: '#/responses/Unauthorized'
'403':
$ref: '#/responses/Forbidden'
definitions:
Measurement:
description: This field will let you know about the value and the units of measurement.
type: object
required:
- units
- value
properties:
value:
type: number
units:
type: string
enum:
- MILES
- KM
- HOURS
example:
value: 75201
units: MILES
Price:
description: This field lists the cost of the appointment.
type: object
properties:
currencyCode:
type: string
description: The ISO 4217 three letter currency code of the price
netPrice:
type: number
description: Price excluding sales tax / VAT expressed in the given currency
grossValue:
type: number
description: Price including sales tax / VAT expressed in the given currency
taxValue:
type: number
description: Value of tax expressed in the given currency
taxRate:
type: number
description: Tax rate as a percentage
netDiscountedPrice:
type: number
description: Discounted price exluding sales tax in the given currency
grossDiscountedPrice:
type: number
description: Discounted price including sales tax in the given currency
required:
- currencyCode
- netPrice
- grossValue
- taxValue
- taxRate
example:
currencyCode: US
netPrice: 53
grossValue: 57.24
taxValue: 4.24
taxRate: 8
AppointmentResource:
description: This field describes the appointment resources.
allOf:
- $ref: '#/definitions/Appointment'
- type: object
properties:
appointmentId:
type: string
description: The appointment unique identifier
links:
$ref: '#/definitions/AppointmentLinks'
description: The hypermedia links of the Appointment resource
required:
- appointmentId
- links
example:
appointmentId: '123'
dateTime: '2019-06-10T16:15:00+08:00'
requestedServices:
- description: Filler, Tail Lamp Center - Replace (Labor Only)
sourceHref: api.fortellis.io/service/reference/v4/service-packages/model/CHEV-CAMAC-2001-US/packages/BF018/specifications/8994972
vehicleHref: api.fortellis.io/service/v1/vehicles/123
vehicleMileage:
value: 34760
units: MILES
customerHref: api.fortellis.io/service/v1/customers/123
contact:
label: mobile
uri: tel:1-234-567-8900
preferences:
items:
startDay:
- MON
endDay:
- SAT
startTime: '1985-04-12T23:20:50.52Z'
endTime: '1985-04-18T23:20:50.52Z'
timezone: CST
transportHref: api.fortellis.io/service/v1/scheduling/lookups/transports/123
advisorHref: api.fortellis.io/service/v1/scheduling/lookups/advisors/123
concerns: My driver side front door rattles when I drive faster than 45
remarks: Customer reports that driver side front door exhibits a rattle above 45mph
links:
self:
href: api.fortellis.io/service/v3/appointments/123
ContactMethod:
description: This is the method that the customer would like you to use to contact them.
type: object
properties:
label:
type: string
description: A label used to describe the contact method (e.g. home, work-cell).
uri:
type: string
description: The RFC 3986 encoded URI address of the contact method.
preferences:
type: object
items:
$ref: '#/definitions/ContactPreference'
required:
- label
- uri
example:
label: Home Information
uri: https://examle.com/person/contact
preferences:
items:
startDay:
- MON
endDay:
- SAT
startTime: '1985-04-12T23:20:50.52Z'
endTime: '1985-04-18T23:20:50.52Z'
timezone: CST
VehicleSpecification:
description: This field describes the vehicle.
type: object
properties:
makeCode:
type: string
description: The make code of the vehicle
modelCode:
type: string
description: The model code of the vehicle
modelYear:
type: number
description: The model year of the vehicle
required:
- makeCode
- modelCode
- modelYear
example:
makeCode: CHEV
modelCode: CAMAC
modelYear: 2001
RequestedService:
description: This fields describes the service requested.
type: object
properties:
description:
type: string
description: The textual description of the requested service
concern:
type: string
description: The textual description of the concern that prompted the requested service
sourceHref:
type: string
description: "The hypermedia link to the source service specification. This will \nlink to a service-packages Specification or LaborOperation resource.\n"
overrides:
type: object
properties:
quote:
$ref: '#/definitions/Price'
required:
- description
example:
description: Replace Air Filter
sourceHref: api.fortellis.io/service/reference/v4/service-packages/model/CHEV-CAMAC-2001-US/packages/BF018/specifications/8994972
Appointment:
description: This definition defines the information and format in appointments.
properties:
dateTime:
type: string
description: The ISO 8601 encode date and time of the appointment
requestedServices:
type: array
items:
$ref: '#/definitions/RequestedService'
description: The requested services to be performed on the vehicle
vehicleHref:
type: string
description: The hyperlink to the Vehicle resource scheduled for the appointment.
vehicleSpec:
$ref: '#/definitions/VehicleSpecification'
description: The make, model, and year describing the vehicle to be serviced. This must be provided if the 'vehicleHref' property is not specified.
vehicleMileage:
$ref: '#/definitions/Measurement'
description: The estimated mileage of the vehicle
customerHref:
type: string
description: The hyperlink to the customer who is requesting the vehicle service
contact:
$ref: '#/definitions/ContactMethod'
description: "A contact method for the customer. This takes precedence over contact \nmethods present in the source customer record. This must be provided \nif a customer resource link is not included.\n"
transportHref:
type: string
description: The hyperlink to the requested transport
advisorHref:
type: string
description: The hyperlink to the requested service advisor
teamHref:
type: string
description: The hyperlink to the requested service team
concerns:
type: string
description: Concerns of the customer that prompted the appointment
remarks:
type: string
description: Comments by the service department staff about the appointment
required:
- dateTime
- requestedServices
example:
dateTime: '2019-06-10T16:15:00+08:00'
requestedServices:
- description: Filler, Tail Lamp Center - Replace (Labor Only)
sourceHref: api.fortellis.io/service/reference/v4/service-packages/model/CHEV-CAMAC-2001-US/packages/BF018/specifications/8994972
vehicleHref: api.fortellis.io/service/v1/vehicles/123
vehicleMileage:
value: 34760
units: MILES
customerHref: api.fortellis.io/service/v1/customers/123
contact:
label: mobile
uri: tel:1-234-567-8900
preferences:
items:
startDay:
- MON
endDay:
- SAT
startTime: '1985-04-12T23:20:50.52Z'
endTime: '1985-04-18T23:20:50.52Z'
timezone: CST
transportHref: api.fortellis.io/service/v1/scheduling/lookups/transports/123
advisorHref: api.fortellis.io/service/v1/scheduling/lookups/advisors/123
concerns: My driver side front door rattles when I drive faster than 45
remarks: Customer reports that driver side front door exhibits a rattle above 45mph
AppointmentLinks:
description: This field describes the appointment links.
type: object
properties:
self:
$ref: '#/definitions/LinkDescriptionObject'
description: The canonical link to the appointment resource
required:
- self
example:
self:
href: api.fortellis.io/service/v3/appointments/123
ContactPreference:
description: This fields shows the customer's contact preferences.
type: object
required:
- startDay
- endDay
properties:
startDay:
type: string
enum:
- MON
- TUE
- WED
- THU
- FRI
- SAT
- SUN
description: The starting day of the interval
endDay:
type: string
enum:
- MON
- TUE
- WED
- THU
- FRI
- SAT
- SUN
description: The ending day of the interval
startTime:
type: string
description: The RFC 3339 encoded starting time of the interval
endTime:
type: string
description: The RFC 3339 encoded ending time of the interval
timeZone:
type: string
description: The IANA Timezone Database encoded timezone code of the interval
example:
startDay: MON
endDay: SAT
startTime: '1985-04-12T23:20:50.52Z'
endTime: '1985-04-18T23:20:50.52Z'
timezone: CST
LinkDescriptionObject:
description: These are the linked objects that you send with the request to comply with HATEOAS.
type: object
properties:
href:
type: string
description: The target URI
rel:
type: string
description: The link relation type
method:
type: string
description: The HTTP verb that MUST be used to make a request to the target of the link
title:
type: string
description: A human readable title for the link that conveys the purpose of the link
required:
- href
example:
href: https://example.com
rel: self
method: POST
title: Reference to self at the Example
ErrorResponse:
description: This is a generic error schema.
type: object
properties:
code:
type: integer
format: int32
message:
type: string
required:
- code
- message
example:
code: 24
message: Error Message used for debugging
parameters:
header.Accept-Language:
description: This header describes the languages that the client accepts.
name: Accept-Language
in: header
type: string
header.Authorization:
name: Authorization
in: header
required: true
type: string
format: guid
description: Provides authorization to access Fortellis APIs. For calling a Fortellis Provider, this must be an OAuth 2.0 token issued by the Fortellis authorization server, but you may call the simulator platform with Basic Authorization using your API key and secret.
header.Prefer:
description: This header describes the preferences of the client calling the API.
name: Prefer
in: header
type: string
enum:
- return=representation
- return=minimal
header.Subscription-Id:
name: Subscription-Id
in: header
required: true
type: string
format: guid
description: The Fortellis Marketplace subscription identifier between a user entity and the solution. For sample responses use the Subscription-Id 'test'.
header.Request-Id:
name: Request-Id
in: header
required: true
type: string
format: guid
description: You must include the Request-Id in every call to track the same call across systems.
header.If-Match:
name: If-Match
in: header
type: string
description: Specifies a conditional request to only return the resource when it does match one of the included ETag values
header.Accept-Charset:
description: This header describes the characters that the client will accept.
name: Accept-Charset
in: header
type: string
enum:
- utf-8
header.Accept:
description: This header describes the characters that the API will accept.
name: Accept
in: header
type: string
enum:
- application/json
header.If-None-Match:
name: If-None-Match
in: header
type: string
description: Specifies a conditional request to only return the resource when it doesn't match one of the included ETag values
body.CreateRequest:
name: CreateRequest
in: body
required: true
description: The definition of the appointment
schema:
$ref: '#/definitions/Appointment'
responses:
Unauthorized:
description: 401 - Unauthorized
headers:
Content-Language:
type: string
Content-Type:
type: string
Request-Id:
type: string
schema:
$ref: '#/definitions/ErrorResponse'
Forbidden:
description: 403 - Forbidden
headers:
Content-Language:
type: string
Content-Type:
type: string
Request-Id:
type: string
schema:
$ref: '#/definitions/ErrorResponse'
BadRequest:
description: 400 - Bad Request
headers:
Content-Language:
type: string
Content-Type:
type: string
Request-Id:
type: string
schema:
$ref: '#/definitions/ErrorResponse'
Appointment:
description: OK
headers:
Request-Id:
type: string
Preference-Applied:
type: string
enum:
- return=representation
- return=minimal
schema:
$ref: '#/definitions/AppointmentResource'
securityDefinitions:
permission-model:
type: oauth2
flow: implicit
authorizationUrl: https://identity.fortellis.io/oauth2/
scopes:
anonymous: Create, Query, Update, and Delete appointments