DocumentationAPI Reference
Documentation

About

This page outlines the basic information required to interact with the Reach Checkout API as well as contextual information to better define when certain requests should be sent.

API Request Basics

Every merchant is assigned a merchant ID and a secret shared only with Reach. Data sensitive requests and responses are signed using the shared secret in order to verify the sender and data integrity.

A different merchant ID and Secret is assigned for sandbox and production environments.

More specifically...

A simple Reach API request has a UTF-8 encoded JSON request body and a Base-64 encoded SHA-256 HMAC signature based on the request body using the shared secret as the key.

The request body and signature is then URL encoded before being sent using either HTTP GET or POST.

For example:

939

The above example is a sandbox /checkout request for a credit card order. Since credit card details are normally added to a /checkout request on the customer's browser, and the merchant's secret should never be made public, the card details are appended to the request and are not a part of the signature calculation.

Available API Requests

Request NameHTTP TypeWhat it does
/getRates GETReturns the current foreign exchange rates available for all configured countries.
/localize GET
POST
Returns locale information for a given country or customer IP address, including the current foreign exchange rate.
/fingerprint GETAssigns a unique device id to the customer to guard against fraudulent activity.
/getPaymentMethods GETReturns all available payment methods for a given country and currency.
/badge GETRetrieves location declaration information from Reach.
/openContract* POSTCreates a contract within Reach.
/checkout* POSTCreates the order with Reach.
/modify* POSTModifies the order details.
/create* POSTCreates a merchant’s order within Reach without billing information.
/authorize* POSTAuthorizes payment for the order, holding the funds until the order is captured.
/capture* POSTCaptures payment for an authorized order.
/cancel* POSTCancels an authorized order. A captured order may not be canceled.
/refund* POSTRefunds a captured order. An authorized order that has not been captured may not be refunded.
/query* POSTRetrieves information about an order.

*Signature required.

Where requests are usually implemented:

688

Communication Diagram

780