Sherpa - Visa and Travel Rules API

Sherpa Developer Hub

Welcome to the sherpaΒ° developer hub. We offer a suite of solutions that guides travellers from planning to a safe return home. Take a look at the integration guides, specific use cases and an interactive API Reference. Ready? Let's go.

Guides    API Reference

eVisa Guide

1. Retrieve eVisas and eTAs

In order to narrow down the list of products, the query params destinations and nationality can be used.

destinations - expects a comma separated list of alpha3 country codes e.g. ?destinations=AUS,TUR

nationality - expects a single alpha3 country code e.g. ?nationality=USA

In addition to the filters, the language of the product description, in particular product name and text description can be toggled between Englisch (en - default) and German (de).
Further language options will be introduced at a later point. e.g. ?language=de

By default, all prices are listed in USD which can be adjusted using the currency query param. Currently, a list of 171 currencies are supported with exchange rates being updated on a regular basis. e.g. ?currency=GBP

Get a full list of available products

curl -X GET \ 'https://submission-api.joinsherpa.io/v1/products?key=<<submissionApiKey>>' \ -H 'affiliateId: <<affiliateId>>  \

The result set contains a list of products. Some products have price variations which is indicated with the hasVariants:true field. In this case, providing the nationality as a query param results in a more specific search and, if matched provides the detailed product description and price.

Get a list of available products for Turkish and Australian destinations

curl -X GET \ 'https://submission-api.joinsherpa.io/v1/products?key=<<submissionApiKey>>&destinations=AUS,TUR' \
  -H 'affiliateId: <<affiliateId>>  \

The result are two products, one for Australia (AUS_ETA) and one for Turkey (TUR_EVISA). However, Turkey has many variations of available visas, depending on the nationality. If the search is narrowed down further, e.g. with the nationality for Australia (AUS) the query will look like the following:

curl -X GET \
'https://submission-api.joinsherpa.io/v1/products?key=<<submissionApiKey>>&destinations=AUS,TUR&nationality=AUS' \
  -H 'affiliateId: <<affiliateId>>  \

The result is now, a single product. As an Australian, an eTA is not required and therefore can not be obtained. The remaining product for Turkey could be narrowed down and shows as a specific product with the id TUR_EVISA__60_90DAYS. The price is now indicated with a specific value, rather than a min and max value.

Currency Support

The API supports several currencies. If a currency is provided in the request, all of the fees, including convenience fee & embassy fees will be converted to the appropriate value.

Display products in EUR

curl -X GET \  'https://submission-api.joinsherpa.io/v1/products?key=<<submissionApiKey>>&currency=EUR' \
  -H 'affiliateId: <<affiliateId>>  \

Localization

Product and visa details are available in several languages.

Show product descriptions in German

curl -X GET \  'https://submission-api.joinsherpa.io/v1/products?key=<<submissionApiKey>>&language=de' \
  -H 'affiliateId: <<affiliateId>>  \

Retrieve a single product

curl -X GET \ 'https://submission-api.joinsherpa.io/v1/products/USA_ESTA?key=<<submissionApiKey>>' \
  -H 'affiliateId: <<affiliateId>>  \

Note: All previously mentioned parameters can be applied to a specific product as well

πŸ“˜

View the API Reference

2. Create Order

Orders can be created by passing along a list of items (product ids and optionally application details). An unpaid order can be settled by invoking the pay endpoint for that specific order. At any given time, the status of an order can be viewed.

Create a new order for one traveller

curl -X POST \  'https://submission-api.joinsherpa.io/v1/orders?key=<<submissionApiKey>>' \  
  -H 'affiliateId: <<affiliateId>> \
  -d '{ 
    "contactName": "John Smith",    
    "contactEmail": "[email protected]",
    "items": [
    {   
    "productId": "TUR_EVISA__60_90DAYS",            
    "programId": "TUR_EVISA",
    "applicationData": {}
    }
    ]
}'

This results in an order with a status of CREATED and a paymentStatus UNPAID

3. Pay for the Order

To settle a payment, the sherpa gateway with the method bill can be used along with a payment transaction. This identifier should allow to uniquely identify the payment transaction in case of a dispute or support inquiry.

curl -X POST \ 'https://submission-api.joinsherpa.io/v1/orders/:orderId/pay?key=<<submissionApiKey>>' \
  -H 'affiliateid: <<affiliateId>> \
  -d '{
    "payment": "your-transaction-id",
    "method": "bill",
    "gateway": "sherpa"
}'

4. Retrieve Order

Get Order Details

curl -X GET \
'https://submission-api.joinsherpa.io/v1/orders/:orderId?key=<<submissionApiKey>>' \
  -H 'affiliateid: <<affiliateId>>

Updated 2 months ago


eVisa Guide


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.