How do I set up a callback?
Last updated
Last updated
The size of the payload sent to your callback can vary. We recommend your callback should accept payloads up to 1.5MB in size.
The callback mechanism allows for asynchronous job requests and responses. While the job_status API can be polled to get a result, a better method is to set up a callback url and let the system POST a JSON response. This is especially recommended for SDK implementations because the result will go directly back to your server and avoid client side security issues.
Jobs can take different times to process. While most jobs take only a few seconds, jobs that require human review can take longer. The callback mechanism allows you to make a job request and receive all results without polling.
The partner params structure is passed back with every callback. We suggest using the job_id parameter to connect job requests and job results. You can also set optional keys in the partner params structure to aid in this connection.
Most of the job requests you submit are processed asynchronously, which means results are not immediately available. We require callbacks so we can post json responses when the results of your job are available. There are two main callback urls you can set for your requests - a default callback which we will post results to by default or you can pass a callback url in each job request you make, in this case responses will be posted to the job level callback.
We require you to set a callback url each for Sandbox and Production.
There are two ways of setting default callback urls:
Follow the steps below to set your default callback url in the partner portal
Login into the portal
Switch to the Developer Tools page from the menu
Click Set on the Default Callback URL card
Input your callback url (take note of the active environment)
Toggle to the other environment and input the url
You can also set default callback in any of our server-to-server libraries, you can achieve this by setting the default_callback
parameter in the initialisation of the WebAPI
class of the server-to-server library you are using.
Setting a callback on a job request will override the callback URL for that job only
Setting a job level callback url varies based on your integration option of choice.
For products that support callback urls, just set your url as string in the callback_url
key of your request body.
Set the optional_callback
parameter in the options
structure passed to the submit_job
function of the WebAPI
class.
You can set the per job callback url in the mobile SDKs by using the method <SIDNetData>.setCallBackUrl(<Your_Callback_URL>)
.
To be sure the requests being received are, in fact, from Smile ID there are 2 ways this can be done
Verifying the incoming signature parameter in the request body of the result
Whitelisting our originating IP addresses (see below):
34.240.137.52
44.230.128.108
52.36.32.43
52.213.46.74