===== eVIR - C-Rent communication ===== Main goal: Create invoices based on the rental data from C-Rent ==== eVIR system access ==== * Test system URL: https://hertz.evir.hu/proba-evir/ * User/Pass: (you got via email) * Start page: list of the received records * API call: * URL: https://hertz.evir.hu/proba-evir/cgi-bin/index.cgi * Function (dok key): ''hertz_crent_invoice_felvesz'' * Authentication token: (you got via email) ==== API communication method ==== API Communication can be a single JSON object via POST method: * URL: ''https://hertz.evir.hu/proba-evir/cgi-bin/index.cgi'' * method: POST * content-type: text/json or application/json The posted content: { "token":".....", "dok":"hertz_crent_invoice_felvesz", "invoice":{ "Partner":{ ... }, ... } } The embedded JSON data structure of field ''invoice'' is detailed below. ==== Return values ==== The return value of the successful C-Rent -> eVIR data transfer must be a JSON data structure in the following format: [ { "status":"OK", "invoice_id":9, .... (other elements) } ] If eVIR could store the data then the return value contains the followings: * "status" key contains "OK" value. * "invoice_id" contains the internal ID of the transferred invoice data. In case of missing "status" key with "OK" value, or the result is not a JSON object, then it means error, the data is not stored. The structure may have additional fields. ---- ==== Invoice JSON data structure ==== ==== Example ==== { "Partner":{ "Id": 183409, "Name": "BC.HU Kft.", "Type": "COMPANY", "TaxNumber": "23882991-2-42", "Address": { "Country": "HU", "PostalCode": "1155", "City": "Budapest", "StreetName": "Wysocki", "PublicPlaceCategory": "utca", "Number": "3" } }, "Payments": [ { "Id": "00600", "Method": "VIS", "Value": 127 } ], "PaymentDate": "2021-06-31", "DeliveryDate": "2021-06-15", "GrossValue": 127, "Currency": "EUR", "ExchangeRate": 348.48, "Language": "HU", "Comment": "Example invoice", "InvoiceAppearance": "PAPER", "InvoiceLines": [ { "Article": { "ArticleNumber": "HTZHU-28", "Description": "Renting a car", "UnitOfMeasure": "db", "Type": "SERVICE", "Vat": "27" "LedgerAccount": "93130", }, "Quantity": 1, "NetValue": 100, "Comment": "Example comment" } ], "Contract": { "ContractNumber": "76999987", "ReservationNumber": "1278954765", "OfficeCode": "HUBUD14", "Cost": "54000", "Events": [ { "PlateNumber": "ABC-123", "CarModel": "Opel", "CarCategory": "C", "CheckOut": { "OfficeCode": "HUBUD14", "Date": "2021-06-13", "Time": "09:35", "Km": 19975 }, "CheckIn":{ "OfficeCode": "HUBUD14", "Date": "2021-06-14", "Time": "15:50", "Km": 21560 }, "PlannedKm": 1500 } ], "Drivers":[ { "Name": "Teszt Elek", "Email": "test@example.com" }, { "Name": "Teszt Elekné" } ] } } ==== Invoice Head ==== ^ Fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | Partner | [[#partner_object|partner object]] | mandatory | Invoice is issued to this parnter | | | Payments | Array of [[#payment_object|payment objects]] | 1 or more elements mandatory | | | PaymentDate | [[#types|date]] | Should not be less than current date | | 2021-08-31 | | DeliveryDate | [[#types|date]] | | | 2021-08-15 | | GrossValue | number | | Gross value calculated from lines, VAT included | 6337 | | Currency | [[#types|currency]] | | | EUR | | ExchangeRate | [[#number|number]] | If currency is HUF then this value must be 1.00 | 1 unit of the above currency is equivalent to X HUF | 348.48 | | Language | [[#types|language]] | | The language of the invoice | EN | | Comment | text | - | Free text, copied into comment of invoice | | | InvoiceId | text | - | unique id of the invoice RE*-1 GS*-1 RE*-2 ... | RE769999876-1 | | InvoiceAppearance | enum | Currently only allowed value is 'PAPER' | [[#onlineszamla|onleszamla]] 2.3.5. | PAPER | | InvoiceLines | Array of [[#invoice_line|invoice lines]] | | | | | Contract | [[#contract_object|contract object]] | | | | ==== Invoice Line ==== ^ Fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | Article | [[#article_object|article object]] | | | | | Quantity | number | | The quantity of the article | 1 | | NetValue | number | | The unit price of the article | 4990.00 | | Comment | text | | Comment for the invoice line | | ==== Partner object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | Id | Number | Positive integer, Mandatory, not changing over time for the same partner | Unique key | 1025 | | Name | text | 90 character | The name of the partner | Example Ltd. | | Type | enum | PERSON or COMPANY | The type of the partner. | COMPANY | | TaxNumber | [[#text|tax number]] | | Hungarian domestic tax number | 12345678-4-23 | | VatGroupMembership | [[#text|tax number]] | | Hungarian VAT group membership | 98765432-5-23 | | CommunityVatNumber | text | 20 character | Community vat number | DE12345678 | | ThirdStateTaxId | text | 20 character | Tax id outside of EU | | | Address | [[#address_object|address object]] | | Address | | ==== Address object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | Country | [[#text|country]] | Mandatory | Address | HU | | PostalCode | text | 10 character, mandatory | Postal code | 2220 | | City | text | 40 character, mandatory | City | Vecsés | | StreetName | text | 60 character, mandatory | Street name | Kossuth Lajos | | PublicPlaceCategory | text | 40 character | The category of the Hungarian public place (eg. street, avenue, square) | utca | | Number | text | 20 character | | 1 | | Building | text | 40 character | | | | Staircase | text | 20 character | | | | Floor | text | 20 character | | | | Door | text | 20 character | | | ==== Article object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | ArticleNumber | text | 20 character | Uniqe identifier of the article in the eVIR | HTZHU-28 | | Description | text | 512 character | Description of the article | Car renting | | UnitOfMeasure | text | 10 character | Unit of measure, existing in the eVIR | db | | Type | enum | Only supported value: SERVICE | | SERVICE | | Vat | [[#vat_type|vat type]] | | Vat code | 27 | | LedgerAccount | text | 10 number | Ledger account number | 93130 | ==== Payment object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | Id | text | numbers | Payment ID for DKS | 00600 | | Method | text | | must exist in eVIR \\ see table below | VIS | | Value | number | | amount paid | 127 | | CardNumber | text | | card number | ??? | | AuthorizationCode | text | | authorization code | ??? | ==== Vat type ==== Vat type is a text value, maximum 20 character. ^ Value ^ Description ^ Example value ^ Meaning ^ | Integer | Vat rate is X % | 27 | 27% VAT | | Text | Vat rate is 0 %, Code expresses the reason of 0% VAT according to eVIR | TAM | See: [[#onlineszamla|onlineszamla]] 2.2.3.2.1. | ==== Contract object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | ContractNumber | text | | Identifier of contract | 769999876 | | ReservationNumber | text | | Identifier of reservation | | | TacoIata | text | | Taco/Iata | | | FrequentFlyer | text | | Frequent flyer | | | OfficeCode | text | Valid office codes | Office code | HUBUD14 | | Cost | text | cost code needed by Mercur | Cost code | 54000 | | Events | Array of [[#renting_event_object|renting event objects]] | | | | | Drivers | Array of [[#driver_object|driver objects]] | | | | ==== Renting Event Object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | PlateNumber | text | | Plate number | ABC-123 | | CarModel | text | | | Opel | | CarCategory | text | | | C | | CheckOut | [[#checkpoint_object|checkpoint object]] | | Check out event details | | | CheckIn | [[#checkpoint_object|checkpoint object]] | | Check in event details | | | PlannedKm | Number | | Planned Km | 150 | ==== Checkpoint Object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | OfficeCode | text | Value office code | Office code | | | Date | [[#text|date]] | | Date | 2021-06-14 | | Time | [[#text|time]] | | Time | 13:50 | | Km | number | | Checkpoint Km | | ==== Driver Object ==== ^ fieldname ^ Datatype ^ Constraints ^ Description ^ Examples ^ | Name | text | | | | | Email | text | Valid email address | | | ==== OnlineSzamla ==== Constraints and values according to NAV Onlineszamla specifications ... ==== Types ==== Basic types used at text scalar values. They are represented as JSON text values. ^ Type ^ Length ^ Text Regexp ^ Description ^ Examples ^ | date | 10 | [0-9]{4}-[0-9]{2}-[0-9]{2} | Using the syntax YYYY-MM-DD (Year-Month-Day). Must be greate than 2010-01-01 | 2021-06-29 | | time | 5 | [0-9]{2}:[0-9]{2} | Hour 0-23 Minute 0-59 | 09:59 | | currency | 3 | [A-Z]{3} | The currency of the invoice according to configured currencies in eVIR | EUR, HUF | | language | 2 | [A-Z]{2} | The language of the invoice. Currently supported values are only 'EN' and 'HU' | EN | | tax_number | 13 | [0-9]{8}-[1-5]-[0-9]{2} | Tax number format used in Hungary | 12345678-1-23 | | country | 2 | [A-Z]{2} | Country code in ISO-3166 | HU | ==== Number ==== Number are used for money values. ... ===== C-rent -> eVIR -> DKS data export ===== New fields: * Payments.*.CardNumber * Payments.*.AuthorizationCode ---- ==== VAT exemption codes ==== ^ code ^ description ^ | AAM | Personal tax exemption | | TAM | “tax-exempt activity” or tax-exempt due to being in public interest or special in nature | | KBAET | intra-Community exempt supply, without new means of transport | | KBAUK | tax-exempt, intra-Community sales of new means of transport | | EAM | tax-exempt, extra-Community sales of goods (export of goods to a non-EU country) | | NAM | tax-exempt on other grounds related to international transactions | | ATK | Outside the scope of VAT | | EUFAD37 | Based on section 37 of the VAT Act, a reverse charge transaction carried out in another Member State | | EUFADE | Reverse charge transaction carried out in another Member State, not subject to Section 37 of the VAT Act | | EUE | Non-reverse charge transaction performed in another Member State | | HO | Transaction in a third country | ---- ==== Payment methods ==== For information only, these payment methods currently exist in eVIR: ^ Method ^ Description in eVIR ^ | AMX | American Express | | VIS | Visa Card | | EAS | Europ Assistance | | CSH | Cash-Eurocheque | | CTW | Cartrawler | | HCC | Hertz Cred.Card/OTTO | | VCH | Voucher | | DIN | Diners Club | | CRE | Bank Transfer | | TRF | TRF | | T00 | Banki átutalás | | T14 | átutalás(14) | | T15 | 15 napos banki átutalás | | T30 | 30 napos banki átutalás | | T04 | 4 napos banki átutalás | | T08 | 8 napos banki átutalás | | EUR | Eurocard/Mastercard | ---- ==== IVCRE table ===== ^ Field ^ Type ^ Description ^ Source ^ example ^ | CRFIR | N2 | System type | eVIR | 10: production 99:devel/test | | CRBKZ | C | | eVIR | F T | | CRRED | D | Issue date of invoice | eVIR | 20220401 | | CREVIR | C8 | Invoice number | eVIR | S0000001 | | CRART | C2 | | eVIR | RA GS ZA | | CRZKS | C/N | Payer customer id | C-Rent | 00600 | | CRZKH | C/N | Income customer id | C-Rent | 214183 | | CRKDN | C/N | Customer id | C-Rent | 214183 | | CRSAK | N | Ledger account number | C-Rent | 93130 | | CRZAC | C3 | HUF | eVIR | HUF | | CRGSN | N | HUF Net amount | eVIR | | | CRGSS | N | HUF VAT amount | eVIR | | CGGSB | N | HUF Gross Amount| eVIR | | CRZAF | C3 | Currency | C-Rent | EUR | | CRKUR | N | Exchange rate | C-Rent | 348.48 | | CFGFN | N | Net amount | C-Rent | | CFGFS | N | VAT amount | eVIR | | CFGFB | N | Gross amount | eVIR | | CRSTC | C3 | VAT code | C-Rent | F27 | | CRFAD | D | Payment date | C-Rent | 20220415 | | CRFAT | N | days between payment and invoice issue date | eVIR | 14 | | CRKOS | C/N | Cost code | C-Rent | 54000 | | CRKZ1 | C | Plate number | C-Rent | XMPL01 | | CRTEX | C | Free text | C-Rent | | | CREVIRO | C | Modified invoice number | C-Rent | | | CRCCZM | C | Payment method? | C-Rent | | | CRAUTOR | C | Authorization code? | C-Rent | | | CRCRNUM | C | Contract number | C-Rent | RE866711746-1 | | CRDKUKZ | C | | - | | | CRDKUDT | N | | - | 0 | ^ Abbreviation ^ Type ^ | Cn | Character with length (n) | | Nn | Numeric with length (n) | | D | Date in format YYYYMMDD | ^ Keyword ^ Description | eVIR | generated by eVIR | | C-Rent | C-Rent provide | ----