Sample code for 30+ languages & platforms
Tcl

Datev - Upload File (Transfer a file to DATEV data center)

See more Datev Examples

Demonstrates how to transfer a file to the DATEV data center.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set http [new_CkHttp]

# Implements the following CURL command:

# curl --request POST \
#   --url "https://accounting-extf-files.api.datev.de/platform-sandbox/v3/clients/REPLACE_CLIENT-ID/extf-files/import" \
#   --header "Authorization: Bearer REPLACE_BEARER_TOKEN" \
#   --header "X-Datev-Client-ID: clientId" \
#   --header "accept: application/json;charset=utf-8" \
#   --header "content-type: application/octet-stream" \
#   --header "Filename: EXTF_BS_20200101_1.csv" \
#   --header "Reference-Id: Buchungsstapel_Verkäufe_2020_01_Nr_001" \
#   --header "Client-Application-Version: 2.0c" \
#   --data-binary "@REPLACE_BODY"

# Use the following online tool to generate HTTP code from a CURL command
# Convert a cURL Command to HTTP Source Code

set bdRequestBody [new_CkBinData]

set success [CkBinData_LoadFile $bdRequestBody "c:/temp/EXTF_BS_20200101_1.csv"]
if {$success != 1} then {
    puts "Failed to load the csv file."
    delete_CkHttp $http
    delete_CkBinData $bdRequestBody
    exit
}

CkHttp_SetRequestHeader $http "accept" "application/json;charset=utf-8"
CkHttp_SetRequestHeader $http "X-Datev-Client-ID" "clientId"
CkHttp_SetRequestHeader $http "Client-Application-Version" "2.0c"
CkHttp_SetRequestHeader $http "Filename" "EXTF_BS_20200101_1.csv"
CkHttp_SetRequestHeader $http "Reference-Id" "Buchungsstapel_Verkäufe_2020_01_Nr_001"
# Adds the "Authorization: Bearer REPLACE_BEARER_TOKEN" header.
CkHttp_put_AuthToken $http "REPLACE_BEARER_TOKEN"

set resp [new_CkHttpResponse]

set url "https://accounting-extf-files.api.datev.de/platform-sandbox/v3/clients/DATEV_USER_ID/extf-files/import"
set success [CkHttp_HttpBd $http "POST" $url $bdRequestBody "application/octet-stream" $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkBinData $bdRequestBody
    delete_CkHttpResponse $resp
    exit
}

puts [CkHttpResponse_get_StatusCode $resp]
puts [CkHttpResponse_bodyStr $resp]

delete_CkHttp $http
delete_CkBinData $bdRequestBody
delete_CkHttpResponse $resp