Prerequisites

As a prerequisite to integrating Custom Limits, please ensure you have registered for webhooks

1. Initiate Limits Request UX

When calling the create intent endpoint, set the display_limits field in the payload to true to display the limits request panes to the user.

    {
        "user_id": "user_28CJjV7P4Go5PNJvfzghiD",
        "amount": 1450,
        "direction": "cash_in",
        "currency": "USD",
        "display_limits": true,
        ... //  other fields omitted for brevity
    }

2. Provide User Information to Update User Endpoint

When Push Cash receives a new limits request from a user, we will send a user.limits_request webhook notification to your webhook registration, for example:

{
  "type": "user.limits_request",
  "data": {
    "user_id": "user_ABCD1234",
    "timestamp": "2024-03-01T05:10:14.532Z"
  }
}

After receiving a user.limits_request webhook notification, you must make a request to the update user endpoint in order for Push to respond to the user’s limits request.

3. Handle Limits Request Decision Webhooks

Push will notify you via webhook once the user’s limits request has been reviewed. A decision will be made to either

  • accept the change as requested (user.limits_request.updated)
  • partially approve the request (user.limits_request.partial_approval)
  • decline the request (user.limits_request.declined)

examples webhook payloads:

  • user.limits_request.updated for increasing the user’s limits to the full requested amount:

    {
      "type": "user.limits_request.updated",
      "data": {
        "user_id": "user_ABCD1234",
        "approved_daily_limit": "150000",
        "currency": "USD",
        "timestamp": "2024-03-01T05:10:14.532Z"
      }
    }
    
  • user.limits_request.partial_approval for increasing the user’s limits to an amount lesser than the requested amount:

    {
      "type": "user.limits_request.partial_approval",
      "data": {
        "user_id": "user_ABCD1234",
        "approved_daily_limit": "150000",
        "requested_daily_limit": "180000",
        "currency": "USD",
        "timestamp": "2024-03-01T05:10:14.532Z"
      }
    }
    
  • user.limits_request.declined for no change to the user’s limits:

    {
      "type": "user.limits_request.declined",
      "data": {
        "user_id": "user_ABCD1234",
        "requested_daily_limit": "180000",
        "currency": "USD",
        "timestamp": "2024-03-01T05:10:14.532Z"
      }
    }
    

    After a limit change is made, the client should begin using the new limit, either from the webhook notification or the get user endpoint, to populate the daily transaction limit in the client’s cashier.

4. Simulations

To test your integration with our sandbox environment, you can create a limits request with the above steps and simulate a decision being made on that request with simulate/limits_decision endpoint