---
title: "API_MARKSIGN()"
url: "https://gidas.rivile.lt/sistemos_programavimas/funkcijos/vartotoju_funkcijos/api_marksign"
updated: "2025-11-25"
parent: "https://gidas.rivile.lt/sistemos_programavimas/funkcijos/vartotoju_funkcijos.md"
---

# API_MARKSIGN()

[API_MARKSIGN atsisiuntimas (Konsultantams ir atstovams): ](https://manorivile.sharepoint.com/:u:/r/sites/rivilefiles/Shared%20Documents/Downloads/Kitos%20integracijos/Markid/api_marksign.zip?download=1)

### Aprašymas

Saugus ir lengvas PDF dokumentų pasirašymas el. parašu Mark Sign sistemoje vos per kelias minutes.

Sugeneruotas PDF dokumentas įkeliamas į Mark Sign sistemą, kur galima dokumentą pasirašyti naudojant šiuolaikinius pasirašymo metodus.

Pasirašančius asmenis galima nurodyti dokumento įkėlimo  metų arba po jo, nurodant el. paštą į kurį asmuo gaus pasirašymo  nuorodą.

**Sistemos galimybės:**

- Galimybė sugeneruoti ir įkelti PDF dokumentą į Mark Sign sistemą
- Galimybė nurodyti pasirašančius asmenis
- Patikrinti dokumento statusą ar jis pasirašytas, ar ne
- Parsisiųsti pasirašytą dokumentą iš Mark Sign sistemos
- Pašalinti pasirašytą dokumentą iš Mark Sign sistemos

**Privalumai naudojant:**

- Elektroninis parašas, turintis juridinę teisę Europos Sąjungoje
- Dokumentų pasirašymas naudojant kvalifikuotą Smart-ID arba mobilųjį elektroninį parašą
- Nuolat tobulinama sistema
- Galima dokumentus pateikti pasirašymui tiesiogiai iš Rivile GAMA sistemos

**Kaip veikia:**

- Pasirašoma sutartis su Mark Sign
- Gaunama Mark Sign API raktas ir įvedamas į Rivile parametrus
- Formuojami pasirašymo dokumentai

### Reikalavimai

- Rivile GAMA v120
- Versijų prieigos sutartis
- Instaliuotas Manorivile-Gateway

### Nuo ko pradėti

1. Kreiptis į Mark Sign
   - Pasirašyti sutartį
   - Gauti "API Key"
2. Įsidiegti sprendimą Rivile GAMA sistemoje
3. Apsirašyti parametrą MARKSIGN_API

### Diegimas

- Į Rivile GAMA\ALL katalogą įrašomi failai:
  - *api_marksign.fxp*
- Aprašomas testavimo klavišas sutarčių sąraše (*CTRL+Q*):

```
EXECSCRIPT(SUBSTR(komanda_v,ATC(CHR(13),komanda_v,ij_k+1)))
ij_k=999999 && EXIT
ON ERROR

LOCAL lcResult

** Gaunamas Mark Sign API raktas
m.lcResult=""
IF !api_marksign(@lcResult,"GETKEY") && MARKSIGN API raktas
	=l_MESSAGEBOX(lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
m.lcApi=m.lcResult

** Pateikiamas naujas failas pasirašymui
LOCAL lcDokumentoId, lcFile
m.lcResult=""
m.lcFile="C:\RIV_GAMA\parasas.pdf"
IF !api_marksign(@lcResult,"UPLOAD",m.lcApi,m.lcFile)
	=l_MESSAGEBOX(lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
m.lcDokumentoId=lcResult.doc_id

** Pridedamas pasirašantis asmuo
IF !api_marksign(@lcResult,"SIGNER_ADD",m.lcApi,m.lcDokumentoId,'testas@testas.eu','Jonas','Joninskas',.F.)
	=l_MESSAGEBOX(m.lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
m.lcUrl=m.lcResult.invitationUrl

** Atidaroma naršyklė, kad menedžeris pasirašytų iš savo pusės
LOCAL loLink
m.loLink=CREATEOBJECT("hyperlink")
m.loLink.NavigateTo(m.lcUrl)
```

### Funkcijos

**`api_marksign(@lcResult,"GETKEY")`**

- lcResult - jei funkcija grąžina **.T.**, tuomet grąžinamas **Mark Sign API** raktas, jei **.F.** , tai gaunamas klaidos pranešimas **(Privalomas)**

**`api_marksign(@lcResult,"UPLOAD",lcApiKey,lcFile)`**

- lcResult - jei funkcija grąžina .T., tuomet grąžinamas objektas, jei .F., tai gaunamas klaidos pranešimas **(Privalomas)**. lcResult objekto atributai, kai .T.:
  - lcResult.doc_id - Mark Sign dokumento ID
- lcResult.filename - Mark Sign failo pavadinimas
- lcApiKey - **Mark Sign API** raktas **(Privalomas)**
- lcFile - failo kelias **(Privalomas)**

**`api_marksign(@lcResult,"SIGNER_ADD",lcApiKey,lcDokumentoId,lcEmail,[lcName],[lcSurname],[llEmail],[lcSuccessUrl])`**

- lcResult - jei funkcija grąžina **.T.**, tuomet grąžinamas objektas, jei **.F.** , tai gaunamas klaidos pranešimas **(Privalomas)**. lcResult objekto atributai, kai **.T.**:
  - lcResult.invitationUrl - Mark Sign pasirašymo nuoroda
  - lcResult.name - Mark Sign pasirašančio asmens vardas
  - lcResult.surname - Mark Sign pasirašančio asmens pavardė
- lcApiKey - **Mark Sign API** raktas **(Privalomas)**
- lcDokumentoId - Mark Sign dokumento ID **(Privalomas)**
- lcEmail - pasirašančio el. paštas **(Privalomas)**
- lcName - pasirašančio vardas
- lcSurname - pasirašančio pavardė
- llEmail - siųsti nuorodo el. paštu. **.T.** - taip, **.F.** - ne.
- lcSuccessUrl - URL, į kurį klientas nukreipiamas po sėkmingo pasirašymo

**`api_marksign(@lcResult,"CHECK",lcApiKey,lcDokumentoId)`**

- lcResult - jei funkcija grąžina **.T.**, tai lcResult nieko negrąžina,  jei **.F.** , tai gaunamas klaidos pranešimas **(Privalomas)**.
- lcApiKey - **Mark Sign API** raktas **(Privalomas)**
- lcDokumentoId - Mark Sign dokumento ID **(Privalomas)**

**`api_marksign(@lcResult,"DOWNLOAD",lcApiKey,lcDokumentoId)`**

- lcResult - jei funkcija grąžina **.T.**, tuomet grąžinamas tekstas (binary), jei **.F.** , tai gaunamas klaidos pranešimas **(Privalomas)**.
- lcApiKey - **Mark Sign API** raktas **(Privalomas)**
- lcDokumentoId - Mark Sign dokumento ID **(Privalomas)**

**`api_marksign(@lcResult,"REMOVE",lcApiKey,lcDokumentoId)`**

- lcResult - jei funkcija grąžina **.T.**, tai lcResult nieko negrąžina,  jei **.F.** , tai gaunamas klaidos pranešimas **(Privalomas)**.
- lcApiKey - **Mark Sign API** raktas **(Privalomas)**
- lcDokumentoId - Mark Sign dokumento ID **(Privalomas)**

### Pavyzdžiai

**Failo įkėlimas ir pasirašančiųjų priskyrimas:**

```
LOCAL lcResult, lcDokumentoId, lcFile
m.lcResult=""

** Gaunamas Mark Sign API raktas
IF !api_marksign(@lcResult,"GETKEY") && MARKSIGN API raktas
	=l_MESSAGEBOX(lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
m.lcApi=m.lcResult

** Pateikiamas naujas failas pasirašymui
m.lcResult=""
m.lcFile="C:\tmp\sutartis.pdf"
IF !api_marksign(@lcResult,"UPLOAD",m.lcApi,m.lcFile)
	=l_MESSAGEBOX(lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
m.lcDokumentoId=lcResult.doc_id

** Priskiriami pasirašantys asmenys
LOCAL lcMusuNuoroda
m.lcResult=""

** Pasirašantis pirmas asmuo
IF !api_marksign(@lcResult,"SIGNER_ADD",m.lcApi,m.lcDokumentoId,'testas@testas.eu','Jonas','Joninskas',.F.,'')
	=l_MESSAGEBOX(m.lcResult,16,'Klaida!')
	RETURN .F.
ENDIF 

m.lcMusuNuoroda=m.lcResultSign.invitationUrl

** Pasirašantis antras asmuo, kuris gaus pasirašymo nuorodą į el. paštą
IF !api_marksign(@lcResult,"SIGNER_ADD",m.lcApi,m.lcDokumentoId,'petras@testas.eu','Petras','Petrinskas',.T.,'')
	=l_MESSAGEBOX(m.lcResultSign,16,'Klaida!')
	RETURN .F.
ENDIF 
 
** Atidaroma naršyklė, kad menedžeris pasirašytų iš savo pusės
LOCAL loLink
m.loLink=CREATEOBJECT("hyperlink")
m.loLink.NavigateTo(m.lcMusuNuoroda)

return .t.
```

**Patikrinamas dokumento pasirašymo statusas. Jei dokumentas yra pasirašytas, jis parsiunčiamas ir ištrinamas iš Mark Sign:**

** lcDokumentoId** - turi būti išsaugotas Rivile Gamoje.

```**
LOCAL lcResult
m.lcResult=""

** Gaunamas Mark Sign API raktas
IF !api_marksign(@lcResult,"GETKEY") && MARKSIGN API raktas
	=l_MESSAGEBOX(lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
m.lcApi=m.lcResult

** lcDokumentoId - turi būti užsaugotas Rivilėje

** Tikrinamas dokumento pasirašymo statusas 
IF !api_marksign(@lcResult,"CHECK",m.lcApi,m.lcDokumentoId)
	** Dar nepasirašė arba nėra informacijos
	RETURN .F.
ENDIF

** Atsiunčiamas pasirašytas dokumentas
LOCAL lcFile
m.lcResult=""
IF !api_marksign(@lcResult,"DOWNLOAD",m.lcApi,m.lcDokumentoId)
	=l_MESSAGEBOX(lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
m.lcFile="c:\tmp\sutartis_signed.pdf"
IF FILE(m.lcFile)
	ERASE(m.lcFile)
ENDIF
=STRTOFILE(m.lcResult,m.lcFile)

** Ištrinamas pasirašytas dokumentas iš Mark Sign sistemos
m.lcResult=""
IF !api_marksign(@lcResult,"REMOVE",m.lcApi,m.lcDokumentoId)
	=l_MESSAGEBOX(lcResult,16,'Klaida!')
	RETURN .F.
ENDIF
```

### Apmokestinimas

Apmokestinama pagal Rivile API užklausas. Dokumento užkėlimas, pasirašymo tikrinimas, dokumento atsisiuntimas ir  dokumento ištrynimas generuoja po vieną Rivile API užklausą.
