DigiOffice Gateway Web Services

<back to all web services

GenerateDocument

Generate custom Document (Don't use from inside VSTO's)

Requires Authentication
namespace IDB.API.Common

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type GenerateDocumentResponse() = 
        ///<summary>
        ///Contains the registration ID of the generated (corporate identity) document
        ///</summary>
        [<ApiMember(Description="Contains the registration ID of the generated (corporate identity) document", IsRequired=true)>]
        member val DocumentID:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type UserReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val LoginName:String = null with get,set
        member val UserPrincipalName:String = null with get,set
        member val FullName:String = null with get,set
        member val EmailAddress:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type DocumentgeneratorDocumentReference() = 
        member val ID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Name:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type RegistrationProfileReference() = 
        member val ID:Guid = new Guid() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type DocumentReference() = 
        member val ID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val Code:String = null with get,set
        member val VersionCode:String = null with get,set
        member val RootDocID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val InternalInvoiceCode:String = null with get,set
        member val CompanyNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DocumentTypeID:String = null with get,set
        member val InvoiceType:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val RegProfCatID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set
        member val ExternNr:String = null with get,set
        member val InternNummer:String = null with get,set

    [<AllowNullLiteral>]
    type MessageQueueReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    [<AllowNullLiteral>]
    type ConfigurationSource() = 
        ///<summary>
        ///Document genereren op basis van een DocGenDocument.
        ///</summary>
        member val DocumentgeneratorDocument:DocumentgeneratorDocumentReference = null with get,set

        ///<summary>
        ///Document genereren op basis van een RegistratieProfiel.
        ///</summary>
        member val RegistrationProfile:RegistrationProfileReference = null with get,set

        ///<summary>
        ///Use existing document registration.
        ///</summary>
        member val RegisteredDocument:DocumentReference = null with get,set

        ///<summary>
        ///Use draft document registration.
        ///</summary>
        member val DraftDocumentRegistration:MessageQueueReference = null with get,set

        member val DocumentgeneratorType:Type = null with get,set
        ///<summary>
        ///DocumentgeneratorType voor bijvoorbeeld Word of Email.
        ///</summary>
        member val DocumentgeneratorTypeName:String = null with get,set

        member val TemplateExtension:String = null with get,set
        member val OutputExtension:String = null with get,set

    type VersioningType =
        | New = 0
        | Change = 1
        | Primary = 2
        | Secondary = 3

    [<AllowNullLiteral>]
    type CompanyReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Number:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type RelationReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val CreditorNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DebtorNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalLocationNumber:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type PersonReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Number:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type ProjectReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Code:String = null with get,set
        member val TypeExternalID:String = null with get,set
        member val CompanyNumber:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set

    [<AllowNullLiteral>]
    type SubProject() = 
        member val Project:ProjectReference = null with get,set

    [<AllowNullLiteral>]
    type ContactPersonReference() = 
        member val ID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val ExternalID:String = null with get,set
        member val RelationID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val PersonID:Nullable<Int32> = new Nullable<Int32>() with get,set

    type SignerType =
        | MainSigner = 0
        | AdditionalSigner = 1
        | ConfirmationDeclarant = 2
        | AdditionalConfirmationDeclarant = 3

    [<AllowNullLiteral>]
    type Signer() = 
        member val User:UserReference = null with get,set
        member val Person:PersonReference = null with get,set
        member val Relation:RelationReference = null with get,set
        member val ContactPerson:ContactPersonReference = null with get,set
        member val RegisteredDocument:DocumentReference = null with get,set
        member val Type:SignerType = new SignerType() with get,set
        member val ClosingSentence:String = null with get,set
        member val Name:String = null with get,set
        member val Subsidiary:String = null with get,set
        member val Function:String = null with get,set
        member val Department:String = null with get,set
        member val PhoneNumber:String = null with get,set
        member val FaxNumber:String = null with get,set
        member val MobileNumber:String = null with get,set
        member val Email:String = null with get,set
        member val CustomText:String = null with get,set
        member val Signature:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val SignatureVisible:Nullable<Boolean> = new Nullable<Boolean>() with get,set
        member val Visible:Nullable<Boolean> = new Nullable<Boolean>() with get,set

    [<AllowNullLiteral>]
    type Field() = 
        member val Name:String = null with get,set
        member val OldValue:String = null with get,set
        member val Value:String = null with get,set
        member val Title:String = null with get,set

    [<AllowNullLiteral>]
    type AttachmentData() = 
        member val ContentType:String = null with get,set
        ///<summary>
        ///Data base64-encoded zonder padding.
        ///</summary>
        member val Data:String = null with get,set

    [<AllowNullLiteral>]
    type Attachment() = 
        member val Name:String = null with get,set
        member val AttachmentData:AttachmentData = null with get,set

    [<AllowNullLiteral>]
    type RegistrationMetaData() = 
        ///<summary>
        ///Hoe moet het versiebeheer worden toegepast?
        ///</summary>
        [<ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")>]
        member val Versioning:Nullable<VersioningType> = new Nullable<VersioningType>() with get,set

        ///<summary>
        ///Previous document will be used for registration of a new version.
        ///</summary>
        [<ApiMember(Description="Previous document will be used for registration of a new version.")>]
        member val PreviousDocument:DocumentReference = null with get,set

        ///<summary>
        ///Company
        ///</summary>
        [<ApiMember(Description="Company")>]
        member val Company:CompanyReference = null with get,set

        ///<summary>
        ///Relation
        ///</summary>
        [<ApiMember(Description="Relation")>]
        member val Relation:RelationReference = null with get,set

        ///<summary>
        ///Person
        ///</summary>
        [<ApiMember(Description="Person")>]
        member val Person:PersonReference = null with get,set

        ///<summary>
        ///Project
        ///</summary>
        [<ApiMember(Description="Project")>]
        member val Project:ProjectReference = null with get,set

        ///<summary>
        ///Sub projects
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Sub projects")>]
        member val SubProjects:ResizeArray<SubProject> = new ResizeArray<SubProject>() with get,set

        ///<summary>
        ///Signers
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Signers")>]
        member val Signers:ResizeArray<Signer> = new ResizeArray<Signer>() with get,set

        ///<summary>
        ///Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.")>]
        member val Fields:ResizeArray<Field> = new ResizeArray<Field>() with get,set

        ///<summary>
        ///Attachments die aan de documentregistratie gekoppeld moet worden.
        ///</summary>
        [<ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")>]
        member val Attachments:ResizeArray<Attachment> = new ResizeArray<Attachment>() with get,set

    [<AllowNullLiteral>]
    type CommonEntityBaseReference() = 
        member val ID:String = null with get,set
        member val ExternalID:String = null with get,set
        member val GlobalID:Nullable<Guid> = new Nullable<Guid>() with get,set

    type Direction =
        | Left2Right = 0
        | UpLeft2DownRight = 45
        | Up2Down = 90
        | UpRight2DownLeft = 135
        | Right2Left = 180
        | DownRight2UpLeft = 225
        | Down2Up = 270
        | DownLeft2UpRight = 315

    [<AllowNullLiteral>]
    type Watermark() = 
        member val Text:String = null with get,set
        member val FontFamilyText:String = null with get,set
        member val FontFamily:FontFamily = null with get,set
        member val Direction:Nullable<Direction> = new Nullable<Direction>() with get,set
        member val StrokeColorText:String = null with get,set
        member val StrokeColor:Color = new Color() with get,set
        member val FillColorText:String = null with get,set
        member val FillColor:Color = new Color() with get,set

    ///<summary>
    ///Generate custom Document (Don't use from inside VSTO's)
    ///</summary>
    [<Api(Description="Generate custom Document (Don't use from inside VSTO's)")>]
    [<AllowNullLiteral>]
    type GenerateDocument() = 
        ///<summary>
        ///DigiOffice user
        ///</summary>
        [<ApiMember(Description="DigiOffice user")>]
        member val User:UserReference = null with get,set

        ///<summary>
        ///Send the generated e-mail via the e-mail queue.
        ///</summary>
        [<ApiMember(Description="Send the generated e-mail via the e-mail queue.")>]
        member val SendMail:Boolean = new Boolean() with get,set

        ///<summary>
        ///ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.
        ///</summary>
        [<ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)>]
        member val ConfigurationSource:ConfigurationSource = null with get,set

        ///<summary>
        ///Set references to bind with Registration profile
        ///</summary>
        [<ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)>]
        member val RegistrationMetaData:RegistrationMetaData = null with get,set

        ///<summary>
        ///Entity instance used as data source parent, if not exists default is Document registration instance.
        ///</summary>
        [<ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.")>]
        member val DataSourceEntity:CommonEntityBaseReference = null with get,set

        ///<summary>
        ///Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.
        ///</summary>
        [<ApiMember(Description="Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.")>]
        member val CustomData:String = null with get,set

        ///<summary>
        ///Insert a watermark into the document.
        ///</summary>
        [<ApiMember(Description="Insert a watermark into the document.")>]
        member val Watermark:Watermark = null with get,set

        ///<summary>
        ///Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.
        ///</summary>
        [<ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")>]
        member val OutputType:String = null with get,set

        ///<summary>
        ///Should update the document file.
        ///</summary>
        [<ApiMember(Description="Should update the document file.")>]
        member val ShouldUpdateDocumentFile:Boolean = new Boolean() with get,set

F# GenerateDocument DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /csv/reply/GenerateDocument HTTP/1.1 
Host: digiofficeapigateway.deltares.nl 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"User":{"ID":0,"LoginName":"String","UserPrincipalName":"String","FullName":"String","EmailAddress":"String","GlobalID":"00000000-0000-0000-0000-000000000000"},"SendMail":false,"ConfigurationSource":{"DocumentgeneratorDocument":{"ID":"00000000-0000-0000-0000-000000000000","Name":"String"},"RegistrationProfile":{},"RegisteredDocument":{"ID":"00000000-0000-0000-0000-000000000000","Code":"String","VersionCode":"String","RootDocID":"00000000-0000-0000-0000-000000000000","InternalInvoiceCode":"String","CompanyNumber":0,"DocumentTypeID":"String","InvoiceType":0,"RegProfCatID":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"DraftDocumentRegistration":{"ID":0},"DocumentgeneratorType":null,"TemplateExtension":"String","OutputExtension":"String"},"RegistrationMetaData":{"Versioning":"New","PreviousDocument":{"ID":"00000000-0000-0000-0000-000000000000","Code":"String","VersionCode":"String","RootDocID":"00000000-0000-0000-0000-000000000000","InternalInvoiceCode":"String","CompanyNumber":0,"DocumentTypeID":"String","InvoiceType":0,"RegProfCatID":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"Company":{"ID":0,"Number":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"Relation":{"ID":0,"CreditorNumber":0,"DebtorNumber":0,"GlobalLocationNumber":"String","GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"Person":{"ID":0,"Number":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"Project":{"ID":0,"Code":"String","TypeExternalID":"String","CompanyNumber":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"SubProjects":[{"Project":{"ID":0,"Code":"String","TypeExternalID":"String","CompanyNumber":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"}}],"Signers":[{"User":{"ID":0,"LoginName":"String","UserPrincipalName":"String","FullName":"String","EmailAddress":"String","GlobalID":"00000000-0000-0000-0000-000000000000"},"Person":{"ID":0,"Number":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"Relation":{"ID":0,"CreditorNumber":0,"DebtorNumber":0,"GlobalLocationNumber":"String","GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"ContactPerson":{"ID":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String","RelationID":0,"PersonID":0},"RegisteredDocument":{"ID":"00000000-0000-0000-0000-000000000000","Code":"String","VersionCode":"String","RootDocID":"00000000-0000-0000-0000-000000000000","InternalInvoiceCode":"String","CompanyNumber":0,"DocumentTypeID":"String","InvoiceType":0,"RegProfCatID":0,"GlobalID":"00000000-0000-0000-0000-000000000000","ExternalID":"String"},"Type":"MainSigner","ClosingSentence":"String","Name":"String","Subsidiary":"String","Function":"String","Department":"String","PhoneNumber":"String","FaxNumber":"String","MobileNumber":"String","Email":"String","CustomText":"String","Signature":["String"],"SignatureVisible":false,"Visible":false}],"Fields":[{"Name":"String","OldValue":"String","Value":"String","Title":"String = String -> String"}],"Attachments":[{"Name":"String","AttachmentData":{"ContentType":"String","Data":"String"}}]},"DataSourceEntity":{"ID":"String","ExternalID":"String","GlobalID":"00000000-0000-0000-0000-000000000000"},"CustomData":"String","Watermark":{"Text":"String","FontFamilyText":null,"Direction":"Left2Right","StrokeColorText":null,"FillColorText":null},"OutputType":"String","ShouldUpdateDocumentFile":false}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"DocumentID":"00000000-0000-0000-0000-000000000000"}