openapi: 3.0.1 info: version: 2.3.0 title: Intelliworks APIs description: "The purpose of the Intelliworks Create Case API is to enable Case creation from outside Intelliworks environment, and to unlock a more efficient process for users, by reducing manual data entry.\n\nAny action performed via the API will be visible in the Intelliworks UI, and the further action can be performed either in the UI or via the API. The intent is to ensure data accuracy between applications, avoiding the need to re-key information. This is primarily a technical pack intended for developers. It will provide an explanation of the service, the calls involved and some sample requests.\n\n# Overview\n\nThis current released version of the API pack enables:\n\n## Cases\n### Create new case\n\nYou can create new cases via the API for the following types;\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Workflow typeWorkflow ID
Sale220-Sale
Purchase210-Purchase
New build purchase216-New Build Purchase
General Property10200-General Property
Remortgage300-Remortgage
Equity release360-Equity Release (360)
Transfer of Equity700-Transfer of Equity
Wills415-Wills
Lasting Power of Attorney500-Lasting Power of Attorney
Probate601-Probate
\n\nIt provides the option to create a new case, via the API, instead of by manually initiating the case from the Intelliworks user interface. A case in Intelliworks consists of key details such as clients, a descriptive summary, and the type of case. For conveyancing cases, it also includes property, and price agreed. When you create a case, you need to include the appropriate WorkflowID for the type of case you want to create\n\nThe branch ID is a unique ID created by Ochresoft. Each branch ID relates to a branch or site (office) of the customer. When you create a case via API, you must specify which branch the case should be created in by including the branch ID. For example, if the customer has an Oxford office with branch ID \"926a95j1-c120-4cfd-80dd-9572c99345a6\", you will need to send that ID in the message. If you haven't already got the branch IDs for the customer, request them from Ochresoft.\n\nOnce the case is created, the workflow operates in the same way as if the case had been created manually, ensuring the conveyancer is guided through the process, but without the need to re-key details already held in another application.\n\n### Update case\n\nYou can update an existing Intelliworks case via the API using the same workflow-specific request body as create case. Supply the parent `transactionId` from the original create case response when updating case details.\n\n### Get case\n\nRetrieve read-only case summary details from Intelliworks by branch and either an Intelliworks case reference (`caseId`) and/or an external case reference (`externalCaseId`). At least one of `caseId` or `externalCaseId` must be supplied.\n\n### Get milestone\n\nReturns the actual completion date of a milestone for a case. Supply `branchId`, `milestoneId`, and at least one of `caseId` or `externalCaseId`. Optionally include `workflowId` when required for the target workflow. Valid `milestoneId` values are listed in [Supported milestone IDs by workflow](#supported-milestone-ids).\n\n\nSupported milestone IDs by workflow:\n\n
\nGen. Priv. Cli.\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
FileOpened499
ClientCareLetterSent500
SignedClientCareLetterReceived501
ClientsIDVerified502
FileReview1503
FileReview2504
FileReview3505
FileReview4506
FileReview5507
FileReview6508
FileReview7509
FileReview8510
FileReview9511
FileReview10512
DateClosed513
\n\n
\nGeneral Property\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
FileOpened237
ClientCareSent238
SignedCareRecd239
ClientsIDVerified240
2ndFileReview242
3rdFileReview243
4thFileReview244
5thFileReview245
LastestFileReview246
DateClosed247
\n\n
\nLPAs\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
FileOpened307
ClientCareLetterSent308
SignedCopyClientCareLetterReturned309
ClientIDVerified310
AppointmentConfirmationSent311
LPAQuestionnaireSent312
LPAQuestionnaireReturned313
InitialMeeting314
AttorneyBankruptcySearchesDone315
MedicalChecksComplete316
FeeEarnerRiskManagementReview317
CertificateProviderRequestSent318
CertificateProviderReplyReceived319
LPAFormsSentForSigning320
SignedLPAFormsReceived321
LPAsSigned322
NoticeSent323
LPASubmittedToOPG324
NotificationOfSubmissionSent325
LPAsRegistered326
LPACopiesIssued327
BillIssued328
FileClosed329
LPAExecutedDate330
\n\n
\nNew Build Purchase\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
QuoteProduced399
DateInstructed400
InitialCallToClientAttempted401
InitialCallToClientCompleted402
CareLetterSent403
WelcomePackSent404
VirtualFirmCredentials405
IntroductorySMS406
ClientIdVerified407
ClientInfoForm408
SignedCareLetterReceived409
AllInitialDocumentReceived410
SignedDeclarationReceived411
MemoOfSaleReceived412
ContractRequested413
ContractReceived414
PropInfoFormReceived415
LeaseholdInfoFormReceived416
FFFormReceived417
EPCReceived418
LocalSearchRequested419
LocalSearchReceived420
EnquiriesRaised421
EnquiriesReceived422
FurtherEnquiriesRaised423
FurtherEnquiriesReceived424
RepliesToSomeEnquiriesRecd425
RepliesToAllEnquiriesRecd426
ReportOnSearchesSentToClient427
SearchesSatisfactory428
LeaseholdInformationRequested429
LeaseholdInformationReceived430
TitleChecked431
ContractApproved432
ContractSentToClient433
SignedContractHeld434
ReportToClient435
MortgageOfferReceived436
OfferReportMortgageDeedSent437
SignedMortgageDeedReceived438
PropertyInsuranceConfirmed439
TransferApproved440
SignedTransferReceived441
AssessReadinessForExchange442
ReadyToExchange443
BillPrepared444
ClientCompletionStatement445
RequisitionsOnTitleSent446
RequisitionsOnTitleReceived447
SignedSDLTFormsHeld448
ActualExchange449
PrioritySearchesSubmitted450
CompletionDateNoticeReceived451
ContractualCompletion452
ActualCompletion453
SDLTSubmission455
SDLT5Received456
RegistrationApplicationSent457
CompletedRegistrationReceived458
SatisfactionQuestionnaireSent459
CaseClosed460
DateAbortInterim461
DateAborted462
HTBAuthorityToProceedReceived463
HTBAuthorityToProceedDate464
HTBSolicitorsForm1Prepared465
HTBSolicitorsForm1Sent466
HTBDisclosuresMadeToHelpToBuyAgent467
HTBAgrentHasAgreedToProceedafterDisclosures468
HTBNoticeGivenToQualifiyingLender469
HTBReportedOnHelpToBuySchemeToClient470
HTBSignedHTBFirstTimeBuyerDeclarationRecd471
HTBSolicitorsForm2Prepared472
HTBSolicitorsForm2Sent473
HTBAuthorityToExchangeReceived474
HTBNoticeOfHelpToBuyChargesServedOnLender475
HTBPostCompletionDocumentsSentToHomeAgent476
HTBHelpToBuyISABonusAppliedFor477
HTBHelpToBuyISABonusReceived478
MoneyOnAccountReceived520
\n\n
\nProbate\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
FileOpened248
ClientCareLetterSent249
SignedCopyClientCareLetterRecd250
SignedGeneralAuthorityRecd251
SignedAuthorityToObtainWillRecd252
PowerOfAttorneyCompleted253
ProbateQuestionnaireReceived254
ForeignDomicileQuestRecd255
DeathRegistered256
DeathCertificateReceived257
DeathCertVerificationFormPrepared258
DeceasedBankruptcySearchDone259
WillObtained260
AllPersonalRepresentativesIDVerified261
PRsBankruptcySearchesDone262
BeneficiaryIDChecksDone263
BeneficiariesEntitlementAdvised264
MinorsBirthCertsReceived265
StatutoryAdvertInLondonGazette266
StatutoryAdvertInLocalPaper267
NilRateBandDetailsReceived268
FuneralAccountPaid269
IHTReferenceAppliedFor270
IHTReferenceAppliedReceived271
IHTPaymentArranged272
IHTFormsSentToPRsForSignature273
OathAffidavitsIHTFormsSworn274
IHTFormsPrepared275
IHTFormsSubmitted276
NoticesServedOnNonProvingExecs277
GrantApplicationLodged278
GrantIssued279
CashRaisedForAdminPurposes280
EstateDebtsPaid281
DeedOfVariationPrepared282
IncomeTaxToDateOfDeathSettled283
InterimAccountsSentToPRs284
PRsApprovedInterimAccounts285
InterimEstateAccountsToResiduaryBens286
BeneficiaryBankruptcySearchesDone287
CorrectiveAccountLodged288
PecuniaryLegateesConfirmedLegacysRecd289
SpecificDevisesConfirmedLegacysRecd290
SpecificLegacysConfirmedLegacysRecd291
InterimDistributionToResiduaryBeneficiarys292
TaxPositionDuringAdminSettled293
IHTClearanceCertAppliedFor294
IHTClearanceCertificateRecd295
EstateAccountsPrepared296
FinalAccountsToPRsForApproval297
PRsApprovalOfAccountsRecd298
FinalEstateAccountsSentToResiduaryBeneficiarys299
FinalDistributionMadeToResiduaryBeneficiarys300
ResiduaryBeneficiarysConfirmedReceiptOfResidue301
EstateClosed302
FileClosed303
ReferrerAccountPaid304
AllRepliesReceivedToInitialLetters305
InitialLettersToOrganisationsSent306
InitialContactCallAttempted490
InitialContactCallMade491
IntroductorySMSsent492
VirtualFirmCredentialsSent493
AcknowledgeSignedToBreceived494
RenunciationRequested495
RenunciationAccepted496
InitialAdvice497
PRAdvisedGrantReceived498
\n\n
\nPurchase\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
QuoteProduced1
DateInstructed2
InitialCallToClientCompleted3
CareLetterSent4
VirtualFirmCredentials5
IntroductorySMS6
ClientIdVerified7
ClientInfoForm8
SignedCareLetterReceived9
MemoOfSaleReceived10
ContractRequested11
ContractReceived12
PropInfoFormReceived13
LeaseholdInfoFormReceived14
FFFormReceived15
EPCReceived16
LocalSearchRequested17
LocalSearchReceived18
EnquiriesRaised19
EnquiriesReceived20
FurtherEnquiriesRaised21
FurtherEnquiriesReceived22
LeaseholdInformationRequested23
LeaseholdInformationReceived24
TitleChecked25
ContractApproved26
ContractSentToClient27
SignedContractHeld28
ReportToClient29
MortgageOfferReceived30
TransferApproved31
AssessReadinessForExchange32
ReadyToExchange33
BillPrepared34
ClientCompletionStatement35
RequisitionsOnTitleSent36
RequisitionsOnTitleReceived37
ActualExchange39
ContractualCompletion40
LenderCompletionMoney41
ActualCompletion42
SDLTSubmission43
RegistrationApplicationSent45
CompletedRegistrationReceived46
SatisfactionQuestionnaireSent47
DateAborted49
InitialCallToClientAttempted357
WelcomePackSent358
AllInitialDocumentsReceived359
SignedDeclarationReceived360
RepliesToSomeEnquiries361
RepliesToAllEnquiries362
ReportOnSearchesToClient363
SearchesOk364
HelptoBuyClientReport365
MortgageOffertoClient366
SignedMortgageDeed367
PropertyInsuranceConfirmed368
SignedTransferReceived369
HelptoBuyISABonusAppliedFor370
HelptoBuyBonusReceived371
BankruptcySearchesSubmitted372
PrioritySearchesSubmitted373
DateAbortInterim374
MoneyOnAccountReceived519
\n\n
\nRemortgage\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
QuoteProduced151
DateInstructed152
InitialCallToClientCompleted153
CareLetterSent154
VirtualFirmCredentials155
IntroductorySMS156
SignedCareLetterReceived157
ClientInfoForm158
ClientIdVerified159
MoneyOnAccountIn160
IndexMapRequested161
IndexMapReceived162
DeedsRequested163
DeedsReceived164
OfficialCopiesRequested165
OfficialCopiesReceived166
RedStatsRequested167
RedStatsReceived168
MortgageOfferReceived169
MortgageDeedSent170
MortgageDeedHeld171
RevisedMortgageOfferReceived172
RevisedMortgageDeedSent173
RevisedMortgageDeedHeld174
LeaseholdInformationRequested175
LeaseholdInformationReceived176
LocalSearchRequested177
LocalSearchReceived178
CertifciateofTitle179
FeeEarnerRevew180
BillPrepared181
ClientCompletionStatement182
SignedTransfer183
TenancyAgreementReceived184
CompletionSetFor185
LenderCompletionMoney186
ActualCompletion187
RegistrationApplicationSent188
CompletedRegistrationReceived189
SatisfactionQuestionnaireSent190
DateAborted191
CaseClosed192
TitleChecked203
ReportToClient204
AllReceivedClient205
InitialCallToClientAttempted487
\n\n
\nSale\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
QuoteProduced100
DateInstructed101
InitialCallToClientCompleted102
CareLetterSent103
VirtualFirmCredentials104
IntroductorySMS105
IndexSearchRequested106
IndexSearchReceived107
ClientInfoForm108
ClientIdVerified109
MemoOfSaleReceived110
FFFormReceived111
PropInfoFormReceived112
PropQuestFormReceived113
LeaseholdInfoFormReceived114
OverridingQuestionnaireReceived115
SurplusFormReceived116
SignedCareLetterReceived117
MoneyOnAccountReceived118
DeedsRequested119
RedStatsRequested120
DeedsReceived121
SolsInitialLetter122
ContractIssued123
LeaseholdInformationRequested124
LeaseholdInformationReceived125
EnquiriesClientAnswered126
EnquiriesReply127
ContractApproved128
RequisitionsOnTitleReceived129
DraftTransferReceived130
RepliesToRequisitionsOnTitle131
FurtherEnquiriesReceived132
FurtherEnquiriesReply133
TransferApproved134
ContractSentToClient135
SignedContractHeld136
ReadyToExchange137
BillPrepared138
ClientCompletionStatement139
ActualExchange140
ContractualCompletion141
ActualCompletion142
SatisfactionQuestionnaireSent143
CaseClosed144
DateAborted145
EnquiriesReceived146
EnquiriesToClient147
RedStatsReceived148
FinalRedStatsReceived149
FinalRedStatsRequested150
TitleInformationRequested201
TitleInformationReceived202
InitialCallToClientAttempted479
WelcomePackSent480
FFFormSent481
AllRepliesToEnquiriesAnswered482
BuyersConveyancerSatisfiedWithReplies483
SignedTransferReceived484
BankruptcySearchSubmitted485
DateAbortedInterim486
\n\n
\nWills\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MilestoneMilestone ID
FileOpened332
ClientCareLetterSent333
SignedCareLetterReceived334
ClientsIDVerified335
WillQuestionnairePrepared336
WillQuestionnaireReceived337
PreviousWillRequested338
PreviousWillReceived339
InitialMeetingAttendanceNotePrepared341
DraftWillPrepared342
DoctorsCapacityReportRequested343
DoctorsCapacityReportReceived344
SeveranceOfJointTenancyApplicationPrepared345
NoticeOfSeveranceOfJointTenancyPrepared346
FeeEarnerRiskManagementReview347
CaseLockedDownRiskConcerns348
CaseUnlocked349
WillSentForExecutionWithoutSupervision350
MeetingWithClientForWillExecution351
WillExecuted352
ExecutedWillReceivedForStorage353
DateClosed354
DraftWillApproved355
DraftWillSentForApproval356
\n\n### Asynchronous processing and status notifications\n\nSeveral endpoints, including create/update case, create/update task, create/update milestone, and upload document, are processed asynchronously. Each accepted request returns a `transactionRequestId` that you use to track progress.\n\nYou can receive status in either of the following ways:\n\n**1. Poll transaction status**\n\nCall `GET /transaction-requests/{transactionRequestId}`. See [Get transaction request status](#get-transaction-request-status) for supported `status` values.\n\n**2. Webhook callback (optional)**\n\nOptionally include a callback URL on the request. When processing completes, the Experience API sends an HTTP `POST` to that URL with the same status response.\n\nIf you use webhooks, tell Ochresoft in advance how your callback endpoint should be authenticated so we can configure it for your integration.\n\n### Create or update task\n\nCreate or update an **unscheduled** task on an existing Intelliworks case. Intelliworks is workflow-driven: scheduled workflow tasks cannot be created through this API. Only the unscheduled task combinations listed in [Supported unscheduled task mappings](#supported-unscheduled-task-mappings) are valid.\n\n* **Create** - omit `clientTaskId`; a new identifier is returned in the response.\n* **Update** - supply the `clientTaskId` returned from the original create response.\n* At least one of `caseId` or `externalCaseId` is required.\n* `completionDate` is mandatory when `status` is `Closed`.\n\nRequests that use a `processReference`, `taskReference`, and `taskType` combination outside the supported mapping may be rejected with an error, or the task may be created in Intelliworks but not function correctly in the workflow.\n\n\nSupported unscheduled task mappings:\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Task nameProcess reference (Pref)Task referenceTask type
ATTACHMAILUSPMAIL2Email
CDATAIMPORTUSPIMPORTCASEDATAImport
CLONEDCONTENT_EXTERNAL_ACCOUNTSTRANSACTION_ADDEDUSPSYST09Query
CLONEDCONTENT_FAXUSPSYST06Fax
CLONEDCONTENT_IMPORTUSPSYST04Import
CLONEDCONTENT_SCANNERUSPSYST05Scanner
CLONEDCONTENT_VF_MESSAGEUSPSYST08VirtualFirmMessage
FAXIMPORTUSPSYST07Fax
IMPORTFILEUSPIMPF1Import
IMPORTSCANUSPIMPORTSCANImport
MULTI_EMAIL_IMPORTUSPMAIL3Action
SCANNERIMPORTUSPSYST01Scanner
SENDMAILUSPMAIL1Email
\n\nMap `processReference` to **Pref**, `taskReference` to **Task reference**, and `taskType` to **Task type**. Use the **Task name** value as the task `description` unless your integration agreement specifies otherwise.\n\n### Create or update milestone\n\nSet or update milestone actual and/or forecast dates for a case. Supply `branchId`, at least one of `caseId` or `externalCaseId`, and one or more milestones. Valid `milestoneId` values are listed in [Supported milestone IDs by workflow](#supported-milestone-ids).\n\n### Upload document\n\nUpload a document against an Intelliworks case. A document can be uploaded as part of an `IMPORTFILE` task.\n\n### List case documents\n\nReturns the list of completed documents held against a case in Intelliworks for the specified branch. Supply at least one of `caseId` (Intelliworks case reference, e.g. `EXP-000762`) and/or `externalCaseId` (e.g. `AAR801/1`). Each document in the response can be downloaded using the Download document endpoint (`GET /documents/{id}/download`).\n\n### Download document\n\nDownloads a document by document ID (as returned in the List case documents response).\n\n\n### Get transaction request status\n\nReturns the latest processing status for any asynchronous Experience API request identified by `transactionRequestId`.\n\nSupported `status` values:\n\n* `Accepted`\n* `Queued`\n* `Processing`\n* `Completed`\n* `Failed`\n\nPoll `GET /transaction-requests/{transactionRequestId}` until `status` is `Completed` or `Failed`.\n\n\n# Endpoints\nThe API is accessed by making HTTPS requests to an endpoint URL.\nEvery endpoint is accessed only via the SSL-enabled HTTPS (port 443) protocol.\nThe API uses semantic versioning, and the current release is v1.0.0\n\n# Environments\nThe API is available in two environments, both are identical in that they have the same specification infrastructure and functionality.\n\nThe 2 environments are:\n* User Acceptance Testing (UAT)\n* Production (PRD)\n\n## UAT\nThe UAT environment should be used during development, and interfaces with the Intelliworks UAT environment.\nYou should use this whilst implementing and testing your integration.\n\nThe URLs for the UAT APIs are:\n* Base URL: https://uat-api.landmarkcloudservices.com/intelliworks/experience\n* Auth: https://lmkmaster.eu.auth0.com/oauth/token\n\n## PRD\nThe PRD environment is a live instance, and this talks to the live Intelliworks environment.\nThis should only be used once the integration is considered production ready and all testing has been completed on the UAT environment.\nAny actions performed on PRD will result in the creation and syncing of real data that may be seen by users.\n\nThe URLs for the production APIs are:\n* Base URL: https://api.landmarkcloudservices.com/intelliworks/experience\n* Auth: https://lmkmaster.eu.auth0.com/oauth/token\n\n# Requests & Authentication\nRequests must be sent over HTTPS with any payload formatted in JSON. To authenticate against the API a Bearer Token Header must be provided.\n\n# Rate limiting\nThe API allows a maximum of 250 requests per customer per minute.\n" contact: name: API Support email: support@ochresoft.com x-phone-number: +44 (0)3300 366 700 tags: - name: Cases description: APIs related to your Cases - name: Documents description: APIs related to case documents - name: Transaction Requests description: APIs for tracking asynchronous request status x-tagGroups: - name: General tags: - Cases - Documents - Transaction Requests servers: - url: https://api.landmarkcloudservices.com/ description: Production API - url: https://uat-api.landmarkcloudservices.com/ description: UAT API paths: /case: post: summary: Create case operationId: createCase tags: - Cases requestBody: description: Request body containing workflow case data required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/createCaseRequestIw' - $ref: '#/components/schemas/createCaseRequestIwPrivateClient' - $ref: '#/components/schemas/createCaseRequestIwProbate' discriminator: propertyName: workflowId mapping: '210': '#/components/schemas/createCaseRequestIw' '216': '#/components/schemas/createCaseRequestIw' '220': '#/components/schemas/createCaseRequestIw' '300': '#/components/schemas/createCaseRequestIw' '350': '#/components/schemas/createCaseRequestIw' '360': '#/components/schemas/createCaseRequestIw' '415': '#/components/schemas/createCaseRequestIwPrivateClient' '500': '#/components/schemas/createCaseRequestIwPrivateClient' '601': '#/components/schemas/createCaseRequestIwProbate' '700': '#/components/schemas/createCaseRequestIw' '10200': '#/components/schemas/createCaseRequestIw' '10400': '#/components/schemas/createCaseRequestIw' responses: '202': description: Accepted case creation request content: application/json: schema: $ref: '#/components/schemas/createCaseResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '406': $ref: '#/components/responses/500InternalServerError' '415': $ref: '#/components/responses/500InternalServerError' '429': $ref: '#/components/responses/429TooManyRequests' '500': $ref: '#/components/responses/500InternalServerError' /updateCase: post: summary: Update case operationId: updateIwCase tags: - Cases requestBody: description: Request body containing workflow case data required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/createCaseRequestIw' - $ref: '#/components/schemas/createCaseRequestIwPrivateClient' - $ref: '#/components/schemas/createCaseRequestIwProbate' discriminator: propertyName: workflowId mapping: '210': '#/components/schemas/createCaseRequestIw' '216': '#/components/schemas/createCaseRequestIw' '220': '#/components/schemas/createCaseRequestIw' '300': '#/components/schemas/createCaseRequestIw' '350': '#/components/schemas/createCaseRequestIw' '360': '#/components/schemas/createCaseRequestIw' '415': '#/components/schemas/createCaseRequestIwPrivateClient' '500': '#/components/schemas/createCaseRequestIwPrivateClient' '601': '#/components/schemas/createCaseRequestIwProbate' '700': '#/components/schemas/createCaseRequestIw' '10200': '#/components/schemas/createCaseRequestIw' '10400': '#/components/schemas/createCaseRequestIw' responses: '202': description: Accepted case update request content: application/json: schema: $ref: '#/components/schemas/createCaseResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '406': $ref: '#/components/responses/500InternalServerError' '415': $ref: '#/components/responses/500InternalServerError' '429': $ref: '#/components/responses/429TooManyRequests' '500': $ref: '#/components/responses/500InternalServerError' /cases: get: summary: Get case summary description: 'Returns a read-only case summary for the specified branch. Supply at least one of `caseId` (Intelliworks case reference, e.g. `GPR-000856`) and/or `externalCaseId` (reference from the external system). Both are forwarded to Intelliworks when provided. ' operationId: getCaseIw tags: - Cases parameters: - name: branchId in: query required: true description: Branch identifier (UUID) used to resolve Intelliworks company and site identifiers. schema: $ref: '#/components/schemas/lgsUuid' - name: caseId in: query required: false description: Intelliworks case reference (forwarded as `caseReference` to Intelliworks). schema: type: string pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ maxLength: 50 - name: externalCaseId in: query required: false description: External case reference (forwarded as `externalCaseReference` to Intelliworks). schema: type: string pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ maxLength: 50 responses: '200': description: Case summary retrieved successfully content: application/json: schema: $ref: '#/components/schemas/getCaseIwResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '406': $ref: '#/components/responses/500InternalServerError' '415': $ref: '#/components/responses/500InternalServerError' '429': $ref: '#/components/responses/429TooManyRequests' '500': $ref: '#/components/responses/500InternalServerError' /upsertTask: post: summary: Create or update task operationId: upsertTask tags: - Cases description: 'Create or update an unscheduled task on an existing case. At least one of `caseId` or `externalCaseId` must be supplied. Only supported combinations of `processReference`, `taskReference`, and `taskType` may be used - see [Supported unscheduled task mappings](#supported-unscheduled-task-mappings). ' requestBody: description: Request body containing task data to create or update required: true content: application/json: schema: allOf: - $ref: '#/components/schemas/upsertTaskRequest' - if: properties: status: const: Closed then: required: - completionDate responses: '202': description: Task upsert request accepted content: application/json: schema: $ref: '#/components/schemas/upsertTaskResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '406': $ref: '#/components/responses/500InternalServerError' '415': $ref: '#/components/responses/500InternalServerError' '429': $ref: '#/components/responses/429TooManyRequests' '500': $ref: '#/components/responses/500InternalServerError' /milestones: get: summary: Get milestone description: 'Returns the actual completion date of a milestone for a case. Supply at least one of `caseId` or `externalCaseId`. Valid `milestoneId` values are listed in [Supported milestone IDs by workflow](#supported-milestone-ids). ' operationId: getMilestone tags: - Cases parameters: - name: branchId in: query required: true schema: $ref: '#/components/schemas/lgsUuid' - name: caseId in: query required: false schema: type: string maxLength: 25 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ - name: externalCaseId in: query required: false schema: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ - name: milestoneId in: query required: true description: Milestone identifier. See [Supported milestone IDs by workflow](#supported-milestone-ids) for valid values per workflow. schema: type: integer format: int32 minimum: 1 - name: workflowId in: query required: false description: Optional workflow identifier. Include when required to resolve the milestone for the target workflow. schema: type: integer format: int32 minimum: 1 responses: '200': description: Milestone actual completion date found content: application/json: schema: $ref: '#/components/schemas/milestoneQueryResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '500': $ref: '#/components/responses/500InternalServerError' post: summary: Create or update milestone dates description: 'Set or update milestone actual and/or forecast dates for a case. The request is accepted for asynchronous processing. ' operationId: upsertMilestone tags: - Cases requestBody: description: Request body containing milestone upsert data required: true content: application/json: schema: $ref: '#/components/schemas/upsertMilestoneRequest' responses: '202': description: Accepted milestone upsert request content: application/json: schema: $ref: '#/components/schemas/upsertMilestoneResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '500': $ref: '#/components/responses/500InternalServerError' /transaction-requests/{transactionRequestId}: get: summary: Get transaction request status description: 'Returns the latest processing status for an asynchronous Experience API request identified by `transactionRequestId`. Supports create/update case, upsert task, upsert milestone, document upload, and future asynchronous endpoints. Use this endpoint to poll for completion when a webhook callback is not used or not received. ' operationId: getTransactionRequestStatus tags: - Transaction Requests parameters: - name: transactionRequestId in: path required: true schema: $ref: '#/components/schemas/lgsUuid' description: Unique Experience API transaction request identifier returned by asynchronous endpoints responses: '200': description: Latest transaction request status found content: application/json: schema: $ref: '#/components/schemas/transactionRequestStatusResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '500': $ref: '#/components/responses/500InternalServerError' /documents: post: summary: Upload Document description: 'Uploads a document for the specified case against a task or default. At least one of `caseId` or `externalCaseId` is required. `taskId` is optional; when omitted the document is stored against a new default task rather than an existing task. Upload the file directly using `multipart/form-data`, or optionally use `application/json` with document metadata. ' operationId: uploadDocument tags: - Cases requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/uploadDocumentJsonRequest' multipart/form-data: schema: type: object additionalProperties: false required: - branchId - file anyOf: - required: - caseId - required: - externalCaseId properties: transactionId: $ref: '#/components/schemas/lgsUuid' description: Optional parent transaction from create case. branchId: $ref: '#/components/schemas/lgsUuid' workflowId: type: integer format: int32 minimum: 1 description: Optional workflow identifier. caseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: Intelliworks case reference (e.g. `EXP-000762`). externalCaseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: External case reference (e.g. `AAR801/1`). taskId: $ref: '#/components/schemas/lgsUuid' description: Optional task identifier. When omitted, a new default task is created and the document is stored against it. description: type: string maxLength: 500 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/.,' ]*$ file: type: string format: binary description: Document file to upload. responses: '202': description: Document upload request accepted content: application/json: schema: $ref: '#/components/schemas/uploadDocumentResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '406': $ref: '#/components/responses/500InternalServerError' '415': $ref: '#/components/responses/500InternalServerError' '429': $ref: '#/components/responses/429TooManyRequests' '500': $ref: '#/components/responses/500InternalServerError' get: summary: List case documents description: 'Returns the list of completed documents held against a case in Intelliworks for the specified branch. Supply at least one of `caseId` (Intelliworks case reference, e.g. `EXP-000762`) and/or `externalCaseId` (e.g. `AAR801/1`). Both are forwarded to Intelliworks when provided. Each document in the response can be downloaded using `GET /documents/{id}/download`. ' operationId: getCompletedDocuments tags: - Documents parameters: - name: branchId in: query required: true description: Branch identifier (UUID) used to resolve Intelliworks company and site identifiers. schema: $ref: '#/components/schemas/lgsUuid' - name: caseId in: query required: false description: Intelliworks case reference (e.g. `EXP-000762`). schema: type: string pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ maxLength: 50 - name: externalCaseId in: query required: false description: External case reference (e.g. `AAR801/1`). schema: type: string pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ maxLength: 50 - name: workflowId in: query required: false description: Intelliworks workflow identifier. schema: type: integer format: int32 minimum: 1 responses: '200': description: Completed documents retrieved successfully content: application/json: schema: $ref: '#/components/schemas/completedDocumentsResponse' '400': $ref: '#/components/responses/400BadRequest' '401': $ref: '#/components/responses/401Unauthorized' '403': $ref: '#/components/responses/403Forbidden' '404': $ref: '#/components/responses/404NotFound' '406': $ref: '#/components/responses/500InternalServerError' '415': $ref: '#/components/responses/500InternalServerError' '429': $ref: '#/components/responses/429TooManyRequests' '500': $ref: '#/components/responses/500InternalServerError' /documents/{id}/download: get: summary: Download document description: Downloads a document by document ID (as returned in the List case documents response). Auth0Id is extracted from the authenticated user context and forwarded to Intelliworks Web API. operationId: downloadDocument tags: - Documents parameters: - name: id in: path required: true description: Document ID. schema: $ref: '#/components/schemas/lgsUuid' responses: '200': description: Document downloaded successfully content: application/octet-stream: schema: type: string format: binary '400': description: Bad request. Document ID is invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Authorization information is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: User does not have access to the requested document. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Document not found. content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Unexpected error. content: application/json: schema: $ref: '#/components/schemas/Error' components: responses: 400BadRequest: description: Bad Request headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' content: application/problem+json: schema: $ref: '#/components/schemas/lgsErrorResponse' examples: Invalid content type supplied: value: status: '400' code: '40000' title: Invalid content type supplied Validation error: value: status: '400' code: '40001' title: Validation error Invalid traceparent http header: value: status: '400' code: '40002' title: Invalid trace header No matching data found: value: status: '400' code: '40003' title: No matching data found Invalid header: value: status: '400' code: '40004' title: Invalid header Third party error: value: status: '400' code: '40005' title: Third party error 401Unauthorized: description: Unauthorized headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' content: application/problem+json: schema: $ref: '#/components/schemas/lgsErrorResponse' examples: Invalid identity: value: status: '401' code: '40100' title: Invalid identity 403Forbidden: description: Forbidden headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' content: application/problem+json: schema: $ref: '#/components/schemas/lgsErrorResponse' examples: Invalid Entitlement: value: status: '403' code: '40300' title: Invalid Entitlement No Entitlement: value: status: '403' code: '40301' title: No Entitlement No permission to entity: value: status: '403' code: '40302' title: No permission to entity User not registered: value: status: '403' code: '40303' title: User not registered Usage limit reached: value: status: '403' code: '40304' title: Usage limit reached Email account not verified: value: status: '403' code: '40305' title: Email account not verified Token expiry too long: value: status: '403' code: '40306' title: Token expiry too long 404NotFound: description: Not Found headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' content: application/problem+json: schema: $ref: '#/components/schemas/lgsErrorResponse' examples: Entity not found: value: status: '404' code: '40401' title: Entity not found 406NotAcceptable: $ref: '#/components/responses/500InternalServerError' 409Conflict: description: Conflict headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' content: application/problem+json: schema: $ref: '#/components/schemas/lgsErrorResponse' examples: Invalid Entitlement: value: status: '409' code: '40900' title: Entity in wrong state 413PayloadTooLarge: description: Payload Too Large headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' 415Unsupported: $ref: '#/components/responses/500InternalServerError' 429TooManyRequests: description: Too Many Requests headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' content: application/problem+json: schema: $ref: '#/components/schemas/lgsErrorResponse' examples: Rate Limit Exceeded: value: status: '429' code: '42900' title: Rate limit exceeded 500InternalServerError: description: Internal Server Error headers: traceresponse: $ref: '#/components/headers/lgsTraceResponse' content: application/problem+json: schema: $ref: '#/components/schemas/lgsErrorResponse' examples: Resource not found: value: status: '500' code: '50000' title: Internal server error messages: - message: Sorry, something has gone wrong whilst processing your request. An error has been logged and our support team will investigate this shortly. Please try again later and if the issue persists, please contact your Account Manager referencing the value 00-199c8ce55dc743a88661498aa8eb2cfc--00. schemas: address: allOf: - $ref: '#/components/schemas/lgsAddressAddressBaseCore' - type: object additionalProperties: false description: address to associate with case required: - postcode - addressType - townName - streetName - locality uuid: $ref: '#/components/schemas/lgsUuid' createCaseRequestIw: type: object additionalProperties: false title: A case data as a request for Conveyancing workflow description: request for a Conveyancing workflow create case required: - workflowId - caseSummary - externalCaseId - clients - dateInstructed - workflowOptions properties: workflowId: type: string enum: - '10200' - '10400' - '210' - '216' - '220' - '300' - '350' - '360' - '700' title: A workflowid for workflow description: A workflowid is associated with a case which belongs to specific workflow branchId: $ref: '#/components/schemas/lgsUuid' caseSummary: type: string pattern: ^.*$ maxLength: 60 title: case summary for a workflow case description: A casesummary is what we are creating for a case default: '' externalCaseId: type: string pattern: ^.*$ maxLength: 50 title: externalCaseId description: The case reference from the external system default: '' casePriorty: type: string title: The casepriorty enum: - '3' - '2' - '1' description: '' default: '3' clients: $ref: '#/components/schemas/clientsIw' title: The clients details description: Up to 4 clients - consists of names, contact and address details dateInstructed: type: string title: The dateInstructed description: Date / time case created format: datetime transactionId: $ref: '#/components/schemas/lgsUuid' title: The transactionid description: every case is associated with a transaction workflowOptions: type: object additionalProperties: true description: These options are workflow specific transactionRequestSubject: description: Address of property for the new case eg lgsAddressAddressBaseCore oneOf: - $ref: '#/components/schemas/address' createCaseRequestIwPrivateClient: type: object additionalProperties: false title: A case data as a request for Private Client workflow (LPA, Wills) description: request for a Private Client workflow (LPA, Wills) create case required: - workflowId - caseSummary - externalCaseId - clients properties: workflowId: type: string enum: - '415' - '500' title: A workflowid for workflow description: A workflowid is associated with a case which belongs to specific workflow branchId: $ref: '#/components/schemas/lgsUuid' caseSummary: type: string pattern: ^.*$ maxLength: 60 title: case summary for a workflow case description: A casesummary is what we are creating for a case default: '' externalCaseId: type: string pattern: ^.*$ maxLength: 50 title: externalCaseId description: The case reference from the external system default: '' casePriorty: type: string title: The casepriorty enum: - '3' - '2' - '1' description: '' default: '3' clients: $ref: '#/components/schemas/clientsIw' title: The clients details description: Up to 4 clients - consists of names, contact and address details transactionId: $ref: '#/components/schemas/lgsUuid' title: The transactionid description: every case is associated with a transaction createCaseRequestIwProbate: type: object additionalProperties: false title: A case data as a request for Private Client workflow (Probate) description: request for a Private Client workflow (Probate) create case required: - workflowId - caseSummary - externalCaseId - clients properties: workflowId: type: string enum: - '601' title: A workflowid for workflow description: A workflowid is associated with a case which belongs to specific workflow default: '' branchId: $ref: '#/components/schemas/lgsUuid' caseSummary: type: string pattern: ^.*$ maxLength: 60 title: case summary for a workflow case description: A casesummary is what we are creating for a case default: '' externalCaseId: type: string pattern: ^.*$ maxLength: 50 title: externalCaseId description: The case reference from the external system default: '' casePriorty: type: string title: The casepriorty enum: - '3' - '2' - '1' description: '' default: '3' clients: $ref: '#/components/schemas/clientsIwProbate' title: The clients details description: Up to 4 clients - consists of names, contact and address details transactionId: $ref: '#/components/schemas/lgsUuid' title: The transactionid description: every case is associated with a transaction clientsIw: type: array additionalProperties: false minItems: 1 maxItems: 4 items: $ref: '#/components/schemas/lgsPerson' clientsIwProbate: type: array additionalProperties: false minItems: 1 maxItems: 4 items: allOf: - $ref: '#/components/schemas/lgsPerson' - type: object properties: gender: type: string enum: - Male - Female - Unknown placeOfDeath: type: string pattern: ^.*$ dateOfBirth: type: string title: The dateOfBirth description: dateofbirth format: datetime dateOfDeath: type: string title: The DateOfDeath description: DateOfDeath format: datetime required: - dateOfDeath createCaseResponse: type: object additionalProperties: false description: response for a workflow create case properties: case: $ref: '#/components/schemas/caseResponse' caseResponse: type: object properties: lgsTransactionId: $ref: '#/components/schemas/lgsUuid' description: A transactionId is associated with a case which belongs to specific workflow default: '' lgsTransactionRequestId: $ref: '#/components/schemas/lgsUuid' description: A transactionRequestId is associated with a case which belongs to specific workflow default: '' href: type: string format: url description: href link in case request response default: '' clients: type: array additionalProperties: false minItems: 1 maxItems: 4 items: $ref: '#/components/schemas/lgsPerson' person: $ref: '#/components/schemas/lgsPerson' upsertTaskRequest: type: object additionalProperties: false description: Request to create or update an unscheduled task. Provide clientTaskId to update; omit to create. See [Supported unscheduled task mappings](#supported-unscheduled-task-mappings). required: - branchId - processReference - taskReference - description - taskType - resource anyOf: - required: - caseId - required: - externalCaseId properties: transactionRequestId: $ref: '#/components/schemas/lgsUuid' description: Task transaction request identifier. Auto-generated on create when omitted. transactionId: type: string nullable: true pattern: ^$|^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$ description: Parent case transaction identifier from create case. Optional. branchId: $ref: '#/components/schemas/lgsUuid' description: Branch identifier used to resolve customer and site details clientTaskId: $ref: '#/components/schemas/lgsUuid' description: Client task identifier. Provide to update an existing task; omit to create. callerId: type: string pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Landmark caller identifier. Defaults from x-landmark-caller-id header when omitted. clientCallbackUrl: type: string nullable: true format: url description: Optional callback URL. workflowId: type: integer enum: - 10200 - 10400 - 210 - 216 - 220 - 300 - 350 - 360 - 700 - 415 - 500 - 601 description: Workflow identifier. Optional when resolved from the case. caseId: type: string nullable: true maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: Intelliworks case reference. At least one of caseId or externalCaseId is required. externalCaseId: type: string nullable: true maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: External case reference. At least one of caseId or externalCaseId is required. processReference: type: string maxLength: 15 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Process reference (Pref). Must match a supported unscheduled task mapping. taskReference: type: string maxLength: 15 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Task reference. Must match a supported unscheduled task mapping. description: type: string maxLength: 300 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/.,' ]*$ description: Task description. Use the Task name from the supported mapping table. taskType: type: string enum: - Email - Import - Document - Query - Fax - Laserform - Scanner - VirtualFirmMessage - Action description: Task type. Must match a supported unscheduled task mapping. priority: type: integer default: 3 description: Task priority status: type: string enum: - Open - Complete - InProgress - Closed - Cancelled default: Open description: Task status. completionDate is mandatory when status is Closed. targetDate: type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$ description: Target completion date completionDate: type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$ description: Actual completion date. Mandatory when status is Closed. estimatedDuration: type: string pattern: ^\d{2}:\d{2}:\d{2}$ description: Estimated duration in HH:mm:ss format category: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Task category subType: type: string maxLength: 10 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Task sub-type resource: type: string maxLength: 100 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Resource assigned to the task upsertTaskResponse: type: object additionalProperties: false description: Response for an accepted task upsert request required: - task properties: task: $ref: '#/components/schemas/upsertTaskResult' upsertTaskResult: type: object additionalProperties: false description: Task details returned after a successful upsert acceptance required: - clientTaskId - status - transactionRequestId properties: clientTaskId: $ref: '#/components/schemas/lgsUuid' description: Client task identifier assigned to the task status: type: string enum: - Open - Complete - InProgress - Closed - Cancelled description: Task status transactionRequestId: $ref: '#/components/schemas/lgsUuid' description: Transaction request id for polling or callback correlation transactionId: $ref: '#/components/schemas/lgsUuid' description: Parent transaction id for the task upsertMilestoneRequest: type: object additionalProperties: false description: Request to create or update milestone dates for an Intelliworks case required: - branchId - milestones properties: transactionId: type: string nullable: true pattern: ^$|^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$ description: Parent case transaction identifier from create case. Optional. transactionRequestId: $ref: '#/components/schemas/lgsUuid' description: Milestone transaction request identifier. Auto-generated when omitted. branchId: $ref: '#/components/schemas/lgsUuid' description: Branch identifier used to resolve company and site context caseId: type: string maxLength: 25 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: Intelliworks case identifier externalCaseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: External system case reference workflowId: type: integer format: int32 minimum: 1 description: Optional Intelliworks workflow identifier. When omitted, workflow context is resolved from the case. callbackUrl: type: string nullable: true format: url description: Optional callback URL. milestones: type: array minItems: 1 items: $ref: '#/components/schemas/milestoneUpsertItem' milestoneUpsertItem: type: object additionalProperties: false required: - milestoneId properties: milestoneId: type: integer format: int32 minimum: 1 description: Milestone identifier. See [Supported milestone IDs by workflow](#supported-milestone-ids). actualDate: type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$ description: Milestone actual completion date/time in UTC (ISO 8601) forecastDate: type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$ description: Milestone forecast date/time in UTC (ISO 8601) upsertMilestoneResponse: type: object additionalProperties: false description: Response indicating the milestone upsert request was accepted for asynchronous processing required: - transactionRequestId - status properties: transactionRequestId: $ref: '#/components/schemas/lgsUuid' description: Unique identifier for this milestone upsert transaction request transactionId: $ref: '#/components/schemas/lgsUuid' nullable: true description: Parent case transaction identifier status: type: string const: Accepted description: Processing status of the accepted request transactionRequestStatusResponse: type: object additionalProperties: false description: Latest status of an asynchronous Experience API transaction request required: - transactionRequestId - entityType - operationType - status - updatedDateUtc properties: transactionRequestId: $ref: '#/components/schemas/lgsUuid' transactionId: $ref: '#/components/schemas/lgsUuid' nullable: true entityType: type: string enum: - Case - Milestone - Task - Document operationType: type: string enum: - Create - Update - Upload status: type: string enum: - Accepted - Queued - Processing - Completed - Failed description: Latest processing status for the transaction request. caseId: type: string nullable: true maxLength: 25 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ externalCaseId: type: string nullable: true maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ taskId: $ref: '#/components/schemas/lgsUuid' nullable: true documentId: $ref: '#/components/schemas/lgsUuid' nullable: true message: type: string nullable: true errorMessage: type: string nullable: true updatedDateUtc: type: string format: date-time description: UTC timestamp of the latest audit record for this transaction request milestoneQueryResponse: type: object additionalProperties: false description: Response containing milestone actual completion date for a case required: - caseId - milestoneId - actualDate properties: caseId: type: string maxLength: 25 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: Intelliworks case identifier (e.g. PBX-000867, GPR-000039) externalCaseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: External system case reference when supplied in the request default: '' milestoneId: type: integer format: int32 minimum: 1 actualDate: type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$ description: Milestone actual completion date/time in UTC (ISO 8601) getCaseIwResponse: type: object additionalProperties: false title: Case summary description: Read-only case summary returned by Get Case IW. properties: caseReference: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: Intelliworks case reference. externalCaseReference: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: External case reference from the originating system. workflowId: type: integer format: int32 minimum: 0 maximum: 99999 description: Intelliworks workflow identifier. workflowDisplayName: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Display name of the workflow. caseType: type: string maxLength: 64 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ caseDescription: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ caseStatus: type: string maxLength: 64 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ caseProgress: type: string maxLength: 64 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ purchaseDate: type: string maxLength: 10 pattern: ^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$ description: ISO 8601 date (yyyy-MM-dd) or empty when not set. feeEarnerDetails: $ref: '#/components/schemas/feeEarnerDetails' clients: type: array maxItems: 6 items: $ref: '#/components/schemas/clientParty' workReferrer: $ref: '#/components/schemas/workReferrer' buyersConveyancer: $ref: '#/components/schemas/buyersConveyancer' sellersConveyancer: $ref: '#/components/schemas/buyersConveyancer' estateAgent: $ref: '#/components/schemas/organisationParty' lenders: type: array maxItems: 6 items: $ref: '#/components/schemas/lenderParty' lenderAccountNumbers: type: array maxItems: 10 items: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ lenderNotes: type: string maxLength: 500 pattern: ^[a-zA-Z0-9@ :#$%^&+=*;()_+-/,.']*$ propertyAddress: $ref: '#/components/schemas/propertyAddress' sellers: type: array maxItems: 6 items: $ref: '#/components/schemas/personParty' price: $ref: '#/components/schemas/price' propertyAddress: type: object additionalProperties: false properties: subbuildingName: type: string maxLength: 64 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Subbuilding name (flat / room / unit); mapped from Intelliworks subDwellingNumber. subbuildingRange: type: string maxLength: 64 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Subbuilding range (no / range); mapped from Intelliworks subDwellingDescription. buildingName: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Building name; mapped from Intelliworks dwellingNumber. buildingNumber: type: string maxLength: 64 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: Building number; mapped from Intelliworks dwellingDescription. street: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ locality: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ town: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ county: type: string maxLength: 64 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ postcode: type: string maxLength: 8 pattern: ^[A-Za-z0-9 ]{1,8}$ country: type: string maxLength: 60 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ price: type: object additionalProperties: false properties: amount: type: number format: double minimum: 0 currency: type: string maxLength: 3 pattern: ^$|^[A-Z]{3}$ feeEarnerDetails: type: object additionalProperties: false properties: feeEarnerName: type: string maxLength: 100 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+'-]*$ supervisorName: type: string maxLength: 100 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+'-]*$ workReferrer: type: object additionalProperties: false properties: sourceOfWork: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ referrer: $ref: '#/components/schemas/organisationParty' referrerWorkSource: $ref: '#/components/schemas/organisationParty' referrerFeePayableTo: $ref: '#/components/schemas/organisationParty' referrerReference: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ referrerFee: $ref: '#/components/schemas/price' organisationParty: type: object additionalProperties: false properties: partyType: type: string enum: - organisation description: Party type discriminator. name: type: string maxLength: 150 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ email: type: string maxLength: 320 pattern: ^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ email2: type: string maxLength: 320 pattern: ^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ officePhone: type: string maxLength: 25 pattern: ^[\d\s\+\-\(\)]*$ officeFax: type: string maxLength: 25 pattern: ^[\d\s\+\-\(\)]*$ website: type: string maxLength: 250 pattern: ^[a-zA-Z0-9@ :#$%^&+=*;()_+-/,.':]*$ dxNumber: type: string maxLength: 30 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ dxExchange: type: string maxLength: 30 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ address: $ref: '#/components/schemas/propertyAddress' buyersConveyancer: allOf: - $ref: '#/components/schemas/organisationParty' - type: object additionalProperties: false properties: conveyancerReference: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ lenderParty: allOf: - $ref: '#/components/schemas/organisationParty' - type: object additionalProperties: false properties: type: type: string enum: - existing - new description: Indicates whether the lender is the existing mortgage lender or a new lender. personParty: type: object additionalProperties: false properties: partyType: type: string enum: - person description: Party type discriminator. title: type: string maxLength: 20 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+.'-]*$ firstName: type: string maxLength: 100 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+'-]*$ middleName: type: string maxLength: 100 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+'-]*$ surname: type: string maxLength: 100 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+'-]*$ personalEmail: type: string maxLength: 320 pattern: ^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ workEmail: type: string maxLength: 320 pattern: ^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ homePhone: type: string maxLength: 25 pattern: ^[\d\s\+\-\(\)]*$ workPhone: type: string maxLength: 25 pattern: ^[\d\s\+\-\(\)]*$ mobilePhone: type: string maxLength: 25 pattern: ^[\d\s\+\-\(\)]*$ address: $ref: '#/components/schemas/propertyAddress' clientParty: oneOf: - $ref: '#/components/schemas/personParty' - $ref: '#/components/schemas/organisationParty' uploadDocumentJsonRequest: type: object additionalProperties: false description: JSON request body for document upload. Use `multipart/form-data` to upload a file directly without encoding. required: - branchId - document anyOf: - required: - caseId - required: - externalCaseId properties: transactionId: $ref: '#/components/schemas/lgsUuid' description: Optional parent transaction from create case. branchId: $ref: '#/components/schemas/lgsUuid' workflowId: type: integer format: int32 minimum: 1 description: Optional workflow identifier. caseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: Intelliworks case reference (e.g. `EXP-000762`). externalCaseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-]*$ description: External case reference (e.g. `AAR801/1`). taskId: $ref: '#/components/schemas/lgsUuid' description: Optional task identifier. When omitted, a new default task is created and the document is stored against it. document: $ref: '#/components/schemas/uploadDocumentJsonDocument' uploadDocumentJsonDocument: type: object additionalProperties: false description: Document metadata and content for JSON upload requests required: - fileName - contentType - extension properties: fileName: type: string maxLength: 255 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/.,']*$ description: type: string maxLength: 500 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/.,' ]*$ contentBase64: type: string minLength: 1 description: Optional Base64-encoded document content. Prefer `multipart/form-data` to upload the file directly. contentType: $ref: '#/components/schemas/uploadDocumentAllowedContentType' extension: $ref: '#/components/schemas/uploadDocumentAllowedExtension' uploadDocumentAllowedContentType: type: string enum: - application/pdf - application/msword - application/vnd.openxmlformats-officedocument.wordprocessingml.document - text/plain - image/png - image/jpeg uploadDocumentAllowedExtension: type: string enum: - pdf - doc - docx - txt - png - jpg - jpeg uploadDocumentResponse: type: object additionalProperties: false description: Accepted document upload response required: - transactionRequestId - transactionId - documentId properties: transactionRequestId: $ref: '#/components/schemas/lgsUuid' transactionId: $ref: '#/components/schemas/lgsUuid' documentId: $ref: '#/components/schemas/lgsUuid' completedDocumentsResponse: type: object additionalProperties: false title: Completed documents description: Read-only list of completed documents returned by Get Completed Documents. properties: caseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: Intelliworks case reference. externalCaseId: type: string maxLength: 50 pattern: ^[a-zA-Z0-9@ :#$%^&+=*()_+-/]*$ description: External case reference from the originating system. workflowId: type: integer format: int32 minimum: 0 maximum: 99999 description: Intelliworks workflow identifier. documents: type: array description: Completed documents held against the case. items: $ref: '#/components/schemas/completedDocumentItem' completedDocumentItem: type: object additionalProperties: false title: Completed document description: A single completed document held against a case. properties: id: type: string format: uuid description: Document ID. Use this value with `GET /documents/{id}/download` to download the document. description: type: string maxLength: 255 description: Document description. fileName: type: string maxLength: 255 description: Resolved document file name. extension: type: string maxLength: 25 description: File extension. sizeBytes: type: integer format: int64 minimum: 0 description: Document size in bytes. externalType: type: string maxLength: 50 description: Document classification (e.g. CaseDocument, CaseImport). createdAt: type: string format: date-time description: Creation timestamp (UTC). updatedAt: type: string format: date-time description: Last updated timestamp (UTC). Error: required: - code - message additionalProperties: false properties: code: type: integer format: int32 message: type: string pattern: ^.*$ lgsUuid: type: string format: uuid minLength: 36 maxLength: 36 pattern: ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$ lgsUprn: type: integer format: int64 minimum: 0 maximum: 9223372036854775000 lgsAddressPAF: $comment: Based https://www.poweredbypaf.com/wp-content/uploads/2017/07/Latest-Programmers_guide_Edition-7-Version-6.pdf. Addresses defined in PAF are designed to be applicable properties that recieve mail. type: object required: - addressType properties: addressType: type: string enum: - addressPAF uprn: $ref: '#/components/schemas/lgsUprn' udprn: type: integer description: Royal Mail’s Unique Delivery Point Reference Number (UDPRN) minimum: 0 maximum: 99999999 departmentName: type: string description: 'example: Customer Service Department' maxLength: 60 pattern: ^(?!(<[^>].*>|%3c[^%3e].*%3e|<[^>].*>)).*$ organisationName: type: string description: 'example: JW Simpsons Ltd' maxLength: 60 pattern: ^(?!(<[^>].*>|%3c[^%3e].*%3e|<[^>].*>)).*$ subBuildingName: type: string description: 'example: The Old Mill' maxLength: 30 pattern: ^(?!(<[^>].*>|%3c[^%3e].*%3e|<[^>].*>)).*$ buildingName: type: string description: 'example: The Annexe' maxLength: 50 pattern: ^(?!(<[^>].*>|%3c[^%3e].*%3e|<[^>].*>)).*$ buildingNumber: type: string description: 'example: 7' maxLength: 4 pattern: ^[A-Za-z0-9-/\s]*$ poBoxNumber: type: string description: 'example: 5422' maxLength: 14 pattern: ^[A-Za-z0-9.#\s]*$ dependentThoroughfare: type: string description: 'example: Richmond Terrace' maxLength: 60 pattern: ^[A-Za-zÀ-ž0-9\u2010-\u201F-.,'&\s]*$ thoroughfare: type: string description: 'example: Main Street' maxLength: 60 pattern: ^[A-Za-zÀ-ž0-9\u2010-\u201F-.,'&\s]*$ doubleDependentLocality: type: string description: 'example: Hook' maxLength: 35 pattern: ^[A-Za-zÀ-ž0-9\u2010-\u201F-.,'&\s]*$ dependentLocality: type: string description: 'example: Warsash' maxLength: 35 pattern: ^[A-Za-zÀ-ž0-9\u2010-\u201F-.,'&\s]*$ postTown: type: string description: 'example: Southampton' maxLength: 30 pattern: ^[A-Za-zÀ-ž\u2010-\u201F-.'&!\s]*$ postcode: type: string description: 'example: SO99 9ZZ' maxLength: 10 pattern: ^[A-Za-z0-9\s]*$ blpuEasting: type: number description: 'example: 296701' blpuNorthing: type: number description: 'example: 92288' lgsAddressBS7666: $comment: BS7666 no longer includes field lengths, however, field lengths included to conform to Landmark Standard 2.5.1. Addresses defined in BS 7666 are designed to be applicable to land and property, not just properties that recieve mail. type: object required: - addressType - postcodeLocator properties: addressType: type: string enum: - addressBS7666 uprn: $ref: '#/components/schemas/lgsUprn' organisation: type: string description: 'example: JW Simpson Ltd' maxLength: 60 pattern: ^.*$ saoText: type: string description: 'example: The Annexe' maxLength: 90 pattern: ^.*$ saoStartNumber: type: integer description: 'example: 1' saoStartSuffix: type: string description: 'example: A' maxLength: 2 pattern: ^.*$ saoEndNumber: type: integer description: 'example: 5' saoEndSuffix: type: string description: 'example: C' maxLength: 2 pattern: ^.*$ paoText: type: string description: 'example: The Old Mill' maxLength: 90 pattern: ^.*$ paoStartNumber: type: integer description: 'example: 7' paoStartSuffix: type: string description: 'example: A' maxLength: 2 pattern: ^.*$ paoEndNumber: type: integer description: 'example: 9' paoEndSuffix: type: string description: 'example: C' maxLength: 2 pattern: ^.*$ streetDescription: type: string description: 'example: Main Street' maxLength: 100 pattern: ^.*$ locality: type: string description: 'example: Hook' maxLength: 35 pattern: ^.*$ townName: type: string description: 'example: Warsash' maxLength: 30 pattern: ^.*$ administrativeArea: type: string description: 'example: Southampton' maxLength: 30 pattern: ^.*$ postcodeLocator: type: string description: 'example: SO99 9ZZ' maxLength: 10 pattern: ^.*$ blpuEasting: type: number description: 'example: 296701' blpuNorthing: type: number description: 'example: 92288' lgsAddressSingleLine: $comment: Singleline is suitable for those applications where a structured address is not required. type: object required: - addressType - addressLine properties: addressType: type: string enum: - addressSingleLine uprn: $ref: '#/components/schemas/lgsUprn' addressLine: type: string description: 'example: The Old Mill, 7A-9 Main Street, Hook, Warsash, Southampton, SO99 9ZZ' maxLength: 1000 pattern: ^.*$ lgsAddress9Line: $comment: 9Line is suitable for those applications where a structured address is required but flexibility around the address elements is desired. type: object required: - addressType - addressLine1 - addressLine2 properties: addressType: type: string enum: - address9Line uprn: $ref: '#/components/schemas/lgsUprn' addressLine1: type: string description: 'example: The Old Mill' maxLength: 200 pattern: ^.*$ addressLine2: type: string description: 'example: 7-9 Main Street' maxLength: 200 pattern: ^.*$ addressLine3: type: string description: 'example: Hook' maxLength: 200 pattern: ^.*$ addressLine4: type: string description: 'example: Warsash' maxLength: 200 pattern: ^.*$ addressLine5: type: string description: 'example: Southampton' maxLength: 200 pattern: ^.*$ addressLine6: type: string description: 'example: Hampshire' maxLength: 200 pattern: ^.*$ addressLine7: type: string description: 'example: England' maxLength: 200 pattern: ^.*$ addressLine8: type: string description: 'example: United Kingdom' maxLength: 200 pattern: ^.*$ addressLine9: type: string description: 'example: SO99 9ZZ' maxLength: 200 pattern: ^.*$ lgsAddressFixedLine: $comment: FixedLine is suitable for those applications where a user friendly, structured address is required. type: object required: - addressType - postcode properties: addressType: type: string enum: - addressFixedLine uprn: $ref: '#/components/schemas/lgsUprn' name: type: string maxLength: 200 pattern: ^.*$ number: type: string maxLength: 200 pattern: ^.*$ street: type: string description: 'example: 7-9 Main Street' maxLength: 200 pattern: ^.*$ area: type: string description: 'example: Hook' maxLength: 200 pattern: ^.*$ town: type: string description: 'example: Warsash' maxLength: 200 pattern: ^.*$ county: type: string description: 'example: Hampshire' maxLength: 200 pattern: ^.*$ country: type: string description: 'example: England' maxLength: 200 pattern: ^.*$ postcode: type: string description: 'example: SO99 9ZZ' maxLength: 10 pattern: ^.*$ lgsAddressUprnOnly: $comment: UprnOnly is suitable when client or application has a valid uprn. If an address is required an address match will need to be made. type: object required: - addressType - uprn properties: addressType: type: string enum: - addressUprnOnly uprn: $ref: '#/components/schemas/lgsUprn' lgsAddressAddressBaseCore: $comment: Based https://www.ordnancesurvey.co.uk/documents/product-support/tech-spec/addressbasecore-technical-specification.pdf. type: object required: - addressType properties: addressType: type: string enum: - addressAddressBaseCore uprn: $ref: '#/components/schemas/lgsUprn' parentUprn: $ref: '#/components/schemas/lgsUprn' udprn: type: integer description: Royal Mail’s Unique Delivery Point Reference Number (UDPRN) minimum: 0 maximum: 99999999 usrn: type: integer description: Unique Street Reference Number assigned by the Street Name and Numbering Custodian OR Ordnance Survey depending on the address record minimum: 0 maximum: 99999999 toid: type: string description: The Topographic Identifier taken from OS MasterMap Topography Layer maxLength: 20 pattern: ^.*$ easting: type: number description: A value in metres defining the x location in accordance with the British National Grid northing: type: number description: A value in metres defining the y location in accordance with the British National Grid latitude: type: number description: A value defining the Latitude location in accordance with the ETRS89 coordinate reference system longitude: type: number description: A value defining the Longitude location in accordance with the ETRS89 coordinate reference system singleLineAddress: type: string description: A single attribute containing text concatenation of the address elements separated by a comma maxLength: 500 pattern: ^.*$ poBox: type: string description: Text concatenation of PO BOX and the Post Office Box (PO Box) number or ‘BFPO’ and the British Forces Post Office number maxLength: 13 pattern: ^.*$ organisation: type: string description: 'The organisation name is the business name given, when appropriate, to an address record. ' maxLength: 100 pattern: ^.*$ subBuilding: type: string description: The sub-building name and/or number for the address record maxLength: 110 pattern: ^.*$ buildingName: type: string description: The building name is a description applied to a single address or a group of addresses maxLength: 110 pattern: ^.*$ buildingNumber: type: string description: The building number is a number or range of numbers given to a single address or a group of addresses maxLength: 13 pattern: ^.*$ streetName: type: string description: Street / Road name for the address record maxLength: 100 pattern: ^.*$ locality: type: string description: A locality defines an area or geographical identifier within a town, village or hamlet. Locality represents the lower level geographical area. maxLength: 35 pattern: ^.*$ townName: type: string description: Geographical town name assigned by the Local Authority. Please note this can be different from the Post Town value assigned by Royal Mail maxLength: 35 pattern: ^.*$ postTown: type: string description: The town or city in which the Royal Mail sorting office is located which services this address record maxLength: 30 pattern: ^.*$ island: type: string description: Third level of geographic area name to record island names where appropriate maxLength: 50 pattern: ^.*$ postcode: type: string description: A postcode assigned by Royal Mail for the address record maxLength: 8 pattern: ^.*$ lgsAddress: oneOf: - $ref: '#/components/schemas/lgsAddressPAF' - $ref: '#/components/schemas/lgsAddressBS7666' - $ref: '#/components/schemas/lgsAddressSingleLine' - $ref: '#/components/schemas/lgsAddress9Line' - $ref: '#/components/schemas/lgsAddressFixedLine' - $ref: '#/components/schemas/lgsAddressUprnOnly' - $ref: '#/components/schemas/lgsAddressAddressBaseCore' lgsPerson: type: object additionalProperties: true properties: id: $comment: Unique person id $ref: '#/components/schemas/lgsUuid' title: type: string maxLength: 20 pattern: ^.{0}$|^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø-ž'. -]*$ firstName: type: string maxLength: 100 pattern: ^.{0}$|^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø-ž\u2010-\u2015‘’‛.' -]*$ middleName: type: string maxLength: 100 pattern: ^.{0}$|^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø-ž\u2010-\u2015‘’‛.' -]*$ lastName: type: string maxLength: 100 pattern: ^(?=.*[A-Za-zÀ-ÖØ-öø-ž])[A-Za-zÀ-ÖØ-öø-ž\u2010-\u2015‘’‛.' -]*$ email: $comment: Email format based on https://datatracker.ietf.org/doc/html/rfc3696#section-3 type: string format: email maxLength: 320 telephoneNumber: $comment: Limits set inline with https://en.wikipedia.org/wiki/E.164 type: string minLength: 8 maxLength: 15 mobileTelephoneNumber: $comment: 'Limits set inline with https://en.wikipedia.org/wiki/E.164, ideally this should be used when it is known that the number relates to a mobile number or when there is already a value in the telephoneNumber ' type: string minLength: 8 maxLength: 15 address: description: Main residential address $ref: '#/components/schemas/lgsAddress' correspondenceAddress: description: Alternative address for correspondence $ref: '#/components/schemas/lgsAddress' required: - lastName lgsErrorResponse: type: object additionalProperties: false required: - status - code - title properties: status: type: string minLength: 3 maxLength: 3 pattern: ^[0-9]{3}$ code: type: string minLength: 5 maxLength: 5 pattern: ^[0-9]{5}$ title: type: string minLength: 1 maxLength: 100 messages: type: array maxItems: 100 items: type: object additionalProperties: false required: - message properties: property: type: string minLength: 1 maxLength: 1000 message: type: string minLength: 1 maxLength: 1000 securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT headers: lgsTraceResponse: description: Trace context providing an unique identifier for an individual requests schema: type: string minLength: 39 maxLength: 39 pattern: ^[0-9a-fA-F]{2}-[0-9a-fA-F]{32}--[0-9a-fA-F]{2}$ examples: Example traceresponse: value: 00-199c8ce55dc743a88661498aa8eb2cfc--00 security: - bearerAuth: []