The authentication API relies on the following credentials:

FieldExampleDescription
client_idcore-banking-appThe client Id of your application
client_secretfc2c4820-dffc-410d-ac49-db15a9bbce38The client secret for your application
grant_typeclient_credentialsOauth2 Grant type
Realm Idt72767Unique Identifier for authentication realm

Samples

Authentication URL: https://iam.presta.co.ke/auth/realms/${RealmId}/protocol/openid-connect/token

Replace ${RealmId} with your corresponding realm value

curl -i -X POST \
   -H "Content-Type:application/x-www-form-urlencoded" \
   -d "client_id=core-banking" \
   -d "client_secret=238c4949-vc0a-4ef2-a3de-fa19bae8d9ce" \
   -d "grant_type=client_credentials" \
 'https://iam.presta.co.ke/auth/realms/t72767/protocol/openid-connect/token'

Result

{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiUHRKS2tmYzg5ZVdDMXF5YjdnRzZ0cEowZDNoalBBQ3F1VWVIVFN0Nl9jIn0.eyJleHAiOjE2MjQ0NTYzNjYsImlhdCI6MTYyNDQ1NjA2NiwianRpIjoiYTNhNDlkYjAtYmY0Yy00YjkzLWE0MmItNWI3Y2YwZDAyMmU1IiwiaXNzIjoiaHR0cHM6Ly9pYW0ucHJlc3RhLmNvLmtlL2F1dGgvcmVhbG1zL3Q3Mjc2NyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiI2Nzc4OGU4YS1lMmNjLTQ4NmUtOTk0My02NzgzYzFhOTAyZjgiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJjb3JlLWJhbmtpbmciLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJjbGllbnRIb3N0IjoiMTkyLjE2OC4xNS45MyIsImNsaWVudElkIjoiY29yZS1iYW5raW5nIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJ0ZW5hbnRJZCI6InQ3Mjc2NyIsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1jb3JlLWJhbmtpbmciLCJjbGllbnRBZGRyZXNzIjoiMTkyLjE2OC4xNS45MyJ9.IlbnuviECxV9by5MJauOzKeyXsL_6krON-qWLpBPscFpgKatnESaZoiHP0kKbgqeeRLLHnFQw3vDEl6SDwUylEepyj1-D27hB3NLmxXeBPBDj-7bDLVWL2kxLee2hfWuPT3Fapo3JlFGH5AK7D6NrdGWzGoKYqpS0I7uTqnm3bBGYZm64TKbGg6ochkbK5gHv3B_5GnE67LO9JjPl4clmsniKp6s3VqJp-AUlIUUaV1D51gywZeufRKDYSZbCtAer1tIEhqSFNLiKdNAgJ0xvWEsvkSSIzaXVAjkvod-Z1XvEQyFPeBm_9gHDaSZJ84pJaOF3er5pgK_-3nHVSXTXA",
"expires_in": 300,
"refresh_expires_in": 0,
"token_type": "Bearer",
"not-before-policy": 0,
"scope": "profile email"
}

The authentication result fields are as follows

access_tokenA signed JWT bearer token. This will be added to the Authorization header of your http request
expiresTime in seconds that the token will live (Default is 5 mins ie. 300 seconds)
token_typeType of token - Value will be "Bearer"
refresh_expires_inRefresh token expiry time, defualt 0 (Refresh tokens are not enabled for this client)
not-before-policyTime in seconds before which a token may not be used
ScopesScopes supported in this authentication

Using Access Token

Now use the access token to make a request

curl -v https://eguarantorship-api.presta.co.ke/api/v1/loan-request -H"Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiUHRKS2tmYzg5ZVdDMXF5YjdnRzZ0cEowZDNoalBBQ3F1VWVIVFN0Nl9jIn0.eyJleHAiOjE2MjQ1MTE2NDksImlhdCI6MTYyNDUxMTM0OSwianRpIjoiMmIyYjkwNDAtM2NjNS00OTQwLTllZGQtNTExM2MzNTUxNDdjIiwiaXNzIjoiaHR0cHM6Ly9pYW0ucHJlc3RhLmNvLmtlL2F1dGgvcmVhbG1zL3Q3Mjc2NyIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiI2Nzc4OGU4YS1lMmNjLTQ4NmUtOTk0My02NzgzYzFhOTAyZjgiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJjb3JlLWJhbmtpbmciLCJhY3IiOiIxIiwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm9mZmxpbmVfYWNjZXNzIiwidW1hX2F1dGhvcml6YXRpb24iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJjbGllbnRIb3N0IjoiMTkyLjE2OC4xNS45MyIsImNsaWVudElkIjoiY29yZS1iYW5raW5nIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJ0ZW5hbnRJZCI6InQ3Mjc2NyIsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1jb3JlLWJhbmtpbmciLCJjbGllbnRBZGRyZXNzIjoiMTkyLjE2OC4xNS45MyJ9.abObU_NnvMBAKtB_GnkDzQeZEiJKqXsmHAxucqKUUCKTpTSAnlYTSUkRAP57y6B8fXkObLrVmDo_LL6Xcs-irMO48VjjFhQudZyigkmyCbF2CgcyBgzo_EWCYByzycBc56oMW5u4bD_uJV2E2LRpoa-GYZXya2fMbfpScAa6DMLEZTklGN06oOQ2g1-gW8GMAnxFCJy8xqlPqxdynBWEwsdA8q15X0R0gNpSgs3OqoZECXjMhJ9vUfUBP2mwaqaLr4n7AogHbLdQxre0xD1vm6nEt4RJ2xJeKDGo1e0ewn-DtJoxCh2pfTU53UH_yYAx5ZZQ42Jdv0zCPk1uX-c7rA"

Sample Result

{
  "content": [
    {
      "refId": "Izg9gvcpzC4OUmkI",
      "loanDate": "23/06/2021 12:48",
      "loanRequestNumber": "LR100055",
      "loanProductName": "Inua Loan",
      "loanProductRefId": "zN9x5MBI5x559icx",
      "loanAmount": 30000,
      "guarantorsRequired": 4,
      "guarantorCount": 4,
      "status": "OPEN",
      "signingStatus": "INPROGRESS",
      "acceptanceStatus": "INPROGRESS",
      "applicationStatus": "COMPLETED",
      "memberRefId": "PqMRHkMUqezGcR5K",
      "memberNumber": "M00015",
      "memberFirstName": "Clifford",
      "memberLastName": "Ogoda",
      "phoneNumber": "254718480100"
    },
    {
      "refId": "7Lpf2z690rsYEfDq",
      "loanDate": "23/06/2021 12:43",
      "loanRequestNumber": "LR100054",
      "loanProductName": "Daraja",
      "loanProductRefId": "TKEwXAPZTGiHuXzs",
      "loanAmount": 20000,
      "guarantorsRequired": 4,
      "guarantorCount": 4,
      "status": "OPEN",
      "signingStatus": "ERROR",
      "acceptanceStatus": "INPROGRESS",
      "applicationStatus": "COMPLETED",
      "memberRefId": "PqMRHkMUqezGcR5K",
      "memberNumber": "M00015",
      "memberFirstName": "Clifford",
      "memberLastName": "Ogoda",
      "phoneNumber": "254718480100"
    }
  ],
  "pageable": {
    "sort": {
      "sorted": true,
      "unsorted": false,
      "empty": false
    },
    "pageNumber": 0,
    "pageSize": 10,
    "offset": 0,
    "unpaged": false,
    "paged": true
  },
  "last": false,
  "totalPages": 5,
  "totalElements": 45,
  "sort": {
    "sorted": true,
    "unsorted": false,
    "empty": false
  },
  "first": true,
  "number": 0,
  "numberOfElements": 10,
  "size": 10,
  "empty": false
}