Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Token is not getting refreshed in 24hrs in Connection Json

Shwet01
Regular Contributor
Regular Contributor

 

Hi,

We are integrating Saviynt with Coupa Application. Everything is working dynamically in all JSONS  like Createaccountjson, Updateaccountjson, RemoveaccountJson, Disableaccountjson but in Connection JSON we have to manually update the token after every 24hrs otherwise it is throwing 401 error. Can anyone please let me know what could be the issue. 

Connection JSON-

{
  "authentications": {
    "acctAuth": {
      "authType": "oauth2",
      "url": "https://xxxxxxxx.coupahost.com/oauth2/token",
      "httpMethod": "POST",
      "httpParams": {
      "client_secret": "XXXXXXXXXXXXX",
      "client_id": "XXXXXXXX",
      "scope": "core.user_group.read core.user_group.write core.user.read core.user.write email login profile"
},
      "httpHeaders": {
        "contentType": "application/x-www-form-urlencoded"
      },
      "httpContentType": "application/x-www-form-urlencoded",
      "expiryError": "ExpiredAuthenticationToken",
      "authError": [
        "InvalidAuthenticationToken",
        "AuthenticationFailed"
      ],
      "timeOutError": "Read timed out",
      "errorPath": "error.code",
      "maxRefreshTryCount": 5,
      "tokenType": "bearer",
      "tokenResponsePath": "access_token",
      "authHeaderName": "Authorization",
      "accessToken": "Bearer eyJ0eXAiOiJhdCtKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjRmOjMzOmI3OmY3OjVmOjg4OjQ3OmRhOjAzOmVmOjkzOjQ1OmU5OmNjOmZiOjg3In0.eyJpc3MiOiJodHRwczovL2FiLWluYmV2LXRlc3QuY291cGFob3N0LmNvbSIsImlhdCI6MTY4OTM0MzkwNiwiZXhwIjoxNjg5NDMwMzA2LCJzdWIiOiIxMDIzZmRhODExYzc3OTRlNGNkOWQ0MTk5YWM5ZGJjYiIsImp0aSI6Ijc5MWNjZTU0LWU4MzQtNGE1OC04OGQ4LTgxYzRlZTRmMzAwMiIsImNsaWVudF9pZCI6IjEwMjNmZGE4MTFjNzc5NGU0Y2Q5ZDQxOTlhYzlkYmNiIiwic2NvcGUiOiJjb3JlLmFjY291bnRpbmcucmVhZCBjb3JlLmFjY291bnRpbmcud3JpdGUgY29yZS5hcHByb3ZhbC5jb25maWd1cmF0aW9uLnJlYWQgY29yZS5hcHByb3ZhbC5jb25maWd1cmF0aW9uLndyaXRlIGNvcmUuYXBwcm92YWwucmVhZCBjb3JlLmFwcHJvdmFsLndyaXRlIGNvcmUuYnVkZ2V0LnJlYWQgY29yZS5idWRnZXQud3JpdGUgY29yZS5idXNpbmVzc19lbnRpdHkucmVhZCBjb3JlLmJ1c2luZXNzX2VudGl0eS53cml0ZSBjb3JlLmNhdGFsb2cucmVhZCBjb3JlLmNhdGFsb2cud3JpdGUgY29yZS5jb21tZW50LnJlYWQgY29yZS5jb21tZW50LndyaXRlIGNvcmUuY29tbW9uLnJlYWQgY29yZS5jb21tb24ud3JpdGUgY29yZS5jb250cmFjdC5yZWFkIGNvcmUuY29udHJhY3Qud3JpdGUgY29yZS5jb250cmFjdHNfdGVtcGxhdGUucmVhZCBjb3JlLmNvbnRyYWN0c190ZW1wbGF0ZS53cml0ZSBjb3JlLmVhc3lfZm9ybV9yZXNwb25zZS5hcHByb3ZhbC53cml0ZSBjb3JlLmVhc3lfZm9ybV9yZXNwb25zZS5yZWFkIGNvcmUuZWFzeV9mb3JtX3Jlc3BvbnNlLndyaXRlIGNvcmUuZWFzeV9mb3JtLnJlYWQgY29yZS5lYXN5X2Zvcm0ud3JpdGUgY29yZS5leHBlbnNlLnJlYWQgY29yZS5leHBlbnNlLnNlY3VyZS5yZWFkIGNvcmUuZXhwZW5zZS5zZWN1cmUud3JpdGUgY29yZS5leHBlbnNlLndyaXRlIGNvcmUuZmluYW5jaWFsX2NvdW50ZXJwYXJ0eS5yZWFkIGNvcmUuZmluYW5jaWFsX2NvdW50ZXJwYXJ0eS53cml0ZSBjb3JlLmdsb2JhbF9uYXZpZ2F0aW9uLnJlYWQgY29yZS5pbnRlZ3JhdGlvbi5yZWFkIGNvcmUuaW50ZWdyYXRpb24ud3JpdGUgY29yZS5pbnZlbnRvcnkuYWRqdXN0bWVudC5yZWFkIGNvcmUuaW52ZW50b3J5LmFkanVzdG1lbnQud3JpdGUgY29yZS5pbnZlbnRvcnkuYXNuLnJlYWQgY29yZS5pbnZlbnRvcnkuYXNuLndyaXRlIGNvcmUuaW52ZW50b3J5LmJhbGFuY2UucmVhZCBjb3JlLmludmVudG9yeS5jb21tb24ucmVhZCBjb3JlLmludmVudG9yeS5jb21tb24ud3JpdGUgY29yZS5pbnZlbnRvcnkuY29uc3VtcHRpb24ucmVhZCBjb3JlLmludmVudG9yeS5jb25zdW1wdGlvbi53cml0ZSBjb3JlLmludmVudG9yeS5jeWNsZV9jb3VudHMucmVhZCBjb3JlLmludmVudG9yeS5jeWNsZV9jb3VudHMud3JpdGUgY29yZS5pbnZlbnRvcnkucGlja19saXN0LnJlYWQgY29yZS5pbnZlbnRvcnkucGlja19saXN0LndyaXRlIGNvcmUuaW52ZW50b3J5LnJlY2VpdmluZy5yZWFkIGNvcmUuaW52ZW50b3J5LnJlY2VpdmluZy53cml0ZSBjb3JlLmludmVudG9yeS5yZXR1cm5fdG9fc3VwcGxpZXIucmVhZCBjb3JlLmludmVudG9yeS5yZXR1cm5fdG9fc3VwcGxpZXIud3JpdGUgY29yZS5pbnZlbnRvcnkudHJhbnNhY3Rpb24ucmVhZCBjb3JlLmludmVudG9yeS50cmFuc2Zlci5yZWFkIGNvcmUuaW52ZW50b3J5LnRyYW5zZmVyLndyaXRlIGNvcmUuaW52b2ljZS5hcHByb3ZhbC5ieXBhc3MgY29yZS5pbnZvaWNlLmFwcHJvdmFsLndyaXRlIGNvcmUuaW52b2ljZS5jcmVhdGUgY29yZS5pbnZvaWNlLmRlbGV0ZSBjb3JlLmludm9pY2UucmVhZCBjb3JlLmludm9pY2Uud3JpdGUgY29yZS5pdGVtLnJlYWQgY29yZS5pdGVtLndyaXRlIGNvcmUubGVnYWxfZW50aXR5LnJlYWQgY29yZS5sZWdhbF9lbnRpdHkud3JpdGUgY29yZS5ub3RpZmljYXRpb25zX3N1bW1hcnkucmVhZCBjb3JlLm5vdGlmaWNhdGlvbnNfc3VtbWFyeS53cml0ZSBjb3JlLm9iamVjdF90cmFuc2xhdGlvbnMucmVhZCBjb3JlLm9iamVjdF90cmFuc2xhdGlvbnMud3JpdGUgY29yZS5vcmRlcl9oZWFkZXJfY29uZmlybWF0aW9ucy5yZWFkIGNvcmUub3JkZXJfaGVhZGVyX2NvbmZpcm1hdGlvbnMud3JpdGUgY29yZS5vcmRlcl9wYWQucmVhZCBjb3JlLm9yZGVyX3BhZC53cml0ZSBjb3JlLnBheS5jaGFyZ2VzLnJlYWQgY29yZS5wYXkuY2hhcmdlcy53cml0ZSBjb3JlLnBheS5wYXltZW50X2FjY291bnRzLnJlYWQgY29yZS5wYXkucGF5bWVudHMucmVhZCBjb3JlLnBheS5wYXltZW50cy53cml0ZSBjb3JlLnBheS5zdGF0ZW1lbnRzLnJlYWQgY29yZS5wYXkuc3RhdGVtZW50cy53cml0ZSBjb3JlLnBheS52aXJ0dWFsX2NhcmRzLnJlYWQgY29yZS5wYXkudmlydHVhbF9jYXJkcy53cml0ZSBjb3JlLnBheWFibGVzLmFsbG9jYXRpb25zLnJlYWQgY29yZS5wYXlhYmxlcy5hbGxvY2F0aW9ucy53cml0ZSBjb3JlLnBheWFibGVzLmV4cGVuc2UucmVhZCBjb3JlLnBheWFibGVzLmV4cGVuc2Uud3JpdGUgY29yZS5wYXlhYmxlcy5leHRlcm5hbC5yZWFkIGNvcmUucGF5YWJsZXMuZXh0ZXJuYWwud3JpdGUgY29yZS5wYXlhYmxlcy5pbnZvaWNlLnJlYWQgY29yZS5wYXlhYmxlcy5pbnZvaWNlLndyaXRlIGNvcmUucGF5YWJsZXMub3JkZXIucmVhZCBjb3JlLnBheWFibGVzLm9yZGVyLndyaXRlIGNvcmUucHJvamVjdC5yZWFkIGNvcmUucHJvamVjdC53cml0ZSBjb3JlLnB1bmNob3V0X3NpdGUucmVhZCBjb3JlLnB1bmNob3V0X3NpdGUud3JpdGUgY29yZS5wdXJjaGFzZV9vcmRlci5yZWFkIGNvcmUucHVyY2hhc2Vfb3JkZXIud3JpdGUgY29yZS5yZXF1aXNpdGlvbi5yZWFkIGNvcmUucmVxdWlzaXRpb24ud3JpdGUgY29yZS5yZXZpc2lvbl9yZWNvcmQucmVhZCBjb3JlLnNvdXJjaW5nLnBlbmRpbmdfc3VwcGxpZXIucmVhZCBjb3JlLnNvdXJjaW5nLnBlbmRpbmdfc3VwcGxpZXIud3JpdGUgY29yZS5zb3VyY2luZy5yZWFkIGNvcmUuc291cmNpbmcucmVzcG9uc2UuYXdhcmQud3JpdGUgY29yZS5zb3VyY2luZy5yZXNwb25zZS5yZWFkIGNvcmUuc291cmNpbmcucmVzcG9uc2Uud3JpdGUgY29yZS5zb3VyY2luZy53cml0ZSBjb3JlLnN1cHBsaWVyX2luZm9ybWF0aW9uX3NpdGVzLnJlYWQgY29yZS5zdXBwbGllcl9pbmZvcm1hdGlvbl9zaXRlcy53cml0ZSBjb3JlLnN1cHBsaWVyX2luZm9ybWF0aW9uX3RheF9yZWdpc3RyYXRpb25zLmRlbGV0ZSBjb3JlLnN1cHBsaWVyX2luZm9ybWF0aW9uX3RheF9yZWdpc3RyYXRpb25zLnJlYWQgY29yZS5zdXBwbGllcl9pbmZvcm1hdGlvbl90YXhfcmVnaXN0cmF0aW9ucy53cml0ZSBjb3JlLnN1cHBsaWVyX3NoYXJpbmdfc2V0dGluZ3MucmVhZCBjb3JlLnN1cHBsaWVyX3NoYXJpbmdfc2V0dGluZ3Mud3JpdGUgY29yZS5zdXBwbGllcl9zaXRlcy5yZWFkIGNvcmUuc3VwcGxpZXJfc2l0ZXMud3JpdGUgY29yZS5zdXBwbGllci5yZWFkIGNvcmUuc3VwcGxpZXIucmlza19hd2FyZS5yZWFkIGNvcmUuc3VwcGxpZXIucmlza19hd2FyZS53cml0ZSBjb3JlLnN1cHBsaWVyLndyaXRlIGNvcmUudHJhbnNsYXRpb24ucmVhZCBjb3JlLnRyYW5zbGF0aW9uLndyaXRlIGNvcmUudW9tLnJlYWQgY29yZS51b20ud3JpdGUgY29yZS51c2VyX2dyb3VwLnJlYWQgY29yZS51c2VyX2dyb3VwLndyaXRlIGNvcmUudXNlci5yZWFkIGNvcmUudXNlci53cml0ZSBlbWFpbCBsb2dpbiBvZmZsaW5lX2FjY2VzcyBvcGVuaWQgcHJvZmlsZSIsImF1ZCI6WyJjb3JlIl19.VHS78AuuxiA1Lqjr82FTQsyEsJFb4HSl9bpjQQkNa_ROFdXKZxWbwJKLbsYDjCCccd7-qRBwtn-aUiFHkPvYJdrMmaOiHIehsH6xjEmgeQZ_S-EfQUWIfp731a5G-2rb-GCU-RIjQ6n2adS-2XWJBpWnmIuX4reiMeR9HdhwciE8TSKUCszi4FfLunUPzTENFT_xZpnVo_5sIutYxtxsD8EfkjE_ap68GABEouMUtCcodZPP0pla1L39K9Wv7kaUZMKIsaZj4RA43a4kegk-4PFR9v_hWKGayszK1y8swWflzzjQxnh7oEmrU6EGpi8yAYSzn3-7f_xlfcKWOyQ8Kg",
      "retryFailureStatusCode": [
        401,
        400
      ]
    }
  }
}

 

Connection token is not getting refreshed in 24hrs dynamically.

Thanks

[This post has been edited by a Moderator to merge two posts.]

 

8 REPLIES 8

SB
Saviynt Employee
Saviynt Employee

Can you update ConfigJSON param in the REST connection with value {"showLogs":true} if not done already. Check for the error you are getting in the logs and share the same.


Regards,
Sahil

rushikeshvartak
All-Star
All-Star

Can you share this ?

Coupa connector is working as expected for us ?


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Hi @rushikeshvartak ,

Sorry i did not get you what you are asking.

what do you means by this-Coupa connector is working as expected for us ?

Coupa connector is working  but only if we are updating the token in connection in every 24hrs otherwise not. It should work dynamically right?

Thanks

shwet

Hi @Shwet01 ,

Can you try to pass creds in url as query parameters instead of passing in httpParams like below:

    "authType": "oauth2",
    "url":"https://xxxxxxxx.coupahost.com/oauth2/token?client_secret=XXXXXXXXXXXXX&client_id=XXXXXXXX&scope=cor... core.user_group.write core.user.read core.user.write email login profile",
      "httpMethod": "POST",
      "httpParams": {
    }


Pandharinath Mahalle(Paddy)
If this reply helps your question, please consider selecting Accept As Solution and hit Kudos 🙂

saipraveengv
New Contributor III
New Contributor III

try to update the url with the   "client_secret": "XXXXXXXXXXXXX",
      "client_id": "XXXXXXXX",
      "scope": "core.user_group.read core.user_group.write core.user.read core.user.write email login profile

details as you see them in postman. 

Shwet01
Regular Contributor
Regular Contributor

Hi @pmahalle  and @saipraveengv ,

I tried to do use the same format but still result is same. Please help me with this. Still token is not getting refreshed in 24hrs by its own. 

Connection Json-

{
  "authentications": {
    "acctAuth": {
      "authType": "oauth2",
        "url":"https://xxxxxxxxxxxxxxxxxx/oauth2/token?   &client_secret=xxxxxxxxxxxxxxxxxxx&client_id=xxxxxxxxxxxxxxxx&scope=core.accounting.read core.accounting.write core.approval.configuration.read core.approval.configuration.write core.approval.read core.approval.write core.budget.read core.budget.write core.business_entity.read core.business_entity.write core.catalog.read core.catalog.write core.comment.read core.comment.write core.common.read core.common.write core.contract.read core.contract.write core.contracts_template.read core.contracts_template.write core.easy_form_response.approval.write core.easy_form_response.read core.easy_form_response.write core.easy_form.read core.easy_form.write core.expense.read core.expense.secure.read core.expense.secure.write core.expense.write core.financial_counterparty.read core.financial_counterparty.write core.global_navigation.read core.integration.read core.integration.write core.inventory.adjustment.read core.inventory.adjustment.write core.inventory.asn.read core.inventory.asn.write core.inventory.balance.read core.inventory.common.read core.inventory.common.write core.inventory.consumption.read core.inventory.consumption.write core.inventory.cycle_counts.read core.inventory.cycle_counts.write core.inventory.pick_list.read core.inventory.pick_list.write core.inventory.receiving.read core.inventory.receiving.write core.inventory.return_to_supplier.read core.inventory.return_to_supplier.write core.inventory.transaction.read core.inventory.transfer.read core.inventory.transfer.write core.invoice.approval.bypass core.invoice.approval.write core.invoice.create core.invoice.delete core.invoice.read core.invoice.write core.item.read core.item.write core.legal_entity.read core.legal_entity.write core.notifications_summary.read core.notifications_summary.write core.object_translations.read core.object_translations.write core.order_header_confirmations.read core.order_header_confirmations.write core.order_pad.read core.order_pad.write core.pay.charges.read core.pay.charges.write core.pay.payment_accounts.read core.pay.payments.read core.pay.payments.write core.pay.statements.read core.pay.statements.write core.pay.virtual_cards.read core.pay.virtual_cards.write core.payables.allocations.read core.payables.allocations.write core.payables.expense.read core.payables.expense.write core.payables.external.read core.payables.external.write core.payables.invoice.read core.payables.invoice.write core.payables.order.read core.payables.order.write core.project.read core.project.write core.punchout_site.read core.punchout_site.write core.purchase_order.read core.purchase_order.write core.requisition.read core.requisition.write core.revision_record.read core.sourcing.pending_supplier.read core.sourcing.pending_supplier.write core.sourcing.read core.sourcing.response.award.write core.sourcing.response.read core.sourcing.response.write core.sourcing.write core.supplier_information_sites.read core.supplier_information_sites.write core.supplier_information_tax_registrations.delete core.supplier_information_tax_registrations.read core.supplier_information_tax_registrations.write core.supplier_sharing_settings.read core.supplier_sharing_settings.write core.supplier_sites.read core.supplier_sites.write core.supplier.read core.supplier.risk_aware.read core.supplier.risk_aware.write core.supplier.write core.translation.read core.translation.write core.uom.read core.uom.write core.user_group.read core.user_group.write core.user.read core.user.write email login offline_access openid profile&grant_type=client_credentials",
      "httpMethod": "POST",
      "httpParams": {
       },
      "httpHeaders": {
        "contentType": "application/x-www-form-urlencoded"
      },
      "httpContentType": "application/x-www-form-urlencoded",
      "expiryError": "ExpiredAuthenticationToken",
      "authError": [
        "InvalidAuthenticationToken",
        "AuthenticationFailed"
      ],
      "timeOutError": "Read timed out",
      "errorPath": "error.code",
      "maxRefreshTryCount": 5,
      "tokenType": "bearer",
      "tokenResponsePath": "access_token",
      "authHeaderName": "Authorization",
      "accessToken": "Bearer eyJ0eXAiOiJhdCtKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjRmOjMzOmI3OmY3OjVmOjg4OjQ3OmRhOjAzOmVmOjkzOjQ1OmU5OmNjOmZiOjg3In0.eyJpc3MiOiJodHRwczovL2FiLWluYmV2LXRlc3QuY291cGFob3N0LmNvbSIsImlhdCI6MTY4OTg0MzcxMywiZXhwIjoxNjg5OTMwMTEzLCJzdWIiOiIxMDIzZmRhODExYzc3OTRlNGNkOWQ0MTk5YWM5ZGJjYiIsImp0aSI6ImYwNWMwNGM4LTY5YmItNDcwNC05OGJmLWM0OWY3OTNmNGQ3NiIsImNsaWVudF9pZCI6IjEwMjNmZGE4MTFjNzc5NGU0Y2Q5ZDQxOTlhYzlkYmNiIiwic2NvcGUiOiJjb3JlLnVzZXJfZ3JvdXAucmVhZCBjb3JlLnVzZXJfZ3JvdXAud3JpdGUgY29yZS51c2VyLnJlYWQgY29yZS51c2VyLndyaXRlIGVtYWlsIGxvZ2luIHByb2ZpbGUiLCJhdWQiOlsiY29yZSJdfQ.fWKmH4D8r8HQB5FRgWz7j6XZh0e8UhGM0OnSbJWMhjZBJCxGxxaH3dFansG2XPmdEj659meRuWKsfOmiNmI-arNhohaq8Ivs2JBsA2ru5YxMiZ0jJ-A3emP-KrpYObPC8PJYxHMRwsfRm8rMdjO4mZ0074V54SfqngXMoZC6b6yCnI0GeMB6MTu9-ovHW0MndhhhFWR2AmNLHyn6xUZMf4sP2FuAn1Mageubaug0YrUEm5bLkyPkMTtquB4xArXCDwV4W0FozvGwhEdHbLK9kbDAmUC6DLI7jBsdca3zUykjErUtN7YoOk3rBO3AcHA4KoKEShS3OqHlB0WAOuPycQ",
      "retryFailureStatusCode": [
        401,
        400
      ]
    }
  }
}

Thanks

Shwet

saipraveengv
New Contributor III
New Contributor III

@Shwet01 can you share the postman dump for the accesstoken generation

Shwet01
Regular Contributor
Regular Contributor

Hi @saipraveengv ,

Please find the token dump.

 

Thanks

shweta