Instant Payments

Instant payments with Brite are done by creating a session and presenting the Brite client to the customer. The customer can then, with a few clicks, complete the deposit in the client. In addition to this, the merchant can set a flag to require approval to be able to make internal checks before approving the deposit.

Integration

To initiate a deposit session make a request towards  sessions.create_deposit endpoint. 

				
					// example request
{
    "deeplink_redirect": "string",
    "country_id": "string",  // required
    "callbacks": [
        {
            "url": "string",  // required
            "transaction_state": 1,
            "session_state": 1
        }
    ],
    "amount": 0,  // required
    "customer_firstname": "string",
    "customer_lastname": "string",
    "customer_dob": "string",
    "customer_id": "string",
    "customer_street_address": "string",
	"customer_zip": "string", 	
	"customer_city": "string",
	"customer_email": "string",
	"ssn": "string",
    "merchant_reference": "string",
	"locale": "string",
	"redirect_uri": "string",
    "approval_required": true,
    "brand_name": "string"  // required for DE
}

				
			

The deeplink_redirect is for mobile devices to redirect back to merchant app after authenticating with third party app. If you already have a customer_id you can pass it in the request and if it does not match with the user authenticating the session will be aborted. This is useful to make sure that the expected user is making the deposit. The merchant_reference is set by the merchant. Approval_required is used to be able to have the option to approve or reject the session after authentication is done. 

				
					// example response
{
    "url": "string",
    "token": "string",
    "id": "string"
}
				
			

In the response you will find a URL where the client is hosted. A token for rendering the client using the javascript. And an id for the session. 

Inject the token into the JavaScript client and render the client[LINK]. After the customer has authenticated successfully in the client Brite sends a STATE_AUTHENTICATION_COMPLETE callback to the url stated for session_state; 2.

				
					// example request - callback
{
"transaction_state": 2,
"transaction_id": "string",
"merchant_id": "string"
}
				
			

Call session.get using the session id to get session details.

At this point there is an option to approve or reject the deposit. If approval_required:true is set, here the session.approve or session.reject endpoints can be used after relevant internal checks are conducted. 

Brite sends a STATE__COMPLETE callback to the url stated for session_state; 12. And for transactions a STATE__CREDIT callback to the url stated for transaction_state; 5 when the funds are to be considered settled.