diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/RELAYHUB/cRelayHub.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/RELAYHUB/cRelayHub.vb
new file mode 100644
index 00000000..ee8e2e9e
--- /dev/null
+++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/RELAYHUB/cRelayHub.vb
@@ -0,0 +1,241 @@
+Imports Newtonsoft.Json
+
+Public Class cRelayHub
+
+ Public Class cRelayHubDocument
+ Public Property type As String
+ Public Property base64String As String
+ Public Property filename As String
+ Public Property fileType As String
+ End Class
+
+ Public Class cRelayHubTransaction
+ Public Property ioPartner As String
+ Public Property ioDivision3 As String
+ Public Property ioReference As String
+ End Class
+
+ Public Class cRelayHubObjectIdentification
+ Public Property objectName As String
+ Public Property objectAlias As String
+ Public Property declarationType As String
+ Public Property referenceNumberOverlay As String
+ Public Property username As String
+
+ End Class
+
+ Public Class cRelayHubAgentContact
+ Public Property contactPersonName As String
+ Public Property contactPersonPhoneNumber As String
+ Public Property contactPersonPosition As String
+ End Class
+
+ Public Class cRelayHubCost
+ Public Property costAmount As String
+ Public Property costCurrency As String
+ End Class
+
+ Public Class cRelayHubHeaderData
+ Public Property agentContact As cRelayHubAgentContact
+ Public Property declarantIsConsignee As Boolean
+ Public Property representationRelationshipCode As String
+ Public Property inputTaxDeduction As String
+ Public Property procedureCodeRequested As String
+ Public Property goodsStatus As String
+ Public Property costs As List(Of cRelayHubCost)
+ Public Property transportMeansArrivalIdentity As String
+ Public Property transportMeansNationalityCode As String
+ Public Property previousAdministrativeReferenceType As String
+ Public Property previousAdministrativeReferenceNumber As String
+ Public Property destinationFederalState As String
+ Public Property destinationCountry As String
+ Public Property departureCountry As String
+ Public Property addressedCustomsOffice As String
+ End Class
+
+ Public Class cRelayHubAddress
+ Public Property addressType As String
+ Public Property participantEORI As String
+ Public Property participantSubsidiaryNumber As String
+ Public Property companyName As String
+ Public Property streetAndNumber As String
+ Public Property countryCode As String
+ Public Property postalCode As String
+ Public Property city As String
+ End Class
+
+ Public Class cRelayHubDeclaration
+ Public Property objectIdentification As cRelayHubObjectIdentification
+ Public Property headerData As cRelayHubHeaderData
+ Public Property addresses As List(Of cRelayHubAddress)
+ End Class
+
+ Public Class cRelayHubAdditionalData
+ Public Property transaction As cRelayHubTransaction
+ Public Property declaration As List(Of cRelayHubDeclaration)
+ End Class
+
+ Public Class cRelayHubJobOrderRequest
+ Public Property referenceNo As String
+ Public Property dispatchCountry As String
+ Public Property destinationCountry As String
+ Public Property regimeType As String
+ Public Property customer As String
+ Public Property documents As List(Of cRelayHubDocument)
+ Public Property additionalData As cRelayHubAdditionalData
+ End Class
+
+ Public Class cRelayHubJobOrderResponse
+ Public Property id As String
+ Public Property status As String
+ Public Property createdAt As String
+ Public Property referenceNo As String
+ End Class
+
+ Public Class cRelayHubApiResult
+ Public Property Success As Boolean
+ Public Property StatusCode As Integer
+ Public Property Message As String ' Zusammenfassung
+ Public Property Details As String ' Volltext/Fehlermeldung
+ Public Property Data As cRelayHubJobOrderResponse ' Nur bei 201
+ End Class
+
+ Public Class cRelayHub_sendToRelayHub_JobOrderRequest
+
+ 'Shared API_KEY = "2a6fe6bf-6547-4d56-b14a-8a18f94f9e94"
+ Shared API_URL = "dev-relayhub.singlewindow.io/api"
+
+ Public Shared Function query_declarations(request As cRelayHubJobOrderRequest) As cRelayHubApiResult
+ Dim result As New cRelayHubApiResult()
+ Try
+ ' This example assumes the Chilkat API to have been previously unlocked.
+ ' See Global Unlock Sample for sample code.
+ VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
+
+ Dim success As Boolean
+
+
+ ' HTTP-Client initialisieren
+ Dim http As New Chilkat.Http
+ ' JSON vorbereiten
+
+ ' Request-Objekt in JSON-String umwandeln
+ Dim jsonPayload As String = JsonConvert.SerializeObject(request)
+ MsgBox(jsonPayload)
+ ' Anfrage senden
+ Dim response As Chilkat.HttpResponse = http.PostJson2(API_URL & "/job-orders/init", "application/json", jsonPayload)
+
+ If http.LastMethodSuccess <> True Then
+ result.Success = False
+ result.StatusCode = 0
+ result.Message = "Verbindungsfehler"
+ result.Details = http.LastErrorText
+ Return result
+ End If
+
+ result.StatusCode = response.StatusCode
+
+ Select Case response.StatusCode
+ Case 201
+ Try
+ Dim jobResponse As cRelayHubJobOrderResponse = JsonConvert.DeserializeObject(Of cRelayHubJobOrderResponse)(response.BodyStr)
+ result.Success = True
+ result.Message = "Job Order erfolgreich erstellt"
+ result.Data = jobResponse
+ result.Details = $"ID: {jobResponse.id}, Referenz: {jobResponse.referenceNo}"
+ Catch ex As Exception
+ result.Success = False
+ result.Message = "Antwort konnte nicht gelesen werden"
+ result.Details = ex.Message
+ End Try
+
+ Case 400 To 499
+ result.Success = False
+ result.Message = "Client-Fehler"
+ result.Details = response.BodyStr
+
+ Case 500 To 599
+ result.Success = False
+ result.Message = "Server-Fehler"
+ result.Details = response.BodyStr
+
+ Case Else
+ result.Success = False
+ result.Message = $"Unbekannter Fehler (Status {response.StatusCode})"
+ result.Details = response.BodyStr
+ End Select
+
+ Console.WriteLine(result.Message)
+ Console.WriteLine(result.Details)
+
+ Return result
+
+
+ Catch ex As Exception
+ VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
+
+ End Try
+ Return Nothing
+ End Function
+
+ Function CreateSampleJobOrderRequest() As cRelayHubJobOrderRequest
+ Dim request As New cRelayHubJobOrderRequest With {
+ .referenceNo = "1001K",
+ .dispatchCountry = "TR",
+ .destinationCountry = "EN",
+ .regimeType = "IM",
+ .customer = "AVISO",
+ .documents = New List(Of cRelayHubDocument) From {
+ New cRelayHubDocument With {.type = "base64", .base64String = "SGVsbG8sIHRoaXMgaXMgYSBzYW1wbGUgYmFzZTY0IHN0cmluZy4=", .filename = "test.txt", .fileType = "invoice"},
+ New cRelayHubDocument With {.type = "base64", .base64String = "SGVsbG8sIHRoaXMgaXMgYSBzYW1wbGUgYmFzZTY0IHN0cmluZy4=", .filename = "test2.txt", .fileType = "atr"},
+ New cRelayHubDocument With {.type = "base64", .base64String = "SGVsbG8sIHRoaXMgaXMgYSBzYW1wbGUgYmFzZTY0IHN0cmluZy4=", .filename = "test3.txt", .fileType = "cmr"}
+ },
+ .additionalData = New cRelayHubAdditionalData With {
+ .transaction = New cRelayHubTransaction With {
+ .ioPartner = "VERA",
+ .ioDivision3 = "SUB",
+ .ioReference = "4803/25001763_1301250935SS/samimx"
+ },
+ .declaration = New List(Of cRelayHubDeclaration) From {
+ New cRelayHubDeclaration With {
+ .objectIdentification = New cRelayHubObjectIdentification With {
+ .objectName = "4803/25001763",
+ .objectAlias = "1349846",
+ .declarationType = "EZA-D"
+ },
+ .headerData = New cRelayHubHeaderData With {
+ .agentContact = New cRelayHubAgentContact With {
+ .contactPersonName = "AMANN",
+ .contactPersonPhoneNumber = "+49 123 456 789",
+ .contactPersonPosition = "Manager"
+ },
+ .declarantIsConsignee = True,
+ .representationRelationshipCode = "1",
+ .inputTaxDeduction = "true",
+ .procedureCodeRequested = "42",
+ .goodsStatus = "EU",
+ .costs = New List(Of cRelayHubCost) From {
+ New cRelayHubCost With {.costAmount = "25909.92", .costCurrency = "EUR"}
+ },
+ .transportMeansArrivalIdentity = "PB1552EC",
+ .transportMeansNationalityCode = "BG",
+ .previousAdministrativeReferenceType = "T1",
+ .previousAdministrativeReferenceNumber = "25TR160100001472M0",
+ .destinationFederalState = "07",
+ .destinationCountry = "DE",
+ .departureCountry = "TR"
+ },
+ .addresses = New List(Of cRelayHubAddress) From {
+ New cRelayHubAddress With {.addressType = "CZ", .participantEORI = "EORI12345", .participantSubsidiaryNumber = "001", .companyName = "SISECAM DIS TIC.A.S.", .streetAndNumber = "D-100 KARAYOLU CD.YAYLA MH.NO.70/C", .countryCode = "TR", .postalCode = "34949", .city = "TUZLA ISTANBUL"},
+ New cRelayHubAddress With {.addressType = "CN", .participantEORI = "EORI67890", .participantSubsidiaryNumber = "002", .companyName = "POLYNT COMPOSITES GERMANY GMBH", .streetAndNumber = "KIESELSTRASSE 2", .countryCode = "DE", .postalCode = "56357", .city = "MIEHLEN"}
+ }
+ }
+ }
+ }
+ }
+
+ Return request
+ End Function
+
+ End Class
+End Class
diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj
index 78ccd517..a5fce252 100644
--- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj
+++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj
@@ -369,6 +369,7 @@
Form
+