Sample code for 30+ languages & platforms
PureBasic

Aruba Fatturazione Elettronica getByIdSdi

See more Aruba Fatturazione Examples

This method returns the complete status detail of an electronic invoice. Search for a single invoice by SdI identifier.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttp.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

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

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Implements the following CURL command:

    ; curl -X GET https://ws.fatturazioneelettronica.aruba.it/services/invoice/out/getByIdSdi?idSdi=11110&includePdf=true \
    ;   -H "Accept: application/json" \
    ;   -H "Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE="

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

    ; Adds the "Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=" header.
    CkHttp::setCkAuthToken(http, "NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=")
    CkHttp::ckSetRequestHeader(http,"Accept","application/json")

    sbResponseBody.i = CkStringBuilder::ckCreate()
    If sbResponseBody.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckQuickGetSb(http,"https://ws.fatturazioneelettronica.aruba.it/services/invoice/out/getByIdSdi?idSdi=11110&includePdf=true",sbResponseBody)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkStringBuilder::ckDispose(sbResponseBody)
        ProcedureReturn
    EndIf

    respStatusCode.i = CkHttp::ckLastStatus(http)
    Debug "response status code = " + Str(respStatusCode)

    json.i = CkJsonObject::ckCreate()
    If json.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckLoadSb(json,sbResponseBody)
    CkJsonObject::setCkEmitCompact(json, 1)

    Debug "Response JSON:"
    Debug CkJsonObject::ckEmit(json)

    If respStatusCode <> 200
        Debug "Failed."
        CkHttp::ckDispose(http)
        CkStringBuilder::ckDispose(sbResponseBody)
        CkJsonObject::ckDispose(json)
        ProcedureReturn
    EndIf

    ; Sample response:

    ; Use this online tool to generate parsing code from sample JSON: 
    ; Generate Parsing Code from JSON

    ; {
    ;   "errorCode" : "0000",
    ;   "errorDescription" : null,
    ;   "id" : "1",
    ;   "sender" : {
    ;     "description" : "Aruba SPA",
    ;     "countryCode" : "IT",
    ;     "vatCode" : "22222222",
    ;     "fiscalCode" : "11111111111"
    ;   },
    ;   "receiver" : {
    ;     "description" : "Aruba SPA",
    ;     "countryCode" : "IT",
    ;     "vatCode" : "4444444",
    ;     "fiscalCode" : "333333333"
    ;   },
    ;   "invoiceType" : "FPR12",
    ;   "docType" : "in",
    ;   "file" : "dGVzdA==",
    ;   "filename" : "IT01879020517_jtlk0.xml.p7m",
    ;   "invoices" : [ {
    ;     "invoiceDate" : "2021-08-24T12:35:45.363+02:00",
    ;     "number" : "2021/0001",
    ;     "status" : "Inviata",
    ;     "statusDescription" : ""
    ;   } ],
    ;   "username" : "Utente",
    ;   "lastUpdate" : "2021-08-24T10:35:45.363+0000",
    ;   "creationDate" : "2021-08-24T10:35:45.363+0000",
    ;   "idSdi" : "11110",
    ;   "pdfFile" : "ZEdWemRGQmtaZz09",
    ;   "pddAvailable" : true
    ; }
    ; 

    invoiceDate.s
    number.s
    status.s
    statusDescription.s

    errorCode.s = CkJsonObject::ckStringOf(json,"errorCode")
    errorDescription.s = CkJsonObject::ckStringOf(json,"errorDescription")
    id.s = CkJsonObject::ckStringOf(json,"id")
    senderDescription.s = CkJsonObject::ckStringOf(json,"sender.description")
    senderCountryCode.s = CkJsonObject::ckStringOf(json,"sender.countryCode")
    senderVatCode.s = CkJsonObject::ckStringOf(json,"sender.vatCode")
    senderFiscalCode.s = CkJsonObject::ckStringOf(json,"sender.fiscalCode")
    receiverDescription.s = CkJsonObject::ckStringOf(json,"receiver.description")
    receiverCountryCode.s = CkJsonObject::ckStringOf(json,"receiver.countryCode")
    receiverVatCode.s = CkJsonObject::ckStringOf(json,"receiver.vatCode")
    receiverFiscalCode.s = CkJsonObject::ckStringOf(json,"receiver.fiscalCode")
    invoiceType.s = CkJsonObject::ckStringOf(json,"invoiceType")
    docType.s = CkJsonObject::ckStringOf(json,"docType")
    file.s = CkJsonObject::ckStringOf(json,"file")
    filename.s = CkJsonObject::ckStringOf(json,"filename")
    username.s = CkJsonObject::ckStringOf(json,"username")
    lastUpdate.s = CkJsonObject::ckStringOf(json,"lastUpdate")
    creationDate.s = CkJsonObject::ckStringOf(json,"creationDate")
    idSdi.s = CkJsonObject::ckStringOf(json,"idSdi")
    pdfFile.s = CkJsonObject::ckStringOf(json,"pdfFile")
    pddAvailable.i = CkJsonObject::ckBoolOf(json,"pddAvailable")
    i.i = 0
    count_i.i = CkJsonObject::ckSizeOfArray(json,"invoices")
    While i < count_i
        CkJsonObject::setCkI(json, i)
        invoiceDate = CkJsonObject::ckStringOf(json,"invoices[i].invoiceDate")
        number = CkJsonObject::ckStringOf(json,"invoices[i].number")
        status = CkJsonObject::ckStringOf(json,"invoices[i].status")
        statusDescription = CkJsonObject::ckStringOf(json,"invoices[i].statusDescription")
        i = i + 1
    Wend


    CkHttp::ckDispose(http)
    CkStringBuilder::ckDispose(sbResponseBody)
    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure