• API დოკუმენტაცია ფინანსური ინსტიტუტებისთვის

  • მარტივი API დისტანციური განვადების სისტემაში ჩართვის მსურველი ფინანსური ინსტიტუტებისთვის

ფოკუსირება გაციფრულებაზე

ჩვენთან თანამშრომლობა შესაძლებლობას აძლევს ბანკებს გახდნენ ინოვაციური, ხელმისაწვდომი და უსაფრთხო ციფრული საბანკო სერვისების წამყვანი პროვაიდერი, რომლის მეშვეობითაც მომხმარებელს მარტივად შეუძლია მართოს და მიიღოს ფინანსური მომსახურება.

ძირითადი მიზნები და პერსპექტივები სამომავლო თანამშრომლობისთვის:

* ხარჯების დაზოგვა: ფინტექსთან თანამშრომლობით შესაძლებელია მუშაობა ფიზიკურად წარმოდგენილი ფილიალების გარეშე, რაც ამცირებს ზედმეტ ხარჯებს, როგორიცაა: ქირა, კომუნალური მომსახურება და პერსონალის ხარჯი. აგრეთვე, ტრადიციული ბანკებისგან განსხვავებით, ფინტეკი უფრო დაბალი საკომისიოს და საპროცენტო განაკვეთების შეთავაზების საშუალებას იძლევა.

* გაზრდილი ეფექტურობა: ფინტეკის მიერ შემოთავაზებული ტექნოლოგიის საშუალებით ბევრი ოპერაცია გამარტივდება და მოხდება პროცესების ავტომატიზაცია. ყოველივე აღნიშნული ტრანზაქციების სწრაფად და ეფექტურად შესრულების საშუალებას იძლევა და ამცირებს მანუალური ჩარევის საჭიროებებს.

* გაზრდილი კონკურენცია: ფინტექსთან თანამშრომლობას შეუძლია საბანკო ინდუსტრიაში კონკურენციის ზრდის გამოწვევა, რაც თავისთავად ნიშნავს მომხმარებლებისთვის ინოვაციური პროდუქტებისა და სერვისების შეთავაზებების ზრდას, ფასების დაწევას და მომსახურების ხარისხის გაუმჯობესებას.

* მომხმარებელთა გაზრდილი ბაზა: ფინტექსთან თანამშრომლობა მომხმარებლებისთვის ხელმისაწვდომია ნებისმიერი ადგილიდან, ნებისმიერ დროს, მობილური მოწყობილობების ან კომპიუტერების მეშვეობით. ეს საშუალებას გვაძლევს გავცდეთ კლიენტების ლოკალურ სეგმენტს და მივაღწიოთ მომხმარებელთა გაზრდილ რაოდენობას, რაც თავსითავსდ გულისხმობს პოტენციური კლიენტების გაზრდილ რაოდენობას.

API დოკუმენტაცია

Description:

ამ მეთოდის საშუალებით გაიგებთ მიმდინარე ლიმიტებს განვადების თანხაზე და ხანგრძლივობაზე


Method: GET

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

Body Parameters:


Success Code: 200

Response Body:

{
installment_limit: {
min: 200
max: 5000
},
installment_duration_limit: {
min: 6,
max: 12
}
}

სადაც:
installment_limit - მინიმალური და მაქსიმალური თანხა (ლარი)
installment_duration_limit - მინიმალური და მაქსიმალური ვადა (თვე)

Error Codes: 401, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}


500 - 511

{
    "message": "Server Error."
}

Description:

ამ მეთოდით შეგიძლიათ შეცვალოთ მიმდინარე განვადების ლიმიტები


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
    "installment_limit_min":500,
    "installment_limit_max":4000,
    "duration_limit_min":6,
    "duration_limit_max":48
}

Body Parameters:

installment_limit_min - აუცილებელი პარამეტრი. მინიმალური განვადების თანხა
installment_limit_max - აუცილებელი პარამეტრი. მაქსიმალური განვადების თანხა
duration_limit_min - აუცილებელი პარამეტრი. მინიმალური განვადების ვადა (თვე)
duration_limit_max - აუცილებელი პარამეტრი. მაქსიმალური განვადების ვადა (თვე)

Success Code: 200

Response Body:

{
    "message": "installment limits updated successfully"
}

Error Codes: 401, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

მოაქვს სისტემაში ჩართული მერჩანტების სია


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
    "is_added_to_bank":1,
    "page":1
}

Body Parameters:

is_added_to_bank - აუცილებელი პარამეტრი. შესაძლო მნიშვნელობები: ციფრი 0 ან 1  
მიშვნელობები:
0 - მაღაზიები, რომლებიც ჯერ არ არიან თქვენი პარტნიორები;
1 - პარტნიორი მაღაზიები;
        
page - გვერდების რაოდენობა. თუ არ გადაეცემა, დეფოლტ მნიშვნელობა არის 1. 
საჭიროების მიხედვით იცვლება სერვერის პასუხიდან გამომდინარე. 
გვერდების რაოდენობა და მიმდინარე გვერდი აგრეთვე ბრუნდება სერვერის პასუხში

Success Code: 200

Response Body:

{
    "selected_category": "მაღაზიები, რომლებიც ჯერ არ არიან თქვენი პარტნიორები",
    "stores_count": 3,
    "pages_count": 1,
    "current_page": 1,
    "stores_per_page": 20,
    "stores": [
        {
            "uuid": "3cd365f4-8a79-4b1b-81c2-28d4aff1dd94",
            "store_title": "სატესტო მაღაზია -3",
            "store_owner_fullname": "ტესტი-3",
            "store_legal_status": "შპს",
            "store_current_address": "სატესტო მისამართი",
            "tax_number": "666666666",
            "phone": "666666666",
            "verified_by": "ბანკის დასახელება",
            "creation_date": "2022-09-24 10:49:09",
            "last_update_date": "2022-10-12 16:02:06"
        },
        {
            "uuid": "1efd90e1-eb68-4d83-b33a-5a10b075af63",
            "store_title": "სატესტო მაღაზია -2",
            "store_owner_fullname": "ტესტი2",
            "store_legal_status": "ი.მ",
            "store_current_address": "-",
            "tax_number": "55555555555",
            "phone": "455555555",
            "verified_by": "ბანკის დასახელება",
            "creation_date": "2022-09-24 10:47:35",
            "last_update_date": "2022-09-24 10:47:35"
        },
        {
            "uuid": "5b9ef83d-8f24-438c-9588-17cd5b5b2481",
            "store_title": "სატესტო მაღაზია -1",
            "store_owner_fullname": "ტესტი ტესტი",
            "store_legal_status": "შპს",
            "store_current_address": "-",
            "tax_number": "444444444",
            "phone": "444444444",
            "verified_by": "ბანკის დასახელება",
            "creation_date": "2022-09-24 10:46:29",
            "last_update_date": "2022-09-24 10:46:29"
        }
    ]
}

Error Codes: 401, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 404
{
    "selected_category": "პარტნიორი მაღაზიები",
    "stores_count": 0,
    "pages_count": 0
    "current_page": 0
    "stores_per_page": 20,
    "stores": []
}

status: 422

{
    "message": "wrong request data."
}

500

{
    "message": "Server Error."
}

Description:

მეთოდი საშუალებას იძლევა სისტემაში რეგისტრირებული მერჩანტები ჩართოთ თქვენი განვადების სისტემაში, მათთან ხელშეკრულების გაფორმების შემდეგ.


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
    "uuid":"3cd365f4-8a79-4b1b-81c2-28d4aff1dd94"
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. მერჩანტის უნიკალური ნომერი. 

Success Code: 200

Response Body:

{
    "message": "სატესტო მაღაზია -3 added to bank successfully"
}

Error Codes: 401, 403, 409, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 403

{
    "message": "this operation is not available in test mode"
}

status: 409

{
    "message": "სატესტო მაღაზია -3 already added"
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

მეთოდი საშუალებას იძლევა მერჩანტი ამოაგდოთ თქვენი განვადების სისტემიდან.


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
    "uuid":"3cd365f4-8a79-4b1b-81c2-28d4aff1dd94"
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. მერჩანტის უნიკალური ნომერი

Success Code: 200

Response Body:

{
    "message": "სატესტო მაღაზია -3 removed from bank successfully"
}

Error Codes: 401, 403, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 403

{
    "message": "this operation is not available in test mode"
}

status: 404

{
    "message": "can not remove store. store not found in partner's list"
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

მოაქვს იმ კლიენტების განვადების განაცხადები, რომლებმაც აირჩიეს თქვენი საფინანსო დაწესებულება.


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"installment_status" :0,
"page":1
}

Body Parameters:

installment_status - აუცილებელი პარამეტრი. შესაძლო მნიშვნელობები: ციფრი 0-7 დიაპაზონში. 
მიშვნელობები:
        0 - ყველა;
        1 - ბანკში გაგზავნილი;
        2 - დამტკიცებული;
        3 - ხელმოწერილი კლიენტის მიერ;
        4 - უარყოფილი კლიენტის მიერ;
        5 - დამუშავების პროცესში;
        6 - ნივთი გატანილია;
        7 - დაუარებული ბანკის მიერ;
		
page - მიმდინარე გვერდი. თუ არ გადაეცემა, დეფოლტ მნიშვნელობა არის 1.
 საჭიროების მიხედვით იცვლება სერვერის პასუხიდან გამომდინარე. 
გვერდების რაოდენობა და მიმდინარე გვერდი აგრეთვე ბრუნდება სერვერის პასუხში

Success Code: 200

Response Body:

{
    "available_installment_statuses": [
        "0 - ყველა",
        "1 - ბანკში გაგზავნილი",
        "2 - დამტკიცებული",
        "3 - ხელმოწერილი კლიენტის მიერ",
        "4 - უარყოფილი კლიენტის მიერ",
        "5 - დამუშავების პროცესში",
        "6 - ნივთი გატანილია",
        "7 - დაუარებული ბანკის მიერ"
    ],
    "selected_installment_status": "ყველა",
    "installments_count": 2,
    "installments_per_page": 20,
    "pages_count": 1,
    "current_page": 1,
    "installments": [
        {
            "uuid": "7795a51d-830a-4758-95c8-6a5abec9e5e4",
            "client": "test user",
            "installment_status": "ბანკში გაგზავნილი",
            "creation_date": "2022-09-24 11:50:05",
            "last_update_date": "2022-09-24 11:50:05"
        },
        {
            "uuid": "acfb0e57-3a2e-4825-9e5f-0c55710fe2e2",
            "client": "test user",
            "installment_status": "დაუარებული ბანკის მიერ",
            "creation_date": "2022-09-24 11:25:01",
            "last_update_date": "2022-09-24 11:25:01"
        }
    ]
}

Error Codes: 401, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 404

{
    "available_installment_statuses": [
        "0 - ყველა",
        "1 - ბანკში გაგზავნილი",
        "2 - დამტკიცებული",
        "3 - ხელმოწერილი კლიენტის მიერ",
        "4 - უარყოფილი კლიენტის მიერ",
        "5 - დამუშავების პროცესში",
        "6 - ნივთი გატანილია",
        "7 - დაუარებული ბანკის მიერ"
    ],
    "selected_installment_status": "დამუშავების პროცესში",
    "installments_count": 0,
    "installments_per_page": 20,
    "pages": 0
    "current_page": 0
    "installments": []
}

status: 422

{
    "message": "wrong request data."
}

500

{
    "message": "Server Error."
}

Description:

მეთოდი აბრუნებს განაცხადის დეტალებს, კერძოდ:

  • products_price - არჩეული პროდუქტების ჯამური ღირებულება
  • client_participation - კლიენტის თანამონაწილეობა
  • payment_day - სასურველი გადახდის დღე
  • installment_duration - განვადების თვეების რაოდენობა
  • products - არჩეული პროდუქტების სია
  • store - ინფორმაცია მერჩანტის შესახებ
  • client - ინფორმაცია კლიენტის შესახებ
  • client_incomes_by_rs_ge - ინფორმაცია კლიენტის შემოსავლები შესახებ ( ინფორმაცია შემოსავლების სამსახურიდან )
  • client_incomes_last_update_date - კლიენტის შემოსავლების ბოლო განახლების თარიღი

Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"uuid" : "7795a51d-830a-4758-95c8-6a5abec9e5e4"
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. განაცხადის უნიკალური ნომერი.

Success Code: 200

Response Body:

შენიშვნა: თუ კლიენტს არ აქვს დაფიქსირებული შემოსავლები client_incomes_by_rs_ge და client_incomes_last_update_date 
მნიშვნელობები იქნება - null. თუ კლიენტის შემოსავლები აღემატება 150 000 ლარს მაშინ
client_incomes_by_rs_ge -ს მნიშვნელობა იქნება: "განაცემების ჯამი აღემატება 150 000 ლარს" { "installment_status": "ბანკში გაგზავნილი", "products_price": "4906.00", "client_participation": "0.00", "payment_day": 12, "installment_duration": 12, "products": [ { "name": "dg then going", "amount": 2, "price": 2453, "total": 4906 } ], "store": { "title": "სატესტო მაღაზია -3", "tax_number": "666666666", "phone": "666666666", "store_current_address": "სატესტო მისამართი" }, "client": { "name": "test", "sname": "user", "private_number": "11111111111", "phone": "111111111", "verified_by": "ვერიფიკატორის დასახელება" }, "client_incomes_by_rs_ge": [ { "Period": "201905", "Employer_Name": "სატესტო კოდი1", "Employer_Tin": "206322102", "Income_Type": "ხელფასი", "Taxable_Total_Income": "1200", "Income": "1200", "First_Decl_Date": "6/15/2019 12:00:00 AM", "Dec_Type": "პირველადი", "Last_Decl_Date": "6/15/2019 12:00:00 AM", "Vat_Payed": "0", "Income_Tax_Payed": "0", "Small_Status": null, "Small_Status_Sdate": null, "Small_Status_Edate": null, "Activity_Type": null, "Small_Bussines_Revenue": "0" }, { "Period": "201904", "Employer_Name": "სატესტო კოდი1", "Employer_Tin": "206322102", "Income_Type": "ხელფასი", "Taxable_Total_Income": "1200", "Income": "1200", "First_Decl_Date": "5/15/2019 12:00:00 AM", "Dec_Type": "პირველადი", "Last_Decl_Date": "5/15/2019 12:00:00 AM", "Vat_Payed": "0", "Income_Tax_Payed": "0", "Small_Status": null, "Small_Status_Sdate": null, "Small_Status_Edate": null, "Activity_Type": null, "Small_Bussines_Revenue": "0" } ], "client_incomes_last_update_date": "2022-09-25 14:26:26" }

Error Codes: 401, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 404

{
    "message": "Installment not found"
}

status: 422 

{
    "message": "wrong request data."
}

500

{
    "message": "Server Error."
}

Description:

ახდენს განაცხადის დაუარებას. კლიენტის მხარეს ენიჭება სტატუსი - დაუარებული ბანკის მიერ


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"uuid" :"7795a51d-830a-4758-95c8-6a5abec9e5e4"
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. განაცხადის უნიკალური ნომერი

Success Code: 200

Response Body:

{
"current_installment_status":"უარყოფილი ბანკის მიერ",
"message":"installment rejected successfully"
}

Error Codes: 401, 403, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 403

{
"current_installment_status":"დამტკიცებული",
"message":"can not reject installment"
}

status: 404

{
    "message": "Installment not found"
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

როგორც კი განვადების განაცხადს დაარეგისტრირებთ თქვენს საბანკო სისტემაში, აუცილებელია ამ მეთოდის გამოყენება, რათა გაგრძელდეს პროცესი და კლიენტის მხარეს შეიცვალოს სტატუსი. კერძოდ, განაცხადს მიენიჭება სტატუსი: "დამუშავების პროცესში"


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"uuid" :"7795a51d-830a-4758-95c8-6a5abec9e5e4"
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. განაცხადის უნიკალური ნომერი

Success Code: 200

Response Body:

{
"current_installment_status" : "დამუშავების პროცესში",
"message" : "installment status changed successfully"
}

Error Codes: 401, 403, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 403

{
"current_installment_status":"ბანკში გაგზავნილი",
"message" : "can not change installment status"
}

status: 404

{
    "message": "Installment not found"
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

ამ მეთოდით შეგიძლიათ გაიგოთ დროის სხვაობა თქვენ და ჩვენ სერვერს შორის.

გაითვალისწინეთ, რომ თუ მიღებული დროის სხვაობა წამებში არ იმყოფება -2< time_difference >2 დიაპაზონში, ხელშეკრულების და გრაფიკის, ასევე ხელშეკრულების pdf ფაილის გაგზავნას ვერ მოახერხებთ.

ჩვენი სერვერის დრო სინქრონიზებულია 0.pool.ntp.org NTP სერვერთან.


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"timestamp" :12125455
}

Body Parameters:

timestamp - აუცილებელი პარამეტრი. მიმდინარე დროის შტამპი

Success Code: 200

Response Body:

{
"time_difference" : 1
}

Error Codes: 401, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

ეს პროცედურა სრულდება იმ შემთხვევაში, როცა სესხი განვადების მოთხოვნის საფუძველზე დამტკიცებულია და გამზადებულია გასაცემად

გადასაცემი პარამეტრების მომზადება (მაგალითებში გამოყენებულია პროგრამირების ენა - php )

$agreement = ხელშეკრულება - html ( დასაშვები თეგები: div, p, b, strong, br, hr, ul, li, h1-h6 ) ფორმატირებული ტექსტი სტილების გარეშე. იხილეთ ნიმუში
$schedule = გრაფიკი - JSON ARRAY STRING

გრაფიკის სტრუქტურა უნდა იყოს შემდეგი:

$schedule =
[
{"InstallmentNo":"0","OperDate":"01-28-2023","Disburse":"600.00","ProcFee":"0.00","Principal":"0.00","TotalCover":"0.00","OSBalance":"600.00"},
{"InstallmentNo":"1","OperDate":"03-10-2023","Disburse":"0.00","ProcFee":"6.50","Principal":"50.00","TotalCover":"56.50","OSBalance":"550.00"}
];
 

სადაც:

  • InstallmentNo - ჩანაწერის რიგითი ნომერი
  • OperDate - გადახდის თარიღი
  • Disburse - გაცემა
  • ProcFee - საკომისიო
  • Principal - პროცენტი
  • OSBalance - ბალანსი
     

გამოთვალეთ ხელშეკრულების და გრაფიკის ჰეშები. ალგორითმი - sha256:

$agreement_sha256 = hash('sha256',$agreement,false);
$schedule_sha256 = hash('sha256',$schedule,false);

დააგენერირეთ მიმდინარე დროის შტამპი:
$timestamp = getTimestamp(); 

შექმენით array ობიექტი:

 $checksum = [

            "timestamp" => $timestamp,
            "agreement_sha256" => $agreement_sha256,
            "schedule_sha256" => $schedule_sha256,

        ];
        
გადაიყვანეთ JSON ფორმატში - $checksum_json = jsonEncode($checksum);
        

ამის შემდეგ ხდება $checksum_json - ის შიფრაცია ჩვენ მიერ მოწოდებული ღია გასაღებით. შიფრაციის ფორმატი: RSA - padding - OPENSSL_PKCS1_PADDING
        
$encrypted_sha_and_timestamp = encrypt_RSA_public($checksum_json) ფუნქციამ რეზულტატი უნდა დააბრუნოს base64 ფორმატში!

შენიშვნა: $encrypted_sha_and_timestamp საჭიროა გადმოცემული მონაცემების სისწორის დასადგენად. ამისთვის ჩვენი სერვერის მხარეს ტარდება შემდეგი პროცედურები: 1- $encrypted_sha_and_timestamp მნიშვნელობის დეშიფრაცია დახურული გასაღებით; 2- გამოითვლება გადმოცემული ხელშეკრულების და გრაფიკის ჰეში, დაფიქსირდება მიღების დროის შტამპი; 3- მოხდება მიღებული მნიშვნელობების შედარება $encrypted_sha_and_timestamp დეშიფრაციის შედეგად მიღებულ მონაცემებთნ. თუ მნიშვნელობები ერთმანეთს ემთხვევა და დროის შტამპებს შორის სხვაობა წამებში იქნება -2< სხვაობა >2 დიაპაზონში პროცესი დასრულდება წარმატებით.

ამით გადასაცემი პარამეტრების მომზადება დასრულებულია


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"uuid" :"7795a51d-830a-4758-95c8-6a5abec9e5e4",
"agreement": $agreement,
"schedule": $schedule,
"encrypted_sha_and_timestamp": $encrypted_sha_and_timestamp
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. განაცხადის უნიკალური ნომერი
agreement - აუცილებელი პარამეტრი. ხელშეკრულება ტექსტურ ფორმატში (იხილეთ Description)
schedule - აუცილებელი პარამეტრი. გადახდის გრაფიკი  (იხილეთ Description)
encrypted_sha_and_timestamp - აუცილებელი პარამეტრი (იხილეთ Description)

Success Code: 200

Response Body:

{
    "message": "agreement and schedule posted successfully"
}

Error Codes: 401, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 404

{
    "message": "Installment not found"
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

ეს პროცედურა სრულდება იმ შემთხვევაში, როცა გაგზავნილია ხელშეკრულება და გრაფიკი.

გადასაცემი პარამეტრების მომზადება:

დააგენერირეთ ხელშეკრულების ფაილი pdf ფორმატში იმ ტექსტისგან ($agreement), რომელის მომზადებაც აღწერილია წინა ინსტრუქციაში - ხელშეკრულების და გრაფიკის გაგზავნა. დაადეთ ციფრული ხელმოწერა თქვენი სერთიფიკატით და გადაიყვანეთ base64 ფორმატში.

იხილეთ ხელმოწერილი ფაილის ნიმუში

იხილეთ ტექსტი რომლითაც მოხდა pdf ფაილის გენერაცია

$agreement_base64 = chunk_split(base64_encode("path to file"));

გამოთვალეთ ციფრულად ხელმოწერილი ხელშეკრულების pdf ფაილის ჰეში. ალგორითმი - sha256:

$agreement_sha256 = hash_file( 'sha256', 'path to file' );

დააგენერირეთ მიმდინარე დროის შტამპი:
$timestamp = getTimestamp(); 

შექმენით array ობიექტი:

 $checksum = [

            "timestamp" => $timestamp,
            "agreement_sha256" => $agreement_sha256,
                 ];
        
გადაიყვანეთ JSON ფორმატში - $checksum_json = jsonEncode($checksum);
        

ამის შემდეგ ხდება $checksum_json - ის შიფრაცია ჩვენ მიერ მოწოდებული ღია გასაღებით. შიფრაციის ფორმატი: RSA - padding - OPENSSL_PKCS1_PADDING
        
$encrypted_sha_and_timestamp = encrypt_RSA_public($checksum_json) ფუნქციამ რეზულტატი უნდა დააბრუნოს base64 ფორმატში!

შენიშვნა: $encrypted_sha_and_timestamp საჭიროა გადმოცემული მონაცემების სისწორის დასადგენად. ამისთვის ჩვენი სერვერის მხარეს ტარდება შემდეგი პროცედურები: 1- $encrypted_sha_and_timestamp მნიშვნელობის დეშიფრაცია დახურული გასაღებით; 2- გამოითვლება გადმოცემული ხელშეკრულების და გრაფიკის ჰეში, დაფიქსირდება მიღების დროის შტამპი; 3- მოხდება მიღებული მნიშვნელობების შედარება $encrypted_sha_and_timestamp დეშიფრაციის შედეგად მიღებულ მონაცემებთნ. თუ მნიშვნელობები ერთმანეთს ემთხვევა და დროის შტამპებს შორის სხვაობა წამებში იქნება -2< სხვაობა >2 დიაპაზონში პროცესი დასრულდება წარმატებით.

ამით გადასაცემი პარამეტრების მომზადება დასრულებულია


Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"uuid" :"7795a51d-830a-4758-95c8-6a5abec9e5e4",
"agreement_base64": $agreement_base64,
"encrypted_sha_and_timestamp" : $encrypted_sha_and_timestamp
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. განაცხადის უნიკალური ნომერი
agreement_base64 - ციფრულად ხელმოწერილი ხელშეკრულება (pdf) გადაყვანილი base64 ფორმატში (იხილეთ Description)
encrypted_sha_and_timestamp - დაშიფრული დროის შტამპი და ფაილის ჰეში (იხილეთ Description)

Success Code: 200

Response Body:

{
    "message": agreement saved successfully"
}

შენიშვნა: კლიენტის მხარეს განაცხადს მიენიჭება სტატუსი: დამტკიცებული. შემდგომი სტატუსების მისაღებად იხილეთ მომდევნო ინსტრუქცია.

Error Codes: 401, 403, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 403 

{
    "message": "time difference more then 2 seconds" or "file hash value is not valid"
}

status: 404

{
    "message": "Installment not found" or  "message": "agreement end schedule not found! please send them before!"
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}

Description:

მას შემდეგ, რაც გაიგზავნება ხელშეკრულება, გრაფიკი და ხელშეკრულების ციფრულად ხელმოწერილი pdf ფაილი, კლიენტის მხარეს განაცხადს მიენიჭება სტატუსი: დამტკიცებული.

შემდგომში, განაცხადმა შესაძლოა მიიღოს მხოლოდ შემდეგი სტატუსები:

  • ხელმოწერილი კლიენტის მიერ (როცა კლიენტი დაეთანხმა ხელშეკრულებას და გრაფიკს)
  • უარყოფილი კლიენტის მიერ ( როცა კლიენტი არ დაეთანხმა ხელშეკრულებას და გრაფიკს)
  • ნივთი გატანილია (როცა მაღაზიამ/მერჩანტმა დაადასტურა ნივთის გაცემა)

Method: POST

Endpoint: ხელმისაწვდომია მხოლოდ სისტემაში ჩართული ფინანსური ინსტიტუტებისთვის


Request Header:

{
Accept: application/json,
Content-Type: application/json,
Authorization: Bearer bearer_token
}

Header Parameters:

bearer_token (მიმდინარე ვალიდური წვდომის თოქენი)

Request Body:

{
"uuid" :"7795a51d-830a-4758-95c8-6a5abec9e5e4"
}

Body Parameters:

uuid - აუცილებელი პარამეტრი. განაცხადის უნიკალური ნომერი

Success Code: 200

Response Body:

{
    "installment_status": "ნივთი გატანილია"
}

Error Codes: 401, 404, 422, 500-511

Error Responses:

status: 401 

{
    "message": "Unauthenticated."
}

status: 404

{
    "message": "Installment not found"
}

status: 422 

{
    "message": "wrong request data."
}

500 - 511

{
    "message": "Server Error."
}