Awesome-omni-skill rs-waybill
Integrate with the Georgian Revenue Service (RS.GE) Electronic Waybill SOAP web service. Use this skill when working with waybill creation, activation, closing, querying, goods management, transporter operations, invoices, templates, bar codes, car numbers, and all RS.GE WayBillService API methods.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/rs-waybill" ~/.claude/skills/diegosouzapw-awesome-omni-skill-rs-waybill && rm -rf "$T"
skills/development/rs-waybill/SKILL.mdRS.GE Electronic Waybill Service Integration
Service Overview
This skill provides integration with the Georgian Revenue Service (RS.GE) Electronic Waybill (ელექტრონული ზედნადები) SOAP Web Service.
- WSDL/Endpoint:
https://services.rs.ge/WayBillService/WayBillService.asmx - Protocol: SOAP XML Web Service
- Authentication: Service user credentials (
,su
) passed with every method callsp
Test Credentials
| Parameter | Account 1 | Account 2 |
|---|---|---|
| Username (su) | | |
| Password (sp) | | |
| TIN (tax ID) | | |
Waybill Types
| ID | Type |
|---|---|
| 1 | Internal transfer (შიდა გადაზიდვა) |
| 2 | Delivery with transportation (მიწოდება ტრანსპორტირებით) |
| 3 | Delivery without transportation (მიწოდება ტრანსპორტირების გარეშე) |
| 4 | Distribution - main waybill with sub-waybills (დისტრიბუცია) |
| 5 | Goods return (საქონლის უკან დაბრუნება) |
| 6 | Sub-waybill (ქვე-ზედნადები) |
CRITICAL: Type-Specific Field Requirements
Type 1 - Internal Transfer (შიდა გადაზიდვა)
must be emptyBUYER_TIN- Driver info required for transport types
Type 2 - Delivery (მიწოდება)
: RequiredSTART_ADDRESS
: RequiredEND_ADDRESS
: Required (11 digits, or setDRIVER_TIN
for foreigner)CHEK_DRIVER_TIN=0
: RequiredDRIVER_NAME
: Required (format:CAR_NUMBER
, no dashes!)AA123BB
: 1 (automobile) or other valid transport typeTRANS_ID
Type 3 - Without Transport (ტრანსპორტირების გარეშე) ⚠️
CRITICAL: These fields MUST be EMPTY - otherwise RS.ge returns misleading errors!
:START_ADDRESS
(empty!)""
:END_ADDRESS
(empty!)""
:DRIVER_TIN""
:DRIVER_NAME""
:CAR_NUMBER""
:TRANS_ID0
WARNING: If addresses are provided for Type 3, RS.ge returns error
-1036 "Invalid unit" which is completely misleading! The actual problem is the non-empty addresses.
Type 6 - Sub-waybill (ქვე-ზედნადები)
: Required - must specify parent waybill IDPAR_ID
Valid Unit IDs
| ID | Name | Note |
|---|---|---|
| 1 | ცალი (Piece) | |
| 2 | კგ (Kilogram) | |
| 3 | გრამი (Gram) | |
| 4 | ლიტრი (Liter) | |
| 5 | ტონა (Ton) | |
| 7 | სანტიმეტრი | |
| 8 | მეტრი (Meter) | |
| 9 | კილომეტრი | |
| 10 | კვ.სმ | |
| 11 | კვ.მ (Sq Meter) | |
| 12 | მ³ (Cubic Meter) | |
| 13 | მილილიტრი | |
| 14 | შეკვრა (Package) | |
| 99 | სხვა (Other) | Requires |
Note: Unit ID 6 does NOT exist!
Valid Transport Type IDs
| ID | Name |
|---|---|
| 1 | საავტომობილო (Automobile) |
| 2 | სარკინიგზო (Railway) |
| 3 | საავიაციო (Aviation) |
| 4 | სხვა (Other) - requires |
| 6 | საავტომობილო - უცხო ქვეყნის (Foreign) |
| 7 | გადამზიდავი (Carrier) |
| 8 | მოპედი/მოტოციკლი |
Car Number Format
Georgian plates must be in format
AA123BB (no dashes). Examples:
- Correct:
,AA123BBTT999ZZ - Wrong:
,AA-123-BBaa123bb
Common Error Codes and Solutions
| Code | Meaning | Solution |
|---|---|---|
| -1005 | Buyer TIN not found | Check TIN or set |
| -1012 | Driver info required | Add , |
| -1014 | Invalid driver TIN | Check TIN or set |
| -1026 | Invalid car number | Use format (no dashes) |
| -1035 | Buyer TIN must be empty | For Type 1, clear |
| -1036 | Invalid unit | Often misleading! For Type 3, check that addresses are EMPTY |
| -1037 | TRANS_TXT required | Set when |
| -2006 | Invalid goods status | Set goods (not 0) |
Waybill Statuses
| Code | Status |
|---|---|
| 0 | Saved (შენახული) |
| 1 | Activated (აქტიური) |
| 2 | Completed/Closed (დასრულებული) |
| 8 | Sent to transporter (გადამზიდავთან გადაგზავნილი) |
| -1 | Deleted (წაშლილი) |
| -2 | Cancelled (გაუქმებული) |
Workflow
- Create/Save waybill with
(status=0)save_waybill - Activate with
orsend_waybill
(status=1, gets unique number)send_waybill_vd - Close/Complete with
orclose_waybill
(status=2)close_waybill_vd - Optionally cancel with
or delete withref_waybilldel_waybill - Optionally create invoice with
save_invoice
For transporter flow: seller sends to transporter -> transporter fills fields with
save_waybill_transporter -> activates with send_waybill_transporter -> closes with close_waybill_transporter.
Implementation Guidelines
When implementing RS Waybill integration:
- All methods require
andsu
(service username and password) as the first two parameters.sp - XML format: The service uses XML nodes for complex data structures (waybills, goods lists, wood documents).
- Date format: Use ISO format
(e.g.,yyyy-MM-ddTHH:mm:ss
).2024-10-07T12:08:47 - Status filter format: Comma-delimited with leading/trailing commas for single status:
for one status,,1,
for multiple.,1,2, - Error handling: Check
in response XML. Negative values indicate errors. UseSTATUS
to get error descriptions.get_error_codes - CATEGORY field: Empty or
= normal,0
= wood/timber.1 - IS_MED field: Empty or
= normal,0
= medication.1 - CHEK_BUYER_TIN / CHEK_DRIVER_TIN:
= foreigner,0
= Georgian citizen.1 - TRAN_COST_PAYER:
= buyer pays,1
= seller pays.2 - VAT_TYPE:
= normal,0
= zero-rated,1
= non-taxable.2
For full API method signatures and XML structures, see the reference document:
references/api-methods.md