title: Implementation Plan — Electronic Documents Service audience: developer keywords: Landsbankinn, Documents, UploadDocument, GetDocumentResult, GetDocumentsResult, IOBS, TS 165, rafræn skjöl, implementation plan

locale: en-us

Implementation Plan — Electronic Documents Service

Add support for the Landsbankinn IcelandicOnlineBankingDocuments service (electronic documents / rafræn skjöl, handbook TS 165).

Service facts

ItemValue
Endpointhttps://b2b.fbl.is/IcelandicOnlineBankingDocuments.svc (live, HTTP 200)
SOAPAction prefixhttp://IcelandicOnlineBanking/2012/04/13
Request body namespacehttp://IcelandicOnlineBanking/2013/10/15/Documents (wrapper), types in …/2013/10/15/DocumentTypes
BindingWCF BasicHttpBinding (SOAP 1.1) — handled by Lbi Live Transport
HandbookTS 165 — Electronic Documents; XSD IcelandicOnlineBankingDocumentTypes.xsd

Operations

OperationSOAPActionRequestResponsePattern
UploadDocument…/2012/04/13/UploadDocumentDocument (type DocumentTypes:Document)DocumentID (string)Submit, returns an ID
GetDocumentResult…/2012/04/13/GetDocumentResultQuery (DocumentResultQuery)DocumentResultPoll one by ID
GetDocumentsResult…/2012/04/13/GetDocumentsResultQuery (DocumentsResultQuery, nillable)ArrayOfDocumentResultPoll many

The flow mirrors Payments: submit (UploadDocumentDocumentID), then poll (GetDocumentResult / GetDocumentsResult). Confirm the exact Document, DocumentResultQuery, and DocumentResult fields against the live XSD (?xsd=xsd0 / ?xsd=xsd1) and TS 165 before coding the builder/parser.

Message types to expose

Message typeOperationDirectionAccess gate
Landsbankinn.Document.UploadUploadDocumentOutboundYes — write operation
Landsbankinn.Document.ResultGetDocumentResultOutboundNo — read
Landsbankinn.Document.ResultBatchGetDocumentsResultOutboundNo — read

Identifiers are Locked = true (public wire contract), matching the existing pattern.

Objects to create

Follow the existing vertical slice (compare against src/Services/Payments + src/MessageTypes/Payments). IDs continue at 72363+ — see the ID-range prerequisite in API_Gap_Analysis.md.

**Services layer — src/Services/Documents/**

ObjectNameRole
CodeunitLbi Documents BuilderBuild the inner SOAP body for each operation
CodeunitLbi Documents ParserParse DocumentResult / ArrayOfDocumentResult into buffers
CodeunitLbi Documents MgtOrchestrate build → Lbi Client.SendRequest → parse
TableLbi Document Buf (temp)Upload payload buffer (name, content/Base64, type)
TableLbi Doc Result Buf (temp)Parsed result rows (DocumentID, status, timestamp)
EnumLbi Document StatusWire status values (locked case map, never Format())

**Message-type layer — src/MessageTypes/Documents/**

ObjectName
Codeunit (Impl)Lbi Document Upload Impl implements Cloud Event Msg Interface
Codeunit (Help)Lbi Document Upload Help
Codeunit (Impl)Lbi Document Result Impl
Codeunit (Help)Lbi Document Result Help
Codeunit (Impl)Lbi Document ResultBatch Impl
Codeunit (Help)Lbi Document ResultBatch Help

Access gate + permissions

ObjectNameNote
TableLbi Document GateGate table for the upload (write) operation
PermissionSetLbi Document GateGrants the upload gate

Wire the gate through Lbi Access Gate (codeunit 72300), mirroring Lbi Payment Gate. Add the new objects to Lbi Banki Full.

Plumbing changes (existing objects)

  1. **Lbi Operation enum** — add DocumentUpload, DocumentResult, DocumentResultBatch.
  2. **Lbi Client.SoapActionFor** — add a `DocumentsActionPrefixTok =

'http://IcelandicOnlineBanking/2012/04/13' and the three cases (/UploadDocument, /GetDocumentResult, /GetDocumentsResult`).

  1. **Lbi Endpoint** — add `DocumentServicePathTok =

'/IcelandicOnlineBankingDocuments.svc', a DocumentServiceUrl() accessor, and the three operations to ServiceUrlFor`.

  1. **Lbi Cloud Event Msg Type enum extension** — add the three message-type values,

each binding Cloud Event Msg Interface to its Impl codeunit.

  1. **Help.Landsbankinn.Get** overview — bump the message-type count and list the new types.

Tests — test/test/LbiDocumentsTests.Codeunit.al

inner elements qualified in …/DocumentTypes), via the mock transport.

missing required fields return a clean RespondWithError.

Open questions for Landsbankinn / TS 165

Sequencing and effort

  1. Confirm XSD field shapes + TS 165 (0.5 day).
  2. Services layer — builder, parser, Mgt, buffers, enum (1.5 days).
  3. Plumbing — operation enum, action map, endpoint, message-type enum (0.5 day).
  4. Message-type Impl + Help ×3 (1 day).
  5. Access gate + permission sets (0.5 day).
  6. Tests (1 day).

Rough total: ~5 developer-days, plus live verification once Landsbankinn confirms the credential/certificate entitlement covers the Documents service.


© Origo – Cloud Events Base Extension