Hoppa till innehåll

Annytab Dox Contract v1

I den här dokumentationen beskriver vi Annytab Dox Contract v1, vår egna licensfria standard för ett kontrakt/avtal som kan användas för att reglera villkor i en relation mellan två eller flera parter. Den här standarden är flexibel och kan användas för alla olika typer av avtal.

Den här standarden bygger på JSON, ett kompakt och textbaserat format som används för att utbyta data. Det är smidigt att serialisera objekt i program till JSON och det är smidigt att deserialisera JSON till objekt i program. Denna standard finns inkluderad i ett NuGet paket: a-dox-standards (NuGet Gallery).

AnnytabDoxContract [Modell]

Egenskap
Typ
Beskrivning
id
string
En identitet för avtalet, detta id kan användas vid referenser till detta kontrakt i andra avtal exempelvis.
title
string
En titel som beskriver vad avtalet handlar om. Exempelvis: Köpekontrakt, Samboavtal eller Hyresavtal.
issue_date
string
Datumet då dokumentet upprättades. Datumet skall anges som yyyy-MM-dd (2017-09-31).
parties
IList<PartyInformation>
En lista med de parter som omfattas av avtalet, se beskrivning för PartyInformation nedan.
articles
IList<ContractPoint>
En lista med kontraktspunkter, se beskrivning av ContractPoint nedan.

PartyInformation [Modell]

Egenskap
Typ
Beskrivning
person_id
string
Ett identitetsnummer för personen, kan exempelvis vara personnummer, organisationsnummer eller Social Security Number. Används tillsammans med landskoden (country_code) för att identifiera den fysiska- eller juridiska personen.
person_name
string
Den fysiska- eller juridiska personens namn.
address_line_1
string
Den första adressraden. Kan innehålla C/O-referens, gatunamn och lägenhetsnummer med mera.
address_line_2
string
Den andra adressraden. Kan innehålla C/O-referens, gatunamn och lägenhetsnummer med mera.
address_line_3
string
Den tredje adressraden. Kan innehålla C/O-referens, gatunamn och lägenhetsnummer med mera.
postcode
string
Här anges en postkod för parten, en alfanumerisk kombination som används för att ange ett geografiskt område.
city_name
string
Här anges en postort för parten, ett geografiskt område med en egen postadress. Exempelvis namnet på en stad.
country_name
string
Namnet på det land som gäller för adressen.
country_code
string
En landskod på 2 bokstäver enligt ISO 3166-1 avseende det land som adressen gäller för.
state_code
string
En kod på 2 bokstäver som anger staten där postorten finns.
contact_name
string
Namnet på partens kontaktperson, kontaktpersonens namn kan skilja sig från partens namn.
phone_number
string
Telefonnumret till parten eller partens kontaktperson
email
string
En e-postadress för parten eller partens kontaktperson.
vat_number
string
Partens VAT-nummer/registreringsnummer för mervärdesskatt/omsättningsskatt.

ContractPoint [Modell]

Egenskap
Typ
Beskrivning
id
string
Här anges ett id för punkten, kan vara en siffra, en bokstav eller en kombination av siffror. Huvudpunkterna i ett avtal brukar identifieras med nummer medan sektioner i huvudpunkterna brukar identifieras med bokstäver.
title
string
En titel som kortfattat beskriver vad punkten handlar om. Exempelvis Förklaring, Överlåtelsedatum, Köpeskilling.
text_html
string
Här anges själva innehållet i punkten, regeltexten. Html kan användas för att strukturera och presentera innehållet.
sections
IList<ContractPoint>
En lista med underpunkter. En punkt kan nästlas neråt i oändligheten.

JSON-Exempel

{
  "id": "9dcbfd1b-d52e-4e76-9162-2fbf137e1a1f",
  "title": "Example Agreement",
  "issue_date": "2018-01-19",
  "parties": [
    {
      "person_id": "888888-7777",
      "person_name": "Nils Nilsson",
      "address_line_1": "Contractstreet",
      "address_line_2": "",
      "address_line_3": null,
      "postcode": "33333",
      "city_name": "City",
      "country_name": "Sweden",
      "country_code": "SE",
      "state_code": "",
      "contact_name": "Nils Nilsson",
      "phone_number": "",
      "email": "noemail@gmail.com",
      "vat_number": ""
    },
    {
      "person_id": "43545354354",
      "person_name": "Glenn Testman",
      "address_line_1": "address line 1",
      "address_line_2": "address line 2",
      "address_line_3": null,
      "postcode": "Postcode",
      "city_name": "City",
      "country_name": "USA",
      "country_code": "US",
      "state_code": "CA",
      "contact_name": "Contact name",
      "phone_number": "Phonenumber",
      "email": "email@email.com",
      "vat_number": ""
    }
  ],
  "articles": [
    {
      "id": "1.",
      "title": "Explanation",
      "text_html": "This example agreement is intended to regulate a trade between Nils Nilsson and Glenn Testman.",
      "sections": [
        {
          "id": "1.1.",
          "title": null,
          "text_html": "Nils Nilsson is referred to as the Seller in this agreement.",
          "sections": []
        },
        {
          "id": "1.2.",
          "title": null,
          "text_html": "Glenn Testman is referred to as the Buyer in this agreement.",
          "sections": []
        }
      ]
    },
    {
      "id": "2.",
      "title": "Transfer",
      "text_html": "The seller should transfer the following object to the buyer on the date specified below if the buyer has paid the price specified below before this date.",
      "sections": [
        {
          "id": "2.1.",
          "title": null,
          "text_html": "Object: Nissan Micra.",
          "sections": []
        },
        {
          "id": "2.2.",
          "title": null,
          "text_html": "Transfer date: 2018-10-31.",
          "sections": []
        },
        {
          "id": "2.3.",
          "title": null,
          "text_html": "Price: 5 000 SEK.",
          "sections": []
        }
      ]
    }
  ]
}

Exempelkod

// Create a contract
AnnytabDoxContract post = new AnnytabDoxContract();
post.id = Guid.NewGuid().ToString();
post.title = "Example";
post.issue_date = DateTime.UtcNow.ToString("yyyy-MM-dd");
post.parties = new List<PartyInformation>
{
    new PartyInformation
    {
        person_id = "888888-7777",
        person_name = "Nils Nilsson",
        address_line_1 = "Contractstreet",
        address_line_2 = "",
        postcode = "33333",
        city_name = "City",
        country_name = "Sweden",
        country_code = "SE",
        state_code = "",
        contact_name = "Nils Nilsson",
        phone_number = "",
        email = "noemail@gmail.com",
        vat_number = ""
    },
    new PartyInformation
    {
        person_id = "43545354354",
        person_name = "Glenn Testman",
        address_line_1 = "address line 1",
        address_line_2 = "address line 2",
        postcode = "Postcode",
        city_name = "City",
        country_name = "USA",
        country_code = "US",
        state_code = "CA",
        contact_name = "Contact name",
        phone_number = "Phonenumber",
        email = "email@email.com",
        vat_number = ""
    }
};
post.articles = new List<ContractPoint>()
{
    new ContractPoint
    {
        id = "1.",
        title = "Explanation",
        text_html = "The <b>first</b> point in the contract.",
        sections = new List<ContractPoint>
        {
            new ContractPoint
            {
                id = "a)",
                text_html = "Point 1.a in the contract.",
                sections = new List<ContractPoint>{}
            },
            new ContractPoint
            {
                id = "b)",
                text_html = "Point 1.b in the contract.",
                sections = new List<ContractPoint>{}
            }
        }
    },
    new ContractPoint
    {
        id = "2.",
        title = "Transfer Date",
        text_html = "Point number 2 in the contract.",
        sections = new List<ContractPoint>
        {
            new ContractPoint
            {
                id = "2.1.",
                text_html = "Point 2.1 in the contract.",
                sections = new List<ContractPoint>{}
            },
            new ContractPoint
            {
                id = "2.2.",
                text_html = "Point 2.2 in the contract",
                sections = new List<ContractPoint>{}
            }
        }
    }
};

// Convert the object to a byte array
byte[] array = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(post));

// Write to the stream
stream.Write(array, 0, array.Length);

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *