DigiOffice Gateway Web Services

<back to all web services

GenerateDocument

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

Requires Authentication

export class GenerateDocumentResponse implements IGenerateDocumentResponse
{
    /** @description Contains the registration ID of the generated (corporate identity) document */
    // @ApiMember(Description="Contains the registration ID of the generated (corporate identity) document", IsRequired=true)
    public DocumentID: string;

    public constructor(init?: Partial<GenerateDocumentResponse>) { (Object as any).assign(this, init); }
}

export class UserReference implements IEntityReference
{
    public ID?: number;
    public LoginName: string;
    public UserPrincipalName: string;
    public FullName: string;
    public EmailAddress: string;
    public GlobalID?: string;

    public constructor(init?: Partial<UserReference>) { (Object as any).assign(this, init); }
}

export class DocumentgeneratorDocumentReference implements IEntityReference
{
    public ID?: string;
    public Name: string;
    public GlobalID?: string;

    public constructor(init?: Partial<DocumentgeneratorDocumentReference>) { (Object as any).assign(this, init); }
}

export class RegistrationProfileReference implements IEntityReference
{
    public ID: string;
    public GlobalID?: string;

    public constructor(init?: Partial<RegistrationProfileReference>) { (Object as any).assign(this, init); }
}

export class DocumentReference implements IEntityReference
{
    public ID?: string;
    public Code: string;
    public VersionCode: string;
    public RootDocID?: string;
    public InternalInvoiceCode: string;
    public CompanyNumber?: number;
    public DocumentTypeID: string;
    public InvoiceType?: number;
    public RegProfCatID?: number;
    public GlobalID?: string;
    public ExternalID: string;
    public ExternNr: string;
    public ExternVersieNr: string;
    public InternNummer: string;

    public constructor(init?: Partial<DocumentReference>) { (Object as any).assign(this, init); }
}

export enum DocInfoAction
{
    Create = 'Create',
    Register = 'Register',
}

export enum DocInfoMode
{
    New = 'New',
    Change = 'Change',
    NewVersionPrimary = 'NewVersionPrimary',
    NewVersionSecondary = 'NewVersionSecondary',
    NewFromExistingDocument = 'NewFromExistingDocument',
}

export enum DocInfoSilentMode
{
    Off = 'Off',
    AllowUserInteraction = 'AllowUserInteraction',
    DoNotAllowUserInteraction = 'DoNotAllowUserInteraction',
}

export class DocumentInfo
{
    public Action: DocInfoAction;
    public Mode: DocInfoMode;
    public Version: string;
    public SilentMode: DocInfoSilentMode;

    public constructor(init?: Partial<DocumentInfo>) { (Object as any).assign(this, init); }
}

export class MessageQueueReference implements IEntityReference
{
    public ID?: number;
    public GlobalID?: string;

    public constructor(init?: Partial<MessageQueueReference>) { (Object as any).assign(this, init); }
}

export class ConfigurationSource
{
    /** @description Document genereren op basis van een DocGenDocument. */
    public DocumentgeneratorDocument: DocumentgeneratorDocumentReference;
    /** @description Document genereren op basis van een RegistratieProfiel. */
    public RegistrationProfile: RegistrationProfileReference;
    /** @description Use existing document registration. */
    public RegisteredDocument: DocumentReference;
    /** @description Use documentInfo. */
    public UnRegisteredDocument: DocumentInfo;
    /** @description Use draft document registration. */
    public DraftDocumentRegistration: MessageQueueReference;
    public DocumentgeneratorType: string;
    /** @description DocumentgeneratorType voor bijvoorbeeld Word of Email. */
    public DocumentgeneratorTypeName: string;
    public TemplateExtension: string;
    public OutputExtension: string;

    public constructor(init?: Partial<ConfigurationSource>) { (Object as any).assign(this, init); }
}

export enum VersioningType
{
    New = 'New',
    Change = 'Change',
    Primary = 'Primary',
    Secondary = 'Secondary',
}

export class CompanyReference implements IEntityReference
{
    public ID?: number;
    public Number?: number;
    public GlobalID?: string;
    public ExternalID: string;

    public constructor(init?: Partial<CompanyReference>) { (Object as any).assign(this, init); }
}

export class RelationReference implements IEntityReference
{
    public ID?: number;
    public CreditorNumber?: number;
    public DebtorNumber?: number;
    public GlobalLocationNumber: string;
    public GlobalID?: string;
    public ExternalID: string;

    public constructor(init?: Partial<RelationReference>) { (Object as any).assign(this, init); }
}

export class PersonReference implements IEntityReference
{
    public ID?: number;
    public Number?: number;
    public GlobalID?: string;
    public ExternalID: string;

    public constructor(init?: Partial<PersonReference>) { (Object as any).assign(this, init); }
}

export class ProjectReference implements IEntityReference
{
    public ID?: number;
    public Code: string;
    public TypeExternalID: string;
    public CompanyNumber?: number;
    public GlobalID?: string;
    public ExternalID: string;

    public constructor(init?: Partial<ProjectReference>) { (Object as any).assign(this, init); }
}

export class SubProject
{
    public Project: ProjectReference;

    public constructor(init?: Partial<SubProject>) { (Object as any).assign(this, init); }
}

export class ContactPersonReference implements IEntityReference
{
    public ID?: number;
    public GlobalID?: string;
    public ExternalID: string;
    public RelationID?: number;
    public PersonID?: number;

    public constructor(init?: Partial<ContactPersonReference>) { (Object as any).assign(this, init); }
}

export enum SignerType
{
    MainSigner = 'MainSigner',
    AdditionalSigner = 'AdditionalSigner',
    ConfirmationDeclarant = 'ConfirmationDeclarant',
    AdditionalConfirmationDeclarant = 'AdditionalConfirmationDeclarant',
}

export class Signer
{
    public MainSignerPostFix: string;
    public User: UserReference;
    public Person: PersonReference;
    public Relation: RelationReference;
    public ContactPerson: ContactPersonReference;
    public RegisteredDocument: DocumentReference;
    public Type: SignerType;
    public ClosingSentence: string;
    public Name: string;
    public Subsidiary: string;
    public Function: string;
    public Department: string;
    public PhoneNumber: string;
    public FaxNumber: string;
    public MobileNumber: string;
    public Email: string;
    public CustomText: string;
    public Signature: string[];
    public Initials: string[];
    public SignatureVisible?: boolean;
    public InitialsVisible?: boolean;
    public Visible?: boolean;

    public constructor(init?: Partial<Signer>) { (Object as any).assign(this, init); }
}

export class Field
{
    public Name: string;
    public OldValue: string;
    public Value: string;
    public Title: string;

    public constructor(init?: Partial<Field>) { (Object as any).assign(this, init); }
}

export class AttachmentData
{
    public ContentType: string;
    /** @description Data base64-encoded zonder padding. */
    public Data: string;

    public constructor(init?: Partial<AttachmentData>) { (Object as any).assign(this, init); }
}

export class Attachment
{
    public Name: string;
    public AttachmentData: AttachmentData;

    public constructor(init?: Partial<Attachment>) { (Object as any).assign(this, init); }
}

export class RegistrationMetaData
{
    /** @description Hoe moet het versiebeheer worden toegepast? */
    // @ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")
    public Versioning?: VersioningType;

    /** @description Previous document will be used for registration of a new version. */
    // @ApiMember(Description="Previous document will be used for registration of a new version.")
    public PreviousDocument: DocumentReference;

    /** @description Company */
    // @ApiMember(Description="Company")
    public Company: CompanyReference;

    /** @description Relation */
    // @ApiMember(Description="Relation")
    public Relation: RelationReference;

    /** @description Person */
    // @ApiMember(Description="Person")
    public Person: PersonReference;

    /** @description Project */
    // @ApiMember(Description="Project")
    public Project: ProjectReference;

    /** @description Sub projects */
    // @ApiMember(AllowMultiple=true, Description="Sub projects")
    public SubProjects: SubProject[];

    /** @description Signers */
    // @ApiMember(AllowMultiple=true, Description="Signers")
    public Signers: Signer[];

    /** @description Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie. */
    // @ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.")
    public Fields: Field[];

    /** @description Attachments die aan de documentregistratie gekoppeld moet worden. */
    // @ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")
    public Attachments: Attachment[];

    public constructor(init?: Partial<RegistrationMetaData>) { (Object as any).assign(this, init); }
}

export class CommonEntityBaseReference implements IEntityReference
{
    public ID: string;
    public ExternalID: string;
    public GlobalID?: string;

    public constructor(init?: Partial<CommonEntityBaseReference>) { (Object as any).assign(this, init); }
}

export enum Direction
{
    Left2Right = 0,
    UpLeft2DownRight = 45,
    Up2Down = 90,
    UpRight2DownLeft = 135,
    Right2Left = 180,
    DownRight2UpLeft = 225,
    Down2Up = 270,
    DownLeft2UpRight = 315,
}

export class Watermark
{
    public Text: string;
    public FontFamilyText: string;
    public FontFamily: FontFamily;
    public Direction?: Direction;
    public StrokeColorText: string;
    public StrokeColor: Color;
    public FillColorText: string;
    public FillColor: Color;

    public constructor(init?: Partial<Watermark>) { (Object as any).assign(this, init); }
}

/** @description Generate custom Document (Don't use from inside VSTO's) */
// @Api(Description="Generate custom Document (Don't use from inside VSTO's)")
export class GenerateDocument implements IGenerateDocument
{
    /** @description DigiOffice user */
    // @ApiMember(Description="DigiOffice user")
    public User: UserReference;

    /** @description Send the generated e-mail via the e-mail queue. */
    // @ApiMember(Description="Send the generated e-mail via the e-mail queue.")
    public SendMail: boolean;

    /** @description ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel. */
    // @ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)
    public ConfigurationSource: ConfigurationSource;

    /** @description Set references to bind with Registration profile */
    // @ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)
    public RegistrationMetaData: RegistrationMetaData;

    /** @description Entity instance used as data source parent, if not exists default is Document registration instance. */
    // @ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.")
    public DataSourceEntity: CommonEntityBaseReference;

    /** @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. */
    // @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.")
    public CustomData: string;

    /** @description Insert a watermark into the document. */
    // @ApiMember(Description="Insert a watermark into the document.")
    public Watermark: Watermark;

    /** @description Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf. */
    // @ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")
    public OutputType: string;

    /** @description Should update the document file. */
    // @ApiMember(Description="Should update the document file.")
    public ShouldUpdateDocumentFile: boolean;

    public constructor(init?: Partial<GenerateDocument>) { (Object as any).assign(this, init); }
}

TypeScript 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: doapigw.baasbv.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","ExternVersieNr":"String"},"UnRegisteredDocument":{"Action":"Create","Mode":"New","Version":"String","SilentMode":"Off"},"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","ExternVersieNr":"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":[{"MainSignerPostFix":"String","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","ExternVersieNr":"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"],"Initials":["String"],"SignatureVisible":false,"InitialsVisible":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"}