Sample code for 30+ languages & platforms
Xbase++

Isabel Connect List Transactions

See more Ibanity Examples

Get a list of transactions for an account.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonToken
LOCAL cJsonStr
LOCAL oJResp
LOCAL nRespStatusCode
LOCAL nAttributesAmount
LOCAL cAttributesCounterpartAccountReference
LOCAL cAttributesCounterpartFinancialInstitutionBic
LOCAL cAttributesCounterpartName
LOCAL cAttributesEndToEndId
LOCAL cAttributesExecutionDate
LOCAL cAttributesInternalId
LOCAL cAttributesRemittanceInformation
LOCAL cAttributesRemittanceInformationType
LOCAL cAttributesStatus
LOCAL cAttributesValueDate
LOCAL cId
LOCAL cV_type
LOCAL nMetaPagingOffset
LOCAL nMetaPagingTotal
LOCAL i
LOCAL nCount_i

nSuccess := 0

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

oHttp := CreateObject("Chilkat.Http")

//  Implements the following CURL command:

//  curl -X GET https://api.ibanity.com/isabel-connect/accounts/93ecb1fdbfb7848e7b7896c0f2d207aed3d8b4c1/transactions \
//  --cert certificate.pem:qwertyuiop1 \
//  --key private_key.pem  \
//  -H "Authorization: Bearer access_token_1603365408" \
//  -H "Accept: application/vnd.api+json"  

//  Ibanity provides the certificate + private key in PFX format.  This example will use the .pfx instead of the pair of PEM files.
//  (It is also possible to implement using Chilkat with the PEM files, but PFX is easier.)
nSuccess := oHttp:SetSslClientCertPfx("qa_data/pfx/my_ibanity_certificate.pfx", "my_pfx_password")
IF (nSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    RETURN
ENDIF

//  Load the previously obtained access token.
oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/isabel_access_token.json")
IF (nSuccess == 0)
    ? "No existing access token."
    oHttp:destroy()
    oJsonToken:destroy()
    RETURN
ENDIF

//  This causes the "Authorization: Bearer ***" header to be added to the HTTP request.
oHttp:AuthToken := oJsonToken:StringOf("access_token")

oHttp:Accept := "application/vnd.api+json"

oHttp:SetUrlVar("id", "93ecb1fdbfb7848e7b7896c0f2d207aed3d8b4c1")
cJsonStr := oHttp:QuickGetStr("https://api.ibanity.com/isabel-connect/accounts/{$id}/transactions")
IF (oHttp:LastMethodSuccess == 0)
    ? oHttp:LastErrorText
    oHttp:destroy()
    oJsonToken:destroy()
    RETURN
ENDIF

oJResp := CreateObject("Chilkat.JsonObject")
oJResp:Load(cJsonStr)
oJResp:EmitCompact := 0

? "Response Body:"
? oJResp:Emit()

nRespStatusCode := oHttp:LastStatus
? "Response Status Code = " + Str(nRespStatusCode)
IF (nRespStatusCode >= 400)
    ? "Response Header:"
    ? oHttp:LastResponseHeader
    ? "Failed."
    oHttp:destroy()
    oJsonToken:destroy()
    oJResp:destroy()
    RETURN
ENDIF

//  Sample JSON response:
//  (Sample code for parsing the JSON response is shown below)

//  {
//    "data": [
//      {
//        "attributes": {
//          "amount": 80000,
//          "counterpartAccountReference": "BE21210123456703",
//          "counterpartFinancialInstitutionBic": "GEBABEBB",
//          "counterpartName": "MYBESTCLIENT",
//          "endToEndId": "UNIQUE CODE CUSTOMER",
//          "executionDate": "2018-10-15T08:34:17.417Z",
//          "internalId": "UNIQUE CODE BANK",
//          "remittanceInformation": "123456789002",
//          "remittanceInformationType": "structured-be",
//          "status": "Booked",
//          "valueDate": "2018-10-15T08:52:43.962Z"
//        },
//        "id": "14e2bff5-e365-4bc7-bf48-76b7bcd464e9",
//        "type": "transaction"
//      },
//      {
//        "attributes": {
//          "amount": 40000,
//          "counterpartAccountReference": "BE58400101010179",
//          "counterpartFinancialInstitutionBic": "KREDBEBB",
//          "counterpartName": "MYGOODCLIENT",
//          "endToEndId": null,
//          "executionDate": "2018-10-15T08:34:17.417Z",
//          "internalId": null,
//          "remittanceInformation": "FREE COMMUNICATION",
//          "remittanceInformationType": "unstructured",
//          "status": "Booked",
//          "valueDate": "2018-10-15T08:52:43.962Z"
//        },
//        "id": "29b0f52e-a389-4ff8-88e1-cc30c12b789f",
//        "type": "transaction"
//      },
//      {
//        "attributes": {
//          "amount": -20000,
//          "counterpartAccountReference": "BE56300694353788",
//          "counterpartFinancialInstitutionBic": null,
//          "counterpartName": "MY SUPPLIER",
//          "endToEndId": null,
//          "executionDate": "2018-10-15T08:34:17.417Z",
//          "internalId": null,
//          "remittanceInformation": "999000000171",
//          "remittanceInformationType": "structured-be",
//          "status": "Booked",
//          "valueDate": "2018-10-15T08:52:43.962Z"
//        },
//        "id": "7d79a28e-b45d-4595-b98e-7c18871ee208",
//        "type": "transaction"
//      }
//    ],
//    "meta": {
//      "paging": {
//        "offset": 0,
//        "total": 3
//      }
//    }
//  }

//  Sample code for parsing the JSON response...
//  Use the following online tool to generate parsing code from sample JSON:
//  Generate Parsing Code from JSON

nMetaPagingOffset := oJResp:IntOf("meta.paging.offset")
nMetaPagingTotal := oJResp:IntOf("meta.paging.total")
i := 0
nCount_i := oJResp:SizeOfArray("data")
DO WHILE i < nCount_i
    oJResp:I := i
    nAttributesAmount := oJResp:IntOf("data[i].attributes.amount")
    cAttributesCounterpartAccountReference := oJResp:StringOf("data[i].attributes.counterpartAccountReference")
    cAttributesCounterpartFinancialInstitutionBic := oJResp:StringOf("data[i].attributes.counterpartFinancialInstitutionBic")
    cAttributesCounterpartName := oJResp:StringOf("data[i].attributes.counterpartName")
    cAttributesEndToEndId := oJResp:StringOf("data[i].attributes.endToEndId")
    cAttributesExecutionDate := oJResp:StringOf("data[i].attributes.executionDate")
    cAttributesInternalId := oJResp:StringOf("data[i].attributes.internalId")
    cAttributesRemittanceInformation := oJResp:StringOf("data[i].attributes.remittanceInformation")
    cAttributesRemittanceInformationType := oJResp:StringOf("data[i].attributes.remittanceInformationType")
    cAttributesStatus := oJResp:StringOf("data[i].attributes.status")
    cAttributesValueDate := oJResp:StringOf("data[i].attributes.valueDate")
    cId := oJResp:StringOf("data[i].id")
    cV_type := oJResp:StringOf("data[i].type")
    i := i + 1
ENDDO

oHttp:destroy()
oJsonToken:destroy()
oJResp:destroy()