Introduction
SHIFT seeks to enter and serve the markets that need its services and the studied expansion in those markets, as well as to create a network of Agents to provide its customers with the best services in the time and place that are more convenient to them.
To improvement SHIFT products and services and to simplify the integration process between Agents systems and SHIFT; this document describes on the procedures of interfacing with the SHIFT Online Remittance Services from other systems using Web Services.
SHIFT Standards
- Fast Service: Your money is in the hands of your beloved ones in moments.
- Secure Service: High end technology that ensures the security of the information, transfers and full protection of your transfers against piracy and theft.
- Reliable Service: Ensure the preservation of highest quality standards and reliability in all ordinary and urgent circumstances.
- Service Efficiency: The capability of the SHIFT system to serve the clients in high efficiency at all the locations that provide the service and around the clock.
Remittance concept
SHIFT Web Service Overview
SHIFT web service is a set of Web methods that are hosted on an application server. Web methods are methods that can be invoked remotely over a network or the internet. To invoke a Web method, you create a SOAP message (described ahead) and send it to the Web service via HTTP or other transport mechanism. Most commonly, a Web service sends a response message back for every method call; the response message contains returned information or fault information in case of an error.
A SOAP message is an XML document that follows a specific standard. The SOAP standard provides a way to package a call to a Web method, and to package the response
SHIFT API enables integration of agent client-service systems with SHIFT core system for fast service of remittances in real time. The API is exposed as a SOAP web service and is defined using a combination of WSDL.
The WSDL specifies a single web service operation with an input of “Request” and an output of “Response”, the WSDL simply states that it will accept any valid XML as input and return valid XML as output.
SHIFT publishes a set of XML Schemas that dictate the format of the request and response elements. The request schema can be used to validate the request XML for a particular service on the client-side prior to it being sent to the server. Hence as a whole, the web service is strongly typed.
SHIFT Web Services Security
- The web service is secured using a combination of transport level security (SSL over HTTP).
- Authenticate Agent client-service IP address.
Agent should provide his service IP address; SHIFT security team will configure Agent IP address in the trusted zone to authenticate every SOAP request from Agent side.
- SHIFT API expects the agent credentials to be part of each API Call “SOAP request”; every method within the API requires agent credentials input fields to authenticate the request.
Agent Credentials fields
Credentials will be assigned and provide by SHIFT | |||
Field | Type | Size | Mandatory |
agentCode | Char | 5 | Yes |
userId | Char | 20 | Yes |
userPassword | Char | 30 | Yes |
SHIFT Web Services URL
The URL’s for testing and production will be provided by SHIFT team.
1- Send
SHIFT API providing set of web methods for accessing SHIFT API; these methods are required for sending remittance from Agent system to SHIFT system.
Send Remittance Flow Diagrams
The below diagram illustrates how send remittance flow work:
The below diagram illustrates how send remittance flow sequence:
1-1- Get Destination Countries
Method name | getDestinationCountries |
Method purpose | This method used to return list of destination countries that allowed to receive remittances from partner agent country for a specific service type |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
serviceType | Char | 20 | Yes | See Service type table |
Response outputs
Field | Type | Description | ||||||||||||
resultCode | Char | see return error messages and errors table | ||||||||||||
resultMessage | Char | |||||||||||||
CountriesList | Object | List of countries
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getDestinationCountries> <serviceType>CASH</serviceType> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getDestinationCountries> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getDestinationCountriesResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:destinationCountriesList> <ns3:countryCode>EGY</ns3:countryCode> <ns3:countryName>Egypt</ns3:countryName> <ns3:requiredMiddleName>NO</ns3:requiredMiddleName> </ns3:destinationCountriesList> <ns3:destinationCountriesList> <ns3:countryCode>KEN</ns3:countryCode> <ns3:countryName>Kenya</ns3:countryName> <ns3:requiredMiddleName>NO</ns3:requiredMiddleName> </ns3:destinationCountriesList> </return> </ns2:getDestinationCountriesResponse> </S:Body> </S:Envelope> |
1-2- Get Service Providers
Method name | getServiceProviders |
Method purpose | This method used to return list of service providers that serve in a destination country for a specific service type. |
Notes | ➢ If service type is CASH: the service providers will present the name of agents or providers in the destination country
➢ If service type is CREDIT: the service providers will present the banks in the destination country ➢ If service type is CASH_TO_DOOR: the service providers will present the delivery agents or providers in the destination country ➢ Some service providers required to select branch, in this case select city and branch will be required in send process.
If service type is CREDIT then an object will be returned for bank Info, this will control the required bank fields for each bank in the list |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
serivceType | Char | 20 | Yes | see service type table |
countryCode | Char | 3 | Yes | ISO Alpha-3 (3166), selected destination country code |
SendCountryCode | Char | 3 | Conditional | ISO Alpha-3, optional only if service type CREDIT |
Response outputs
Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultCode | Char | see return error messages and codes table | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultMessage | Char | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ServiceProvidersList | Object | List of service providers
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getServiceProviders> <countryCode>BHR</countryCode> <serivceType>CASH</serivceType> <sendCountryCode>GBR</sendCountryCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getServiceProviders> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getServiceProvidersResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:ServiceProvidersList> <ns3:serviceProviderCode>21</ns3:serviceProviderCode> <ns3:serviceProviderName>Test network</ns3:serviceProviderName> <ns3:requiredBranch>NO</ns3:requiredBranch> <ns3:serviceType>CASH</ns3:serviceType> </ns3:ServiceProvidersList> <ns3:ServiceProvidersList> <ns3:serviceProviderCode>1</ns3:serviceProviderCode> <ns3:serviceProviderName>SHIFT Network</ns3:serviceProviderName> <ns3:requiredBranch>NO</ns3:requiredBranch> <ns3:serviceType>CASH</ns3:serviceType> </ns3:ServiceProvidersList> </return> </ns2:getServiceProvidersResponse> </S:Body> </S:Envelope> |
1-3- Get Country Cities
Method name | getCountryCities |
Method purpose | This method used to return list of cities for a specific country |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT
|
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
countryCode | Char | 3 | Yes | ISO Alpha-3 (3166), selected destination country code |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char | |
countryCode | Char | ISO Alpha-3 (3166) |
citiesList | Object | List of cities
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getCountryCities> <countryCode>GBR</countryCode> <agentCode>GB001</agentCode> <userId>usertest</userId> <userPassword>test@password</userPassword> </web:getCountryCities> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:getCountryCitiesResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:citiesList> <ns3:cityCode>1</ns3:cityCode> <ns3:cityEnglishName>City En name1</ns3:cityEnglishName> <ns3:citySeconderyName>City Other name1</ns3:citySeconderyName> </ns3:citiesList> <ns3:citiesList> <ns3:cityCode>15930</ns3:cityCode> <ns3:cityEnglishName>City En name2</ns3:cityEnglishName> <ns3:citySeconderyName>City other name2</ns3:citySeconderyName> </ns3:citiesList> </return> </ns2:getCountryCitiesResponse> </S:Body> </S:Envelope> |
1-4- Get Payout Branches
Method name | getPayoutBranches |
Method purpose | This method used to return list of payout branches for a service provider (Agent or
Bank) and required if selected service provider required branches |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
cityCode | int | 8 | Yes | Selected city code |
serviceProviderCode | int | 7 | Yes | Selected service provider code |
serviceType | Char | 20 | Yes | See service types table |
Response outputs
Field | Type | Description | |||||||||||||||||||||
resultCode | Char | see return error messages and codes table | |||||||||||||||||||||
resultMessage | Char | ||||||||||||||||||||||
branchesList | Object | List of locations
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getPayoutBranches> <cityCode>177</cityCode> <serviceProviderCode>41</serviceProviderCode> <serviceType>CASH</serviceType> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getPayoutBranches> </soapenv:Body> |
</soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getPayoutBranchesResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:branchesList> <ns3:cityCode>177</ns3:cityCode> <ns3:branchCode>EG0020003</ns3:branchCode> <ns3:branchName>Banque Misr – AL KALAAH</ns3:branchName> <ns3:branchTelephone>0</ns3:branchTelephone> <ns3:branchOpeningHours>Sun – Thu 8:30 AM – 5:00 PM</ns3:branchOpeningHours> <ns3:branchAddress>22 ST AL MASS AL</ns3:branchAddress> </ns3:branchesList> <ns3:branchesList> <ns3:cityCode>177</ns3:cityCode> <ns3:branchCode>EG0020001</ns3:branchCode> <ns3:branchName>Banque Misr – CAIRO</ns3:branchName> <ns3:branchTelephone>0</ns3:branchTelephone> <ns3:branchOpeningHours>Sun – Thu 8:30 AM – 2:00 PM</ns3:branchOpeningHours> <ns3:branchAddress>151 ST MOHAMED FARID</ns3:branchAddress> </ns3:branchesList> <ns3:branchesList> <ns3:cityCode>177</ns3:cityCode> <ns3:branchCode>EG0020002</ns3:branchCode> <ns3:branchName>Banque Misr – MOSKY – فــرع الموسكــى</ns3:branchName> <ns3:branchTelephone>0</ns3:branchTelephone> <ns3:branchOpeningHours>Sun – Thu 8:30 AM – 2:00 PM</ns3:branchOpeningHours> <ns3:branchAddress>AL AZHER ST DOWN TOWN شارع الأزهر – وسط البلد</ns3:branchAddress> </ns3:branchesList> </return> </ns2:getPayoutBranchesResponse> </S:Body> </S:Envelope> |
1-5- Get Paying Currencies
Method name | getPayingCurrencies |
Method purpose | This method used to return list of paying currency for agent source country |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
Response outputs
Field | Type | Description | |||||||||
resultCode | Char | see return error messages and codes table | |||||||||
resultMessage | Char | ||||||||||
CurrenciesList | Object | List of Currencies
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getPayingCurrencies> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getPayingCurrencies> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getPayingCurrenciesResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:currenciesList> <ns3:currencyCode>GBP</ns3:currencyCode> <ns3:currencyName>Pound sterling</ns3:currencyName> </ns3:currenciesList> <ns3:currenciesList> <ns3:currencyCode>USD</ns3:currencyCode> <ns3:currencyName>United States of America Dollars</ns3:currencyName> </ns3:currenciesList> </return> </ns2:getPayingCurrenciesResponse> </S:Body> </S:Envelope> |
1-6- Get Payout Currencies
Method name | getPayoutCurrencies |
Method purpose | This method used to return list of payout currencies for destination country depends on service type |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getPayoutCurrencies> <destinationCountryCode>EGY</destinationCountryCode> |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
destinationCountryCode | Char | 3 | Yes | Selected destination country |
serviceProviderCode | int | 7 | Yes | Selected service provider code |
serviceType | Char | 20 | Yes | See service types table |
payoutBranchCode | Char | 50 | Conditional | ❖ If the passed service provider required branches then this field is mandatary.
*Data source for this field is getPayoutBranches method ➢ branchesList.branchCode ❖ If the passed service provider not required branches, this field should pass blank. |
Response outputs
Field | Type | Description | |||||||||
resultCode | Char | see return error messages and codes table | |||||||||
resultMessage | Char | ||||||||||
CurrenciesList | Object | List of Currencies
|
<serviceProviderCode>41</serviceProviderCode>
<serviceType>CASH</serviceType> <payoutBranchCode>EG0020003</payoutBranchCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getPayoutCurrencies> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getPayoutCurrenciesResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:currenciesList> <ns3:currencyCode>EGP</ns3:currencyCode> <ns3:currencyName>Egyptian Pound</ns3:currencyName> </ns3:currenciesList> <ns3:currenciesList> <ns3:currencyCode>USD</ns3:currencyCode> <ns3:currencyName>United States of America Dollars</ns3:currencyName> </ns3:currenciesList> </return> </ns2:getPayoutCurrenciesResponse> </S:Body> </S:Envelope> |
1-7- Get Price
Method name | getPrice |
Method purpose | This method used to calculate remittance financial information as paying amount, payout amount, charges, rates and other information depends on the destination countries and currencies. |
Notes | NOTE: All optional fields default value will be blank if no data to be filled, Ex <Field1></Field1> Object.Field1(“”) |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
serviceType | Char | 20 | Yes | See service types table |
serviceProviderCode | int | 7 | Yes | Selected service provider code |
sendCountryCode | Char | 3 | Yes | The sending country code of sending agent. |
destinationCountryCode | Char | 3 | Yes | Selected destination country code |
payingCurrencyCode | Char | 3 | Yes | Selected paying currency in sending country |
payoutCurrencyCode | Char | 3 | Yes | Selected payout currency in destination country |
payingAmount | Decimal | 12,2 | Yes | Optional to pass paying amount or payout amount.
❖ If paying amount filled then payout amount should pass with zero value ❖ (Revers) If payout amount filled paying amount should pass with zero value. Ex: Paying amount = 100, Payout amount = 0 Paying amount = 0, Payout amount = 140 |
payoutAmount | Decimal | 12,2 | Yes | |
chargesIncluded | Char | 3 | Yes | Values for this field [YES or NO].
❖ If passed YES (charges will be included with paying amount) then the system will calculate payout amount and charges depends on filled paying amount ❖ This option available only in case paying amount is filled and payout amount is zero |
CityCode | Int | 8 | Conditional | Selected city code
Mandatory only if selected service provider required branch (requiredBranch = YES) else pass it blank |
payoutBranchCode | Char | 50 | Conditional | Mandatory only if selected service provider required branch (requiredBranch = YES) else pass it blank |
creditCardNumber | Char | 100 | Conditional | |
promoCode | char | 50 | No | Mandatory if customer has available promotion code to get special discount. |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char | |
payingAmount | Decimal | Paying amount from customer |
payoutAmount | Decimal | Payout amount to beneficiary |
payingCurrencyCode | Char | Paying currency from customer |
payoutCurrencyCode | Char | Payout currency to beneficiary |
Charges | Decimal | Remittance charges |
discount | Decimal | Discount in paying currency / will not deducted from agent share |
TaxPercent | Decimal | Tax percent |
TaxAmount | Decimal | Tax amount in paying currency |
totalPayingAmount | Decimal | Total paying amount from customer
(Paying amount + Charges + Tax amount) – discount |
payingToPayoutRate | Decimal | Customer exchange rate |
PayingSettlementRate | Decimal | Cost rate / Agent rate for send agent |
settlementPayingAmount | Decimal | Paying amount in settlement currency / Agent settlement |
SettlementCharges | Decimal | Remittance charges in settlement currency / Agent settlement |
agentChargesShare | Decimal | Agent charges share in settlement currency / Agent settlement |
agentFXChargesShare | Decimal | Agent FX share in settlement currency / Agent settlement |
priceOrderCode | Char | Price order code
❖ Required to be pass in send remittance method ❖ Price order will be available 10 minutes otherwise it will be expired. |
agentDailyLimit | Decimal | The allowed daily limit for the send agent’s |
agentAvailableLimit | Decimal | Available daily limit for the send agent to send remittances |
TaxName | char | Tax name (hint for the tax name) |
settlementDiscount | Decimal | Discount in settlement currency / will not deducted from agent share |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getPrice> <serviceType>CASH</serviceType> <serviceProviderCode>41</serviceProviderCode> |
<sendCountryCode>JOR</sendCountryCode>
<destinationCountryCode>EGY</destinationCountryCode> <payingCurrencyCode>JOD</payingCurrencyCode> <payoutCurrencyCode>USD</payoutCurrencyCode> <payingAmount>100</payingAmount> <payoutAmount></payoutAmount> <chargesIncluded>NO</chargesIncluded> <cityCode>177</cityCode> <payoutBranchCode>EG0020001</payoutBranchCode> <creditCardNumber></creditCardNumber> <promoCode></promoCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getPrice> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:getPriceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:maxSendLimit>70905.09</ns3:maxSendLimit> <ns3:remittancePrice> <ns3:priceOrderCode>568651</ns3:priceOrderCode> <ns3:payingAmount>100.0</ns3:payingAmount> <ns3:payoutAmount>141.03</ns3:payoutAmount> <ns3:payingCurrencyCode>JOD</ns3:payingCurrencyCode> <ns3:payoutCurrencyCode>USD</ns3:payoutCurrencyCode> <ns3:charges>2.75</ns3:charges> <ns3:taxPercent>0.05</ns3:taxPercent> <ns3:totalPayingAmount>102.75</ns3:totalPayingAmount> <ns3:payingToPayoutRate>1.410322</ns3:payingToPayoutRate> <ns3:payingSettlementRate>0.709</ns3:payingSettlementRate> <ns3:settlementPayingAmount>141.04</ns3:settlementPayingAmount> <ns3:settlementCharges>3.88</ns3:settlementCharges> <ns3:agentChargesShare>1.55</ns3:agentChargesShare> <ns3:agentFXChargesShare>0.0</ns3:agentFXChargesShare> <ns3:agentDailyLimit>9999999.0</ns3:agentDailyLimit> <ns3:agentAvailableLimit>9999999.0</ns3:agentAvailableLimit> <ns3:taxAmount>0.0</ns3:taxAmount> <ns3:taxName> </ns3:taxName> <ns3:discount>0.0</ns3:discount> <ns3:settlementDiscount>0.0</ns3:settlementDiscount> </ns3:remittancePrice> </return> </ns2:getPriceResponse> </S:Body> </S:Envelope> |
Field | Type | Size | Mandatory | Description | |||||
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT | |||||
userId | Char | 20 | Yes | User ID assigned by SHIFT | |||||
userPassword | Char | 30 | Yes | User password assigned by SHIFT | |||||
priceOrderCode | Char | 10 | Yes | Returned in getPrices method
➢ remittancePrice.priceOrderCode |
|||||
sender Object | Field | Type | Size | Mandatory | |||||
customerId | Char | 11 | Conditional | Mandatory in case using exist sender | |||||
type | Int | 1 | Yes | See customer type table accept values (1,2) | |||||
1-8- Send Remittance
Method name | sendRemittance | ||
Method purpose | This method used to create remittance on SHIFT system and returns the RTC, this method request to pass the required remittance information
The response for send remittance may require authentication process (Tow steps mode: Create and authenticate) |
||
Note | Send remittance can execute in two scenarios:
• One step: Send remittance without authenticate (It will ready for payout) • Two steps (Creator and authenticator): Authenticate remittance method should call after send remittance If the resultCode in sendRemittance = 9995 that mean the remittance need authentication by calling Authenticate remittance method
If send remittance return result error customer/sender already exist, then agent integrated system should allow to search for customer by using method customer lookup, in this case agent integrated system will pass selected customer Id.
NOTE: All optional fields should be passed blank if no data to be filled, |
||
Ex <Field1></Field1> Object.Field1(“”) |
Request Inputs
firstName | Char | 50 | Conditional | Mandatory if customer
type 1 (Only English) |
|||
middelName | Char | 50 | Conditional | Mandatory if send country required middle name and customer type 1 (Only English) *If this field not required pleas pass it blank | |||
lastName | Char | 50 | Conditional | Mandatory if customer
type 1 (Only English) |
|||
enName | Char | 100 | Conditional | Mandatory if customer
type 2 (Only English) |
|||
telephone | Char | 20 | Conditional | Mandatory if mobile is empty
(+ or ++ not accepted) |
|||
mobile | Char | 20 | Conditional | Mandatory if telephone is empty (+ or ++ not accepted) | |||
Char | 100 | No | Email should be in correct format if filled | ||||
address | Char | 200 | Yes | ||||
nationalityCountryCo de | Char | 3 | Yes | ISO Alpha-3 (3166) | |||
identityTypeCode | int | 4 | Yes | Selected Identity type | |||
identityNumber | Char | 20 | Yes | ||||
identityIssuePlace | Char | 100 | Yes | ||||
identityIssueDate | Date | Yes | Format: dd/MM/yyyy | ||||
identityExpiryDate | Date | Yes | Format: dd/MM/yyyy | ||||
birthDateOrEstablishD ate | Date | Yes | Format: dd/MM/yyyy
If sender type is 1 then sender birthday will be passed, if sender type is 2 then company establish date will be passed |
||||
birthPlace | Char | 50 | Conditional | Mandatory if customer type 1 |
gender | Int | 1 | Conditional | Mandatory if customer type 1
See gender types table accept values (1,2) |
||||
occupationOrSector | Char | 100 | Yes | Depends on customer type
See get Occupations or sector |
||||
postalCode | Char | 50 | No | |||||
nationalNumber | Char | 50 | No | *If this field not required pleas pass it blank | ||||
sourceOfFund | Char | 50 | No | See get source of fund | ||||
receiver Object | Field | Type | Size | Mandatory | ||||
receiverID | Char | 11 | No | |||||
type | Int | 1 | Yes | See customer type table accept values (1,2) | ||||
firstName | Char | 50 | Conditional | Mandatory if customer type 1 (Only English) | ||||
middelName | Char | 50 | Conditional | Mandatory if send country required middle
name and customer type 1 (Only English) *If this field not required pleas pass it blank |
||||
lastName | Char | 50 | Conditional | Mandatory if customer
type 1 (Only English) |
||||
enName | Char | 100 | Conditional | Mandatory if customer
type 2 (Only English) |
||||
telephone | Char | 20 | Conditional | Mandatory if mobile is empty
(+ or ++ not accepted) |
||||
mobile | Char | 20 | Conditional | Mandatory if telephone is empty
(+ or ++ not accepted) |
||||
Char | 100 | No | Email should be in correct format if filled | |||||
address | Char | 200 | Yes | |||||
nationalityCountryCo de | Char | 3 | Yes | ISO Alpha-3 (3166) | |||||
gender | int | 1 | Conditional | Mandatory if customer type 1
See gender types table accept values (1,2) |
|||||
occupationOrSector | Char | 100 | No | Depends on customer type
See get Occupations and sectors |
|||||
relationship | Char | 50 | No | See get relationship list | |||||
sendReason | Char | 100 | Yes | Reason of the remittance | |||||
receiverBankAccountNo | Char | 50 | Conditional | Mandatory if service type CREDIT
❖ This field may require to pass IBAN instead of AccountNo in case selected service provider is bank and required IBAN See get service providers BankInfo:requireIBAN= YES |
|||||
receiverSwiftBIC | Char | 50 | Conditional | Mandatory if service type Credit and in case selected service provider is bank and required
Swift/BIC See get service providers BankInfo:requiredBICORSWIFTCode = YES |
|||||
receiverRoutingNoABA | Int | 50 | Conditional | Mandatory if service type Credit and in case selected service provider is bank and required
Routing No or ABA See get service providers BankInfo:requiredRoutingNoABA = YES |
|||||
receiverSortCode | Char | 50 | Conditional | Mandatory if service type Credit and in case selected service provider is bank and required
SortCode See get service providers BankInfo:requiredSortCode = YES |
|||||
sendMessage | Char | 100 | Conditional | A message to the receiver | |||||
senderIdDocumentFile | BASE64 | No | Sender Identity attachment. The max size for file is 2MB | ||||||
senderIdDocumentFileExt ension | Char | 3 | No | Mandatory if senderIdDocumentFile is filled
Supported format (png, jpg, pdf) |
|||||
lstSupprotiveDocuments | list | Optional
Max number of documents is 4 |
|||||||
Note: if there is no supportive document this list tag “lstSupprotiveDocuments“ should not be passed | ||||||||
Field | Type | Size | Mandatory | |||||
documentName | Char | 100 | Document name | |||||
imageDocument | BASE
64 |
200 | BASE64 format
Max file size 2MB |
|||||
fileExtention | Char | 3 | allow images format
(png, jpg, pdf)
|
|||||
secretKey | Char | Yes | MD5 Hashed 128-bit
Details will be send by API support team |
|||||
apiAgentReferenceNumber | Char | 20 | Conditional | Required if agent allow to pass his reference number
*Pass it blank if not required. |
||||
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/” xmlns:apis=”http://xml.netbeans.org/schema/ApiSchema”> |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table
❖ If the resultCode in sendRemittance = 9995 that mean the remittance need authentication by calling Authenticate remittance method |
resultMessage | Char | |
remittaceTrackingCode | Char | RTC (Remittance tracking code), this field is the tracking code number for the remittance and should be show on voucher. |
apiAgentReferenceNumber | Char | Will be returned if available |
<soapenv:Header/>
<soapenv:Body> <web:sendRemittance> <priceOrderCode>568659</priceOrderCode> <sender> <apis:customerId></apis:customerId> <apis:type>1</apis:type> <apis:firstName>Rami</apis:firstName> <apis:middelName></apis:middelName> <apis:lastName>Sami</apis:lastName> <apis:enName></apis:enName> <apis:telephone></apis:telephone> <apis:mobile>962788888888</apis:mobile> <apis:email>rami@hotmail.com</apis:email> <apis:address>test address</apis:address> <apis:nationalityCountryCode>JOR</apis:nationalityCountryCode> <apis:identityTypeCode>1</apis:identityTypeCode> <apis:identityNumber>123456</apis:identityNumber> <apis:identityIssuePlace>amman</apis:identityIssuePlace> <apis:identityIssueDate>11/11/2018</apis:identityIssueDate> <apis:identityExpiryDate>11/11/2028</apis:identityExpiryDate> <apis:gender>1</apis:gender> <apis:occupationOrSector>Engineer</apis:occupationOrSector> <apis:postalCode></apis:postalCode> <apis:birthDateOrEstablishDate>27/02/1980</apis:birthDateOrEstablishDate> <apis:birthPlace>amman</apis:birthPlace> <apis:nationalNumber>98411417444</apis:nationalNumber> </sender> <receiver> <apis:receiverId></apis:receiverId> <apis:type>1</apis:type> <apis:firstName>Jamal</apis:firstName> <apis:middelName>Samer</apis:middelName> <apis:lastName>Yaser</apis:lastName> <apis:enName></apis:enName> <apis:telephone></apis:telephone> <apis:mobile>1258888888</apis:mobile> <apis:email></apis:email> <apis:address>test receiver address</apis:address> <apis:gender>1</apis:gender> <apis:nationalityCountryCode>EGY</apis:nationalityCountryCode> <apis:occupationOrSector>Doctor</apis:occupationOrSector> </receiver> <sendReason>test</sendReason> <receiverBankAccountNo></receiverBankAccountNo> |
<receiverSwiftBIC></receiverSwiftBIC>
<receiverRoutingNoABA></receiverRoutingNoABA> <receiverSortCode></receiverSortCode> <sendMessage>test message</sendMessage> <senderIdDocumentFile></senderIdDocumentFile> <senderIdDocumentFileExtension></senderIdDocumentFileExtension> <lstSupprotiveDocuments> <apis:documentName></apis:documentName> <apis:documentFile></apis:documentFile> <apis:fileExtension></apis:fileExtension> </lstSupprotiveDocuments> <secretKey>469e6008fcee49b9d8cf39e7e32bcbcc</secretKey> <agentReferenceNumber></agentReferenceNumber> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:sendRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:sendRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittaceTrackingCode>45430102206</ns3:remittaceTrackingCode> </return> </ns2:sendRemittanceResponse> </S:Body> </S:Envelope>
|
1-9- Authenticate Remittance
Method name | authenticateRemittance | ||||
Method purpose | This method is required to authenticate remittance after send process in case agent working using two steps mode (creator-authenticator). | ||||
Request Inputs |
|||||
Field | Type | Size | Mandatory | Description | |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | Remittance number |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:authenticateRemittance> <remittancTrackingCode>43043156742</remittancTrackingCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:authenticateRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:authenticateRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:authenticateRemittanceResponse> </S:Body> </S:Envelope> |
1-10- Reject Remittance
Method name | rejectRemittance | ||||
Method purpose | This method used to reject remittance by agent after send process in case agent working using two steps mode (creator-authenticator). | ||||
Request Inputs |
|||||
Field | Type | Size | Mandatory | Description | |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | Remittance number |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:rejectRemittance> <remittancTrackingCode>43043156742</remittancTrackingCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:rejectRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:rejectRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation Successfully</ns3:resultMessage> </return> </ns2:rejectRemittanceResponse> </S:Body> </S:Envelope> |
2- Receive
SHIFT API provides set of web methods for accessing SHIFT API; these methods are required to receive and payout remittance from SHIFT system to Agent system.
The agent should follow the below diagrams to execute receive process
Receive Remittance Flow Diagram – Cash pickup
The below diagram illustrates how receive cash pickup remittance flow work:
The below diagram illustrates how receive cash pickup remittance flow sequence:
Receive Remittance Flow Diagram – Account Deposit
The below diagram illustrates how receive credit to account remittance flow work:
The below diagram illustrates how receive credit to account remittance flow sequence:
2-1- Get Remittance For receive
Method name | getRemittanceForReceive |
Method purpose | This method used to retrieve remittance information (cash pickup), then lock it to complete receive process.
Agent can retrieve and show remittance info if remittance status is READY “unpaid” and not locked by other users.
|
Note | This method retrieves field “receiveOrderCode” and this code should be passed in receive remittance method.
Once Agent call this method and retrieve remittance information, the remittance will be available 10 minutes to perform receiving process “calling receiveRemittance”.
|
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Receive agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | Remittance number that receiver should provide to agent. |
Response outputs
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
remittanceInfo | Object | Field | Type | Description | ||
remittanceTrackingCode | char | |||||
remittanceRecodingDate | Date | Format: dd/MM/yyyy | ||||
sendingCountryCode | char | ISO Alpha-3 (3166) | ||||
destintationCountryCode | char | ISO Alpha-3 (3166) | ||||
PayoutAmount | Decimal | |||||
payingCurrencyCode | char | ISO Alpha-3 (4217) | ||||
PayoutCurrencyCode | char | ISO Alpha-3 (4217) | ||||
payoutSettlementRate | Decimal | Cost rate for payout amount, payout currency to settlement currency |
settlementPayoutAmount | Decimal | Payout amount in settlement currency | |||||||
remittanceStatus | Char | Remittance will be available if
current remittance status is READY |
|||||||
receiveOrderCode | Char | This code should provide in receive remittance method | |||||||
sendingReason
|
Char
|
|
|||||||
sender | Object | Field | Type | Size | |||||
senderId | Char | 11 | |||||||
type | Int | 1 | See type table | ||||||
firstName | Char | 50 | Available if sender type 1 (Only English) | ||||||
middelName | Char | 50 | Available sender type 1 (Only English) | ||||||
lastName | Char | 50 | Available if sender type 1 (Only English) | ||||||
enName | Char | 100 | Available if sender type 2 (Only English) | ||||||
telephone | Char | 20 | |||||||
mobile | Char | 20 | |||||||
address | Char | 200 | |||||||
nationalityCountryCode | Char | 3 | ISO Alpha-3 (3166) | ||||||
birthDateOrEstablishDate | Date | Format: dd/MM/yyyy
If sender type is 1 then sender birthday will be available, if sender type is 2 then company establish date will be available |
|||||||
identityTypeCode | int | ||||||||
identityTypeName | Char | ||||||||
identityNumber | Char | ||||||||
receiver | Object | Field | Type | Size | |||||
receiverId | Char | 11 | |||||||
type | Int | 1 | See type table | ||||||
firstName | Char | 50 | Available if sender type 1 (Only English) | ||||||
middelName | Char | 50 | Available sender type 1 (Only English) | ||||||
lastName | Char | 50 | Available if sender type 1 (Only English) | ||||||
enName | Char | 100 | Available if sender type 2 (Only English) | ||||||
telephone | Char | 20 | |||||||
mobile | Char | 20 | |||||||
address | Char | 200 | |||||||
nationalityCountryCode | Char | 3 | ISO Alpha-3 (3166) | ||||||
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getRemittanceForReceive> <remittancTrackingCode>41941038491</remittancTrackingCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getRemittanceForReceive> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getRemittanceForReceiveResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittanceInfo> <ns3:remittanceTrackingCode>41941038491</ns3:remittanceTrackingCode> <ns3:remittanceRecordingDate>12/07/2020 10:31:44 PM</ns3:remittanceRecordingDate> <ns3:sendingCountryCode>JOR</ns3:sendingCountryCode> <ns3:destintationCountryCode>JOR</ns3:destintationCountryCode> <ns3:payingAmount>0.0</ns3:payingAmount> <ns3:PayoutAmount>100.0</ns3:PayoutAmount> <ns3:payoutCurrencyCode>JOD</ns3:payoutCurrencyCode> <ns3:remittanceStatus>READY</ns3:remittanceStatus> <ns3:payoutSettlementRate>0.7089</ns3:payoutSettlementRate> <ns3:settlementPayoutAmount>141.06</ns3:settlementPayoutAmount> <ns3:receiveOrderCode>I1926761987</ns3:receiveOrderCode> <ns3:sender> <ns3:senderId>198408</ns3:senderId> <ns3:type>1</ns3:type> <ns3:firstName>Ahmad</ns3:firstName> <ns3:lastName>Rami</ns3:lastName> <ns3:telephone/> <ns3:mobile>00962799999990</ns3:mobile> <ns3:address>test</ns3:address> <ns3:nationalityCountryCode>JOR</ns3:nationalityCountryCode> <ns3:birthDateOrEstablishDate>27/07/1980</ns3:birthDateOrEstablishDate> <ns3:identityTypeCode>1</ns3:identityTypeCode> <ns3:identityTypeName>Passport</ns3:identityTypeName> <ns3:identityNumber>1236587888</ns3:identityNumber> </ns3:sender> <ns3:receiver> <ns3:receiverId>271581</ns3:receiverId> <ns3:type>1</ns3:type> <ns3:firstName>Jamal</ns3:firstName> <ns3:lastName>Hasan</ns3:lastName> <ns3:telephone/> <ns3:mobile>224232321312</ns3:mobile> <ns3:address>test address</ns3:address> <ns3:nationalityCountryCode>JOR</ns3:nationalityCountryCode> </ns3:receiver> <ns3:payingToPayoutRate>0.0</ns3:payingToPayoutRate> <ns3:sendingReason>Tourism Expenses</ns3:sendingReason> </ns3:remittanceInfo> </return> </ns2:getRemittanceForReceiveResponse> </S:Body> </S:Envelope> |
2-2- Receive Remittance
Method name | receiveRemittance |
Method purpose | This method used to complete receive process for cash pickup remittance “payout remittance into receiver by agent” |
Note | This method required to pass field “receiveOrderCode” that returned from getRemittanceForReceive method. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Receive Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | The number that receiver should provide to agent. | |||||
receiveOrderCode | Char | 10 | Yes | Provided from getRemittanceForReceive | |||||
receiver | Object | Field | Type | Size | Mandatory | ||||
telephone | Char | 20 | Conditional, you can pass same retrieved value from method getRemittanceForReceive (+ or ++ not accepted) | ||||||
mobile | Char | 20 | |||||||
Char | 100 | No | |||||||
address | Char | 200 | Yes, you can pass same
retrieved value from method getRemittanceForReceive |
||||||
nationalityCountryCode | Char | 3 | Yes, ISO Alpha-3 (3166), or pass same retrieved value from method getRemittanceForReceive | ||||||
identityTypeCode | int | 4 | Yes | ||||||
identityNumber | Char | 20 | Yes | ||||||
identityIssuePlace | Char | 100 | Yes | ||||||
identityIssueDate | Date | Yes,
Format: dd/MM/yyyy |
|||||||
identityExpiryDate | Date | Yes,
Format: dd/MM/yyyy |
|||||||
birthDateOrEstablishDate | Date | Yes,
Format: dd/MM/yyyy |
|||||||
birthPlace | Char | 50 | Yes, you can pass same
retrieved value from method getRemittanceForReceive |
||||||
gender | int | 1 | Yes
1: Male, 2 Female or you can pass same retrieved value from method getRemittanceForReceive |
||||||
occupationOrSector | Char | 100 | Yes, you can pass same
retrieved value from method getRemittanceForReceive |
||||||
postalCode | Char | 50 | No | ||||||
nationalNumber | Char | 50 | No | ||||||
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char | |
agentChargesShare | Decimal | |
agentFXChargesShare | Decimal |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/” xmlns:apis=”http://xml.netbeans.org/schema/ApiSchema”>
<soapenv:Header/> <soapenv:Body> <web:receiveRemittance> <remittancTrackingCode>41941038491</remittancTrackingCode> <receiveOrderCode>I1926761987</receiveOrderCode> <receiver> <apis:telephone></apis:telephone> <apis:mobile>9854555555</apis:mobile> <apis:email></apis:email> <apis:address>test receiver address</apis:address> <apis:nationalityCountryCode>JOR</apis:nationalityCountryCode> <apis:identityTypeCode>1</apis:identityTypeCode> <apis:identityNumber>12344100014</apis:identityNumber> <apis:identityIssuePlace>amman</apis:identityIssuePlace> <apis:identityIssueDate>11/12/2019</apis:identityIssueDate> <apis:identityExpiryDate>10/12/2024</apis:identityExpiryDate> <apis:birthDateOrEstablishDate>01/04/1985</apis:birthDateOrEstablishDate> <apis:gender>1</apis:gender> <apis:occupationOrSector>Engineer</apis:occupationOrSector> <apis:birthPlace>amman</apis:birthPlace> <apis:postalCode></apis:postalCode> <apis:nationalNumber></apis:nationalNumber> </receiver> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:receiveRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:receiveRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:agentChargesShare>2.0</ns3:agentChargesShare> <ns3:agentFXChargesShare>0.0</ns3:agentFXChargesShare> </return> </ns2:receiveRemittanceResponse> </S:Body> </S:Envelope> |
2-3- Get Ready Account Deposit Remittances List
Method name | getReadyAccountDepositRemittancesList |
Method purpose | This method used get all credit to account remittances (List of RTC’s: remittances numbers) with status READY and sent to the same Agent. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Receive agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char | |
RemittanceList | List of Strings | List of Remittance number |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getReadyAccountDepositRemittancesList> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getReadyAccountDepositRemittancesList> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getReadyAccountDepositRemittancesListResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittancesList>46355266381</ns3:remittancesList> <ns3:remittancesList>42144170400</ns3:remittancesList> </return> </ns2:getReadyAccountDepositRemittancesListResponse> </S:Body> </S:Envelope> |
2-4- Get and Process Account Deposit Remittance
Method name | getAndProcessAccountDepositRemittance |
Method purpose | This method used to retrieve Credit to account remittance information and change remittance status to be IN PROCESS, once agent complete deposit process in his system he should complete receiving process in SHIFT system by calling method PayAccountDepositRemittance |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Receive agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittanceTrackingCode | Char | 20 | Yes | The number that retrieved from getReadyAccountDepositRemittancesList |
Response outputs
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
remittanceInfo | Object | Field | Type | Description | ||
remittanceTrackingCode | char | |||||
remittanceRecordingDate | Date | Format: dd/MM/yyyy | ||||
sendingCountryCode | char | ISO Alpha-3 (3166) | ||||
destintationCountryCode | char | ISO Alpha-3 (3166) | ||||
PayoutAmount | Decimal | |||||
PayoutCurrencyCode | Char | |||||
remittanceStatus | Char | Status READY | ||||
payoutSettlementRate | Decimal |
settlementPayoutAmount | Decimal | |||||||
receiveBankName | Char | Bank name | ||||||
receiveBranchName | Char | Branch name | ||||||
receiveAccountNumber | Char | Bank account number | ||||||
otherBank | Char | YES or NO | ||||||
receiveBankCode | Char | Bank code | ||||||
receiveBranchCode | Char | Bank branch code | ||||||
receiveRoutingNumbe | Char | Routing Number | ||||||
receiverSortCode | Char | Sort Code | ||||||
receiverSwiftBIC | Char | Swift/BIC | ||||||
sendingReason | Char | |||||||
sender | Object | Field | Type | Description | ||||
senderID | Char | |||||||
type | Int | See type table | ||||||
firstName | Char | Available if sender type 1 (Only English) | ||||||
middleName | Char | Available sender type 1 (Only English) | ||||||
lastName | Char | Available if sender type 1 (Only English) | ||||||
enName | Char | Available if sender type 2 (Only English) | ||||||
telephone | Char | |||||||
mobile | Char | |||||||
address | Char | |||||||
nationalityCountryCode | Char | ISO Alpha-3 (3166) | ||||||
birthDateOrEstablishDate | Date | Format: dd/MM/yyyy | ||||||
identityTypeCode | int | |||||||
identityTypeName | Char | |||||||
identityNumber | Char | |||||||
receiver | Object | Field | Type | Description | ||||
receiverID | Char | |||||||
type | Int | See type table | ||||||
firstName | Char | Available if sender type 1 (Only English) | ||||||
middleName | Char | Available sender type 1 (Only English) | ||||||
lastName | Char | Available if sender type 1 (Only English) | ||||||
enName | Char | Available if sender type 2 (Only English) | ||||||
telephone | Char | |||||||
mobile | Char | |||||||
address | Char | |||||||
nationalityCountryCode | Char | ISO Alpha-3 (3166) | ||||||
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getAndProcessAccountDepositRemittance> <remittancTrackingCode>46355266381</remittancTrackingCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getAndProcessAccountDepositRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getAndProcessAccountDepositRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittanceInfo> <ns3:remittanceTrackingCode>46355266381</ns3:remittanceTrackingCode> <ns3:remittanceRecordingDate>13/07/2020 09:56:09 AM</ns3:remittanceRecordingDate> <ns3:sendingCountryCode>JOR</ns3:sendingCountryCode> <ns3:destintationCountryCode>JOR</ns3:destintationCountryCode> <ns3:payingAmount>0.0</ns3:payingAmount> <ns3:PayoutAmount>100.0</ns3:PayoutAmount> <ns3:payoutCurrencyCode>JOD</ns3:payoutCurrencyCode> <ns3:remittanceStatus>READY</ns3:remittanceStatus> <ns3:payoutSettlementRate>0.7084</ns3:payoutSettlementRate> <ns3:settlementPayoutAmount>141.16</ns3:settlementPayoutAmount> <ns3:sender> <ns3:senderId>200299</ns3:senderId> <ns3:firstName>Mohammed</ns3:firstName> <ns3:lastName>Alsheik</ns3:lastName> <ns3:telephone/> <ns3:mobile>962798420540</ns3:mobile> <ns3:email>mohammedata79@gmail.com</ns3:email> <ns3:address>Test AddressssseeeTRETRETRET</ns3:address> <ns3:nationalityCountryCode>JOR</ns3:nationalityCountryCode> <ns3:birthDate>07/11/1979</ns3:birthDate> <ns3:identityTypeCode>1</ns3:identityTypeCode> <ns3:identityTypeName>Passport</ns3:identityTypeName> <ns3:identityNumber>1236587888</ns3:identityNumber> </ns3:sender> <ns3:receiver> <ns3:receiverId>271588</ns3:receiverId> <ns3:type>1</ns3:type> <ns3:firstName>Sdfs</ns3:firstName> <ns3:lastName>Sdf</ns3:lastName> <ns3:telephone/> <ns3:mobile>242342332424</ns3:mobile> <ns3:address>dfdsdsfsd</ns3:address> <ns3:nationalityCountryCode>JOR</ns3:nationalityCountryCode> </ns3:receiver> <ns3:receiveBankName>Arab Bank</ns3:receiveBankName> <ns3:receiveAccountNumber>3234234234</ns3:receiveAccountNumber> <ns3:otherBank>YES</ns3:otherBank> <ns3:payingToPayoutRate>0.0</ns3:payingToPayoutRate> <ns3:receiveBankCode>A12345</ns3:receiveBankCode> <ns3:receiveRountringNumber>111110000</ns3:receiveRountringNumber> <ns3:receiveSortCode>453543543</ns3:receiveSortCode> <ns3:receiveSwiftBic>BJORJOAX</ns3:receiveSwiftBic> <ns3:sendingReason>Travel Expenses</ns3:sendingReason> </ns3:remittanceInfo> </return> </ns2:getAndProcessAccountDepositRemittanceResponse> </S:Body> </S:Envelope> |
2-5- Pay Account Deposit Remittance
Method name | PayAccountDepositRemittance |
Method purpose | This method used to pay “complete receive” credit to account remittance after finish deposit process by agent, this method should be call to change remittance status to be PAID otherwise the remittance status will keep IN PROCESS (in deposit process) until call this method. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Receive agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittanceTrackingCode | Char | 20 | Yes |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:PayAccountDepositRemittance> <remittancTrackingCode>46355266381</remittancTrackingCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:PayAccountDepositRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:PayAccountDepositRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:PayAccountDepositRemittanceResponse> </S:Body> </S:Envelope> |
3- SHIFT Utility Web service
3-1- Inquiry Remittance
Method name | inquiryRemittance |
Method purpose | This method used to retrieve remittance information that related to the agent *This method will retrieve data if requested agent execute send or receive of remittance. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | *The agent can pass apiAgentReferenceNumber if available instead of remittancTrackingCode in this field |
Response outputs
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
remittanceInfo | Object | Field | Type | Description | ||
remittanceTrackingCode | char | |||||
remittanceRecodingDate | Date | Format: dd/MM/yyyy | ||||
sendingCountryCode | char | ISO Alpha-3 (3166) | ||||
destintationCountryCode | char | ISO Alpha-3 (3166) | ||||
payingAmount | decimal | |||||
PayoutAmount | decimal | |||||
payingCurrencyCode | Char | |||||
PayoutCurrencyCode | Char | |||||
remittanceStatus | Char | |||||
sendingReason | Char | |||||
payingSettlementRate | Decimal | |||||
payoutSettlementRate | Decimal | |||||
settlementPayingAmount | Decimal | |||||
settlementPayoutAmount | Decimal | |||||
payingToPayoutRate | Decimal | |||||
receiveBankName | Char |
receiveBankCode | Char | ||||||
receiveAccountNumber | Char | ||||||
receiveBankBranchCode | Char | ||||||
receiveCityName | Char | ||||||
serviceType | char | ||||||
apiAgentReferenceNumber Char
|
Will returned if available
|
||||||
sender | Object | Field | Type | Description | |||
senderId | Char | ||||||
type | Int | See type table | |||||
firstName | Char | Available if sender type 1 (Only English) | |||||
middleName | Char | Available sender type 1 (Only English) | |||||
lastName | Char | Available if sender type 1 (Only English) | |||||
enName | Char | Available if sender type 2 (Only English) | |||||
telephone | Char | ||||||
mobile | Char | ||||||
address | Char | ||||||
nationalityCountryCode | Char | ISO Alpha-3 (3166) | |||||
birthDateOrEstablishDate | Date | Format: dd/MM/yyyy | |||||
identityTypeCode | int | ||||||
identityTypeName | Char | ||||||
identityNumber | Char | ||||||
identityIssuePlace | Char | ||||||
identityExpiryDate | Date | dd/MM/yyyy | |||||
receiver | Object | Field | Type | Description | |||
receiverId | Char | ||||||
type | Int | See type table | |||||
firstName | Char | Available if sender type 1 (Only English) | |||||
middleName | Char | Available sender type 1 (Only English) | |||||
lastName | Char | Available if sender type 1 (Only English) | |||||
enName | Char | Available if sender type 2 (Only English) | |||||
telephone | Char | ||||||
mobile | Char | ||||||
address | Char | ||||||
nationalityCountryCode | Char | ISO Alpha-3 (3166) | |||||
identityTypeCode | int | ||||||
identityTypeName | Char | ||||||
identityNumber | Char | ||||||
identityIssuePlace | Char | ||||||
identityExpiryDate | Date | dd/MM/yyyy | |||||
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:inquiryRemittance> <remittancTrackingCode>43827107816</remittancTrackingCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:inquiryRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:inquiryRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittanceInfo> <ns3:remittanceTrackingCode>43598199835</ns3:remittanceTrackingCode> <ns3:apiAgentReferenceNumber></ns3:apiAgentReferenceNumber> <ns3:remittanceRecordingDate>13/07/2020 11:03:30 AM</ns3:remittanceRecordingDate> <ns3:sendingCountryCode>JOR</ns3:sendingCountryCode> <ns3:destintationCountryCode>EGY</ns3:destintationCountryCode> <ns3:payingAmount>0.0</ns3:payingAmount> <ns3:PayoutAmount>1080.99</ns3:PayoutAmount> <ns3:payoutCurrencyCode>EGP</ns3:payoutCurrencyCode> <ns3:remittanceStatus>PAIDOUT</ns3:remittanceStatus> <ns3:payoutSettlementRate>15.95</ns3:payoutSettlementRate> <ns3:settlementPayoutAmount>67.77</ns3:settlementPayoutAmount> <ns3:settlementPayingAmount>0.0</ns3:settlementPayingAmount> <ns3:payingSettlementRate>0.0</ns3:payingSettlementRate> <ns3:sender> <ns3:senderId>198420</ns3:senderId> <ns3:type>1</ns3:type> <ns3:firstName>Ahmad</ns3:firstName> <ns3:lastName>Qudimat</ns3:lastName> <ns3:mobile>0096799923341</ns3:mobile> <ns3:address>amman</ns3:address> <ns3:nationalityCountryCode>JOR</ns3:nationalityCountryCode> <ns3:birthDateOrEstablishDate>27/02/1980</ns3:birthDateOrEstablishDate> <ns3:identityTypeCode >1</ns3:identityTypeCode > <ns3:identityTypeName >Passport</ns3:identityTypeName > <ns3:identityNumber >123123</ns3:identityNumber > <ns3:identityIssuePlace >issuer place</ns3:identityIssuePlace > <ns3:identityExpiryDate >27/02/2025</ns3:identityExpiryDate > </ns3:sender> <ns3:receiver> <ns3:receiverId>271593</ns3:receiverId> <ns3:type>1</ns3:type> <ns3:firstName>Sami</ns3:firstName> <ns3:middelName>Moha</ns3:middelName> <ns3:lastName>Dawwod</ns3:lastName> <ns3:mobile>2011123455555</ns3:mobile> <ns3:address>test</ns3:address> <ns3:nationalityCountryCode>EGY</ns3:nationalityCountryCode> <ns3:identityTypeCode >1</ns3:identityTypeCode > <ns3:identityTypeName >Passport</ns3:identityTypeName > <ns3:identityNumber >123123</ns3:identityNumber > <ns3:identityIssuePlace >issuer place</ns3:identityIssuePlace > <ns3:identityExpiryDate >27/02/2025</ns3:identityExpiryDate > </ns3:receiver> <ns3:receiveAccountNumber>00/2011123455555</ns3:receiveAccountNumber> <ns3:payingToPayoutRate>0.0</ns3:payingToPayoutRate> <ns3:sendingReason>Study Expenses</ns3:sendingReason> </ns3:remittanceInfo> </return> </ns2:inquiryRemittanceResponse> </S:Body> </S:Envelope> |
3-2- Get Remittance status
Method name | getRemittanceStatus |
Method purpose | This method used to retrieve current remittance status from SHIFT system |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | *The agent can pass apiAgentReferenceNumber if available instead of remittancTrackingCode in this field |
Response outputs
Field | Type | Description | |||
resultCode | Char | see return error messages and codes table | |||
resultMessage | Char | ||||
remittanceStatus | Char | Status | Description | ||
READY | Remittance sent and available to payout | ||||
PAIDOUT | Remittance paid | ||||
CANCELED | Send reversal | ||||
REFUNDED | Refund | ||||
FREEZED | Over 45 rule | ||||
SUSPENDED | Paused | ||||
BLOCKED | Fund reservation | ||||
UNDER CHECK | Under Check | ||||
IN PROCESS
|
In process
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getRemittanceStatus> <remittancTrackingCode>46355266381</remittancTrackingCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> |
</web:getRemittanceStatus>
</soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getRemittanceStatusResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittanceStatus>PAIDOUT</ns3:remittanceStatus> </return> </ns2:getRemittanceStatusResponse> </S:Body> </S:Envelope> |
3-3- Agent Suspend Remittance
Method name | agentSuspendRemittance |
Method purpose | This method used to suspend remittance that send from agent, Remittance will stay in suspend status until agent call reinstate suspend remittance method. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | |
reason | Char | 200 | Yes | Reason of suspend remittance |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:agentSuspendRemittance> <remittancTrackingCode>40957140070</remittancTrackingCode> <reason>test reason</reason> |
3-4- Agent Reinstate Suspended Remittance
Method name | agentReinstateSuspendRemittance |
Method purpose | This method used to reinstate suspended remittance by agent. |
<agentCode>GB001</agentCode>
<userId>qahmad</userId> <userPassword>123123</userPassword> </web:agentSuspendRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:agentSuspendRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:agentSuspendRemittanceResponse> </S:Body> </S:Envelope> |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:agentReinstateSuspendRemittance> <remittancTrackingCode>40957140070</remittancTrackingCode> |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
remittancTrackingCode | Char | 20 | Yes | |
reason | Char | 200 | Yes | Reason of reinstate suspend remittance |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
3-5- Get Agent Remittances List
Method name | getAgentRemittancesList |
Method purpose | This method used to retrieve executed remittances list by the agent. |
<reason>test reason</reason>
<agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:agentReinstateSuspendRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:agentReinstateSuspendRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:agentReinstateSuspendRemittanceResponse> </S:Body> </S:Envelope> |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
fromDate | Date | Yes | Format: dd/MM/yyyy | |
toDate | Date | Yes | Format: dd/MM/yyyy |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char | |
remittanceTrackingCode | Char | |
status | Char | |
serviceType | Char | |
recordingDate | Date | Format: dd/MM/yyyy |
payoutDate | Date | Format: dd/MM/yyyy |
payingAmount | Decimal | Paying amount from customer |
payoutAmount | Decimal | Payout amount to beneficiary |
payingCurrencyCode | Char | Paying currency from customer |
payoutCurrencyCode | Char | Payout currency to beneficiary |
Charges | Decimal | Remittance charges |
TaxPercent | Decimal | Tax percent |
totalPayingAmount | Decimal | Total paying amount from customer |
payingToPayoutRate | Decimal | Customer exchange rate |
payingSettlementRate | Decimal | Cost rate for paying amount |
payoutSettlementRate | Decimal | Cost rate for payout amount |
settlementPayingAmount | Decimal | Paying amount in settlement currency |
settlementPayoutAmount | Decimal | Payout amount in settlement currency |
SettlementCharges | Decimal | Remittance charges in settlement currency |
agentChargesShare | Decimal | Agent charges charge in settlement currency |
agentFXChargesShare | Decimal | Agent fx share in settlement currency |
senderName | Char | The full name of sender |
receiverName | Char | The full name of receiver |
sendingCountry | Char | |
receivingCountry | Char | |
TaxAmount | Decimal | Tax amount in paying currency |
sendingReason | Char | |
apiAgentReferenceNumber | Char | Will returned if available |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getAgentRemittancesList> <fromDate>10/07/2020</fromDate> <toDate>13/07/2020</toDate> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getAgentRemittancesList> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getAgentRemittancesListResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> |
<ns3:resultMessage>Operation successfully</ns3:resultMessage>
<ns3:agentRemittancesList> <ns3:remittanceTrackingCode>25885075399</ns3:remittanceTrackingCode> <ns3:status>READY</ns3:status> <ns3:recordingDate>12/07/2020 10:17:01 AM</ns3:recordingDate> <ns3:payingAmount>10.0</ns3:payingAmount> <ns3:payoutAmount>0.0</ns3:payoutAmount> <ns3:payingCurrencyCode>JOD</ns3:payingCurrencyCode> <ns3:charges>10.0</ns3:charges> <ns3:taxPercent>0.05</ns3:taxPercent> <ns3:totalPayingAmount>20.5</ns3:totalPayingAmount> <ns3:payingToPayoutRate>0.0</ns3:payingToPayoutRate> <ns3:payingSettlementRate>0.709</ns3:payingSettlementRate> <ns3:payoutSettlementRate>0.0</ns3:payoutSettlementRate> <ns3:settlementPayingAmount>14.1</ns3:settlementPayingAmount> <ns3:settlementPayoutAmount>0.0</ns3:settlementPayoutAmount> <ns3:settlementCharges>14.1</ns3:settlementCharges> <ns3:agentChargesShare>4.94</ns3:agentChargesShare> <ns3:agentFXChargesShare>0.32</ns3:agentFXChargesShare> <ns3:senderName>Ali Khalil</ns3:senderName> <ns3:receiverName>Gfg Fdgfd</ns3:receiverName> <ns3:sendingCountry>JOR</ns3:sendingCountry> <ns3:receivingCountry>LTU</ns3:receivingCountry> <ns3:serviceType>CASH</ns3:serviceType> <ns3:taxAmount>0.5</ns3:taxAmount> <ns3:sendingReason>Study Expenses</ns3:sendingReason> </ns3:agentRemittancesList> <ns3:agentRemittancesList> <ns3:remittanceTrackingCode>41282198157</ns3:remittanceTrackingCode> <ns3:status>IN PROCESS</ns3:status> <ns3:recordingDate>12/07/2020 02:30:50 PM</ns3:recordingDate> <ns3:payingAmount>100.0</ns3:payingAmount> <ns3:payoutAmount>0.0</ns3:payoutAmount> <ns3:payingCurrencyCode>JOD</ns3:payingCurrencyCode> <ns3:charges>3.55</ns3:charges> <ns3:taxPercent>0.05</ns3:taxPercent> <ns3:totalPayingAmount>103.73</ns3:totalPayingAmount> <ns3:payingToPayoutRate>0.0</ns3:payingToPayoutRate> <ns3:payingSettlementRate>0.709</ns3:payingSettlementRate> <ns3:payoutSettlementRate>0.0</ns3:payoutSettlementRate> <ns3:settlementPayingAmount>141.04</ns3:settlementPayingAmount> <ns3:settlementPayoutAmount>0.0</ns3:settlementPayoutAmount> <ns3:settlementCharges>5.0</ns3:settlementCharges> <ns3:agentChargesShare>1.75</ns3:agentChargesShare> <ns3:agentFXChargesShare>0.07</ns3:agentFXChargesShare> <ns3:senderName>Jaber Khames</ns3:senderName> <ns3:receiverName>Jamal Ammar</ns3:receiverName> <ns3:sendingCountry>JOR</ns3:sendingCountry> <ns3:receivingCountry>PHL</ns3:receivingCountry> <ns3:serviceType>CASH</ns3:serviceType> <ns3:taxAmount>0.18</ns3:taxAmount> <ns3:sendingReason>Tourism Expenses</ns3:sendingReason> </ns3:agentRemittancesList> </return> </ns2:getAgentRemittancesListResponse> </S:Body> </S:Envelope> |
3-6- Get Identities Types
Method name | getIdentities |
Method purpose | This method used to return list of available Identities types depends on agent country and customer nationality. |
Notes | Identities classified to citizen, Foreign and companies Identities depends on agent source country and customer nationality and customer type, if customer nationality same as source country then the system will return Identities for citizens else the
Identities for foreign |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
customerType | Int | 1 | Yes | See customer type table accept values (1,2) |
countryCode | Char | 3 | Yes | ISO Alpha-3 (3166) / Agent source country |
nationality | Char | 3 | Yes | ISO Alpha-3 (3166) / Sender nationality |
Response outputs
Field | Type | Description | ||||||||||||
resultCode | Char | see return error messages and codes table | ||||||||||||
resultMessage | Char | |||||||||||||
IdentitiesList | Object | List of Identities
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getIdentities> <customerType>1</customerType> <countryCode>JOR</countryCode> <nationality>JOR</nationality> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getIdentities> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:getIdentitiesResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:IdentitiesList> <ns3:identityTypeCode>1</ns3:identityTypeCode> <ns3:identityName>Passport</ns3:identityName> <ns3:identitySeconderyName>جواز سفر</ns3:identitySeconderyName> </ns3:IdentitiesList> <ns3:IdentitiesList> <ns3:identityTypeCode>3</ns3:identityTypeCode> <ns3:identityName>Driving License</ns3:identityName> <ns3:identitySeconderyName>رخصة القيادة</ns3:identitySeconderyName> </ns3:IdentitiesList> </return> </ns2:getIdentitiesResponse> </S:Body> </S:Envelope> |
3-7- Change User Password
Method name | changeUserPassword |
Method purpose | This method used to change api user password, we recommend to change the provided password at the 1st time. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
newPassword | Char | 30 | Yes | User new password should contain at least eight alphanumeric characters and should not match last five used passwords |
confirmNewPassword | Char | 30 | Yes | Confirm new password |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:changeUserPassword> <newPassword>a12345678</newPassword> <confirmNewPassword>a12345678</confirmNewPassword> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:changeUserPassword> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:changeUserPasswordResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:changeUserPasswordResponse> </S:Body> </S:Envelope> |
3-8- Modify Receiver
Method name | modifyReceiver |
Method purpose | This method used to modify remittance receiver info if remittance status allowed the process “Status Ready”.
The agent can modify any field in receiver object, only need modify fields required to be passed in the request. |
Note | If any field send with blank tag that mean this field have a new value “blank” and the field value will be changed to blank. |
Request Inputs
Field | Type | Size | Mandatory | Description | |||||
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT | |||||
userId | Char | 20 | Yes | User ID assigned by SHIFT | |||||
userPassword | Char | 30 | Yes | User password assigned by SHIFT | |||||
remittancTrackingCode | Char | 20 | Yes | ||||||
receiver | Object | Field | Type | Size | Mandatory | ||||
firstName | Char | 50 | Yes, if customer type 1 (Only English) | ||||||
middelName | Char | 50 | Yes, if send country required middle name and customer type 1 (Only English) | ||||||
lastName | Char | 50 | Yes, if customer type 1 (Only English) | ||||||
enName | Char | 100 | Yes, if customer type 2 (Only English) | ||||||
telephone | Char | 20 | *One of these fields is mandatory
(+ or ++ not accepted) |
||||||
mobile | Char | 20 | |||||||
Char | 100 | No | |||||||
address | Char | 200 | Yes | ||||||
nationalityCountryCode | Char | 3 | Yes | ||||||
gender | int | 1 | Yes if customer type 1 See gender types table accept values (1,2) | ||||||
occupationOrSector
|
Char
|
100
|
See get Occupations or sector
|
||||||
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/” xmlns:apis=”http://xml.netbeans.org/schema/ApiSchema”>
<soapenv:Header/> <soapenv:Body> <web:modifyReceiver> <remittancTrackingCode></remittancTrackingCode> <receiver> <apis:receiverId></apis:receiverId> <apis:type></apis:type> <apis:firstName></apis:firstName> <apis:middelName></apis:middelName> <apis:lastName></apis:lastName> <apis:enName></apis:enName> <apis:telephone></apis:telephone> <apis:mobile></apis:mobile> <apis:email></apis:email> <apis:address></apis:address> <apis:gender></apis:gender> <apis:nationalityCountryCode></apis:nationalityCountryCode> <apis:occupationOrSector></apis:occupationOrSector> </receiver> <agentCode></agentCode> <userId></userId> <userPassword></userPassword> </web:modifyReceiver> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:modifyReceiverResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:modifyReceiverResponse> </S:Body> </S:Envelope> |
3-9- Modify Sender
Method name | modifySender |
Method purpose | This method used to modify remittance sender info if remittance status allowed the process “Status Ready”.
The agent can modify any field in sender object, only need modify fields required to be passed in the request. |
Note | if any field send with blank tag that mean this field have a new value “blank” and the field value will be changed to blank. |
Request Inputs
Field | Type | Size | Mandatory | Description | |||||
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT | |||||
userId | Char | 20 | Yes | User ID assigned by SHIFT | |||||
userPassword | Char | 30 | Yes | User password assigned by SHIFT | |||||
remittancTrackingCode | Char | 20 | Yes | ||||||
sender | Object | Field | Type | Size | Mandatory | ||||
firstName | Char | 50 | Yes, if customer type 1
(Only English) |
||||||
middelName | Char | 50 | Yes, if send country required middle name and customer type 1 (Only English) | ||||||
lastName | Char | 50 | Yes, if customer type 1
(Only English) |
||||||
enName | Char | 100 | Yes, if customer type 2
(Only English) |
||||||
telephone | Char | 20 | One of these fields is mandatory (+ or ++ not accepted) | ||||||
mobile | Char | 20 | |||||||
Char | 100 | No | |||||||
address | Char | 200 | Yes | ||||||
nationalityCountryCode | Char | 3 | Yes | ||||||
identityTypeCode | int | 4 | Yes | ||||||
identityNumber | Char | 20 | Yes | ||||||
identityIssuePlace | Char | 100 | Yes | ||||||
identityIssueDate | Date | Yes dd/MM/yyyy | |||||||
identityExpiryDate | Date | Yes dd/MM/yyyy | |||||||
birthDateOrEstablish | Date | Yes dd/MM/yyyy | |||||||
birthPlace | Char | 50 | Yes, if customer type 1 | ||||||
gender | int | 1 | Yes, if customer type 1
See gender types table accept values (1,2) |
||||||
occupationOrSector | Char | 100 | Yes | ||||||
postalCode | Char | 50 | No | ||||||
nationalNumber | Char | 50 | No | ||||||
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/” xmlns:apis=”http://xml.netbeans.org/schema/ApiSchema”>
<soapenv:Header/> <soapenv:Body> <web:modifySender> <remittancTrackingCode></remittancTrackingCode> <sender> <apis:firstName></apis:firstName> <apis:middelName></apis:middelName> <apis:lastName></apis:lastName> <apis:enName></apis:enName> <apis:telephone></apis:telephone> <apis:mobile></apis:mobile> <apis:email></apis:email> <apis:address></apis:address> <apis:nationalityCountryCode></apis:nationalityCountryCode> <apis:identityTypeCode></apis:identityTypeCode> <apis:identityNumber></apis:identityNumber> <apis:identityIssuePlace></apis:identityIssuePlace> <apis:identityIssueDate></apis:identityIssueDate> <apis:identityExpiryDate></apis:identityExpiryDate> <apis:gender></apis:gender> |
<apis:occupationOrSector></apis:occupationOrSector>
<apis:postalCode></apis:postalCode> <apis:birthDateOrEstablish></apis:birthDateOrEstablish> <apis:birthPlace></apis:birthPlace> <apis:nationalNumber></apis:nationalNumber> </sender> <agentCode></agentCode> <userId></userId> <userPassword></userPassword> </web:modifySender> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:modifySenderResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:modifySenderResponse> </S:Body> </S:Envelope> |
Field | Type | Size | Mandatory | Description | ||||
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT | ||||
userId | Char | 20 | Yes | User ID assigned by SHIFT | ||||
userPassword | Char | 30 | Yes | User password assigned by SHIFT | ||||
remittancTrackingCode | Char | 20 | Yes | |||||
receiver | Object | Field | Type | Size | Mandatory | |||
identityTypeCode | int | 4 | Yes, Selected Identity type | |||||
identityNumber | Char | 20 | Yes | |||||
identityIssuePlace | Char | 100 | Yes | |||||
3-10- Refund Remittane
Method name | refundRemittance |
Method purpose | This method used to refund remittance if remittance status allowed the process. |
Note | The sender will lose his charges if remittance refunded.
Customer Identity required in this operation |
Request Inputs
identityIssueDate | Date | Yes dd/MM/yyyy | |||||
identityExpiryDate | Date | Yes dd/MM/yyyy | |||||
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/” xmlns:apis=”http://xml.netbeans.org/schema/ApiSchema”>
<soapenv:Header/> <soapenv:Body> <web:refundRemittance> <remittancTrackingCode>49670088378</remittancTrackingCode> <receiver> <apis:identityTypeCode>1</apis:identityTypeCode> <apis:identityNumber>45644410011</apis:identityNumber> <apis:identityIssuePlace>amman</apis:identityIssuePlace> <apis:identityIssueDate>10/03/2018</apis:identityIssueDate> <apis:identityExpiryDate>09/03/2023</apis:identityExpiryDate> </receiver> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>a12345678</userPassword> </web:refundRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:refundRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:refundRemittanceResponse> </S:Body> </S:Envelope> |
3-11- Add Customer
Method name | addCustomer |
Method purpose | This method used to create new customer, this process will create customer profile Id and the customer can use it later, the agent can use lookup by customer Id to retrieve customer information. |
Request Inputs
Field | Type | Size | Mandatory | Description | |||||
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT | |||||
userId | Char | 20 | Yes | User ID assigned by SHIFT | |||||
userPassword | Char | 30 | Yes | User password assigned by SHIFT | |||||
Customer | Object | Field | Type | Size | Mandatory | ||||
type | Int | 1 | See customer type table accept values (1,2) | ||||||
firstName | Char | 50 | Mandatory if customer
type 1 (Only English) |
||||||
middelName | Char | 50 | Mandatory if send country required middle name and customer type 1 (Only English) *If this field not required pleas pass it blank | ||||||
lastName | Char | 50 | Mandatory if customer
type 1 (Only English) |
||||||
enName | Char | 100 | Mandatory if customer
type 2 (Only English) |
||||||
telephone | Char | 20 | One of these fields is mandatory
(+ or ++ not accepted) |
||||||
mobile | Char | 20 | |||||||
Char | 100 | No | |||||||
address | Char | 200 | Yes | ||||||
nationalityCountryCode | Char | 3 | Yes, ISO Alpha-3 (3166) | ||||||
identityTypeCode | int | 4 | Yes, Selected Identity type | ||||||
identityNumber | Char | 20 | Yes | ||||||
identityIssuePlace | Char | 100 | Yes | ||||||
identityIssueDate | Date | Yes, Format: dd/MM/yyyy | |||||||
identityExpiryDate | Date | Yes, Format: dd/MM/yyyy | |||||||
birthDateOrEstablishDate | Date | Yes, Format: dd/MM/yyyy | |||||||
birthPlace | Char | 50 | Yes or No depends on destination | ||||||
gender | int | 1 | Mandatory if customer type 1
See gender types table accept values (1,2) |
||||||
occupationOrSector | Char | 100 | Yes, Depends on customer type
See get Occupations or sector |
||||||
postalCode | Char | 50 | No | ||||||
nationalNumber | Char | 50 | No
*If this field not required pleas pass it blank |
||||||
sourceOfFund | Char | 50 | See get source of fund | ||||||
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char | |
CustomerId | Int | Customer Id: for new customer or exist customer in case system return error 9304 “Error Invalid Input Data customer already exists” |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/” xmlns:apis=”http://xml.netbeans.org/schema/ApiSchema”>
<soapenv:Header/> <soapenv:Body> <web:addCustomer> <customer> |
<apis:type>1</apis:type>
<apis:firstName>Lama</apis:firstName> <apis:middelName>Zak</apis:middelName> <apis:lastName>Jamal</apis:lastName> <apis:enName></apis:enName> <apis:telephone></apis:telephone> <apis:mobile>07888888</apis:mobile> <apis:email></apis:email> <apis:address>test address</apis:address> <apis:nationalityCountryCode>JOR</apis:nationalityCountryCode> <apis:identityTypeCode>1</apis:identityTypeCode> <apis:identityNumber>528710122</apis:identityNumber> <apis:identityIssuePlace>Amman</apis:identityIssuePlace> <apis:identityIssueDate>15/03/2017</apis:identityIssueDate> <apis:identityExpiryDate>14/03/2022</apis:identityExpiryDate> <apis:gender>2</apis:gender> <apis:occupationOrSector>Doctor</apis:occupationOrSector> <apis:postalCode></apis:postalCode> <apis:birthDateOrEstablishDate>11/01/2020</apis:birthDateOrEstablishDate> <apis:birthPlace>amman</apis:birthPlace> <apis:nationalNumber>9850114444</apis:nationalNumber> <apis:sourceOfFund></apis:sourceOfFund> </customer> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>a12345678</userPassword> </web:addCustomer> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:addCustomerResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:customerId>31243367</ns3:customerId> </return> </ns2:addCustomerResponse> </S:Body> </S:Envelope> |
3-12- Modify Customer
Method name | modifyCustomer |
Method purpose | This method used to modify some customer info.
The agent can modify some field in customer object, only modified fields required to be passed in the request. |
Note | If any field send with blank tag that mean this field have a new value “blank” and the field value will be changed to blank. |
Request Inputs
Field | Type | Size | Mandatory | Description | |||||
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT | |||||
userId | Char | 20 | Yes | User ID assigned by SHIFT | |||||
userPassword | Char | 30 | Yes | User password assigned by SHIFT | |||||
sender | Object | Field | Type | Size | Mandatory | ||||
CustomerId | Char | 11 | Yes | ||||||
telephone | Char | 20 | One of these fields is mandatory (+ or ++ not accepted) | ||||||
mobile | Char | 20 | |||||||
birthDateOrEstablishDate | Char | Yes, Format:
DD/MM/YYYY |
|||||||
address | Char | 200 | Yes | ||||||
gender | Int | 1 | Mandatory if customer type 1 See gender types table
accept values (1,2) |
||||||
occupationOrSector | Char | 100 | Yes, Depends on customer type See get
Occupations or sector |
||||||
postalCode | Char | 50 | No | ||||||
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/>
<soapenv:Body> <web:modifyCustomer> <customerId>30545692</customerId> <telephone>876544333</telephone> <mobile>44444444</mobile> <address>test</address> <gender>1</gender> <occupationOrSector>doctor</occupationOrSector> <postalCode>12345</postalCode> <birthDateOrEstablishDate>11/11/2019</birthDateOrEstablishDate> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>a12345678</userPassword> </web:modifyCustomer> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:modifyCustomerResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:customerId>0</ns3:customerId> </return> </ns2:modifyCustomerResponse> </S:Body> </S:Envelope>
|
3-13- Customer Lookup
Method name | customerLookup |
Method purpose | This method used to get customer info |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
customerId | Int | 8 | Conditional | Customer Id |
identityTypeCode | Int | 4 | Conditional | These two fields should pass in case search by identity number |
identityNumber | Char | 20 | Conditional |
nationalityCountryCode | Char | 3 | Conditional | ISO Alpha-3 (3166), These two fields should pass in case search by national number |
nationalNumber | char | 50 | Conditional | |
mobile | char | 20 | Conditional |
Response outputs
Field | Type | Description | |||||
resultCode | Char | see return error messages and codes table | |||||
resultMessage | Char | ||||||
Customer | Object | Field | Type | Size | Mandatory | ||
Id | Int | 8 | |||||
type | Int | 1 | See customer type table | ||||
firstName | Char | 50 | |||||
middelName | Char | 50 | |||||
lastName | Char | 50 | |||||
enName | Char | 100 | |||||
telephone | Char | 20 | |||||
mobile | Char | 20 | |||||
Char | 100 | ||||||
address | Char | 200 | |||||
nationalityCountryCode | Char | 3 | |||||
identityTypeCode | int | 4 | |||||
identityNumber | Char | 20 | |||||
identityIssuePlace | Char | 100 | |||||
identityIssueDate | Date | dd/MM/yyyy | |||||
identityExpiryDate | Date | dd/MM/yyyy | |||||
birthDateOrEstablishDate | Date | dd/MM/yyyy | |||||
birthPlace | Char | ||||||
gender | int | 1 | 1: Male, 2 Female | ||||
occupationOrSector | Char | ||||||
postalCode | Char | ||||||
nationalNumber | Char | ||||||
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:customerLookup> <customerId>30545692</customerId> <agentCode>GB001</agentCode> |
<userId>qahmad</userId>
<userPassword>a12345678</userPassword> </web:customerLookup> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:customerLookupResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:customerId>0</ns3:customerId> <ns3:customer> <ns3:id>30545692</ns3:id> <ns3:type>1</ns3:type> <ns3:firstName>Lama</ns3:firstName> <ns3:middelName>Zak</ns3:middelName> <ns3:lastName>Jamal</ns3:lastName> <ns3:telephone>876544333</ns3:telephone> <ns3:mobile>44444444</ns3:mobile> <ns3:address>test</ns3:address> <ns3:nationalityCountryCode>JOR</ns3:nationalityCountryCode> <ns3:identityTypeCode>1</ns3:identityTypeCode> <ns3:identityNumber>528710444443122</ns3:identityNumber> <ns3:identityIssuePlace>Amman</ns3:identityIssuePlace> <ns3:identityIssueDate>01/01/1970</ns3:identityIssueDate> <ns3:identityExpiryDate>15/03/2017</ns3:identityExpiryDate> <ns3:gender>1</ns3:gender> <ns3:occupationOrSector>doctor</ns3:occupationOrSector> <ns3:postalCode>12345</ns3:postalCode> <ns3:birthDateOrEstablishDate>11/11/2019</ns3:birthDateOrEstablishDate> <ns3:birthPlace>amman</ns3:birthPlace> </ns3:customer> </return> </ns2:customerLookupResponse> </S:Body> </S:Envelope> |
Method name | getSettlementReport |
Method purpose | This method used to get agent settlement report |
3-14- Get Settlement Report
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
fromDate | Char | Yes | Date Format: dd/MM/yyyy | |
toDate | Char | Yes | Date Format: dd/MM/yyyy |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getSettlementReport> </S:Body> </S:Envelope> |
3-15- Get Outstanding Remittances
Method name | getOutstandingRemittancesList |
Method purpose | This method used to get outstanding remittances for point to point remittances. This method required special permission to receive agent. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userID | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
destinationCountryCode | Char | 3 | Yes | The destination country code, ISO Alpha3 |
serviceType | Char | 20 | Yes | See service types table |
Response outputs
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
remittanceOutstandingList | Object | Type | Description | Type | ||
remittanceTrackingCode | char | |||||
apiAgentReferenceNumber | Char | Will returned if available | ||||
recordingDate | Date | dd/MM/yyyy | ||||
payoutAmount | Decimal | |||||
payoutCurrencyCode | char | ISO Alpha3 | ||||
senderName | char | |||||
receiverName | char | |||||
receiverMobile | char | |||||
serviceType | Char | CASH or CREDIT |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getOutstandingRemittancesList> <destinationCountryCode>EGY</destinationCountryCode> <serviceType>CASH</serviceType> <agentCode>GB001</agentCode> <userId>testuser</userId> |
<userPassword>testpass</userPassword>
</web:getOutstandingRemittancesList> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getOutstandingRemittancesListResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittanceOutstandingList> <ns3:remittanceTrackingCode>41687184901</ns3:remittanceTrackingCode> <ns3:recordingDate>13/08/2018 09:37:04 AM</ns3:recordingDate> <ns3:payoutAmount>102.0</ns3:payoutAmount> <ns3:payoutCurrencyCode>JOD</ns3:payoutCurrencyCode> <ns3:senderName>Sender name test</ns3:senderName> <ns3:receiverName>receiver name test</ns3:receiverName> <ns3:receiverMobile>009620000</ns3:receiverMobile> <ns3:serviceType>CASH</ns3:serviceType> </ns3:remittanceOutstandingList> </return> </ns2:getOutstandingRemittancesListResponse> </S:Body> </S:Envelope>
|
3-16- Get Country Info
Method name | getCountryInfo |
Method purpose | This method used to retrieve country information (general restrictions and rules) |
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
countryCode | Char | 3 | Yes | ISO Alpha3 |
Response Output
CountryInfo | Object | Field | Type | Description | ||
legalAge | Int | |||||
generalRules | Char | |||||
restrictions | Char | |||||
idLimit | Int | |||||
sendingLimitCashPickup | Int | |||||
receivingLimitCashPickup | Int | |||||
sendingLimitAccountDiposit | Int | |||||
receivingLimitAccountDiposit | Int | |||||
sendingLimitCashToDoor | Int | |||||
receivingLimitCashToDoor | Int | |||||
taxPercent | decimal | |||||
taxNameEnglish | Char | |||||
taxNameSecondary | Char | |||||
taxInfo | Char | |||||
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getCountryInfo> <countryCode>JOR</countryCode> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>a12345678</userPassword> </web:getCountryInfo> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”>
<S:Body> <ns2:getCountryInfoResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:CountryInfo> <ns3:legalAge>18</ns3:legalAge> <ns3:taxPercent>0.05</ns3:taxPercent> <ns3:generalRules>- Weekend: Friday – The receiving currency: JOD and USD Public Holidays: 1 January New Year
1 Moharram New Hijri Year 12 Rabee’ Awal Memory of Prophet Mohammad’s Birth 1 May Labour Day 25 May Independence Day of Jordan 25 December Christmas </ns3:generalRules> <ns3:restrictions>Legal Age: 18 Maximum Amount to send for each remittance: 20,000 USD Maximum Amount to recieve for each remittance: 20,000 USD</ns3:restrictions> <ns3:idLimit>0</ns3:idLimit> <ns3:sendingLimitCashPickup>99999</ns3:sendingLimitCashPickup> <ns3:receivingLimitCashPickup>99999</ns3:receivingLimitCashPickup> <ns3:sendingLimitAccountDeposit>99999</ns3:sendingLimitAccountDeposit> <ns3:receivingLimitAccountDeposit>99999</ns3:receivingLimitAccountDeposit> <ns3:sendingLimitCashToDoor>99999</ns3:sendingLimitCashToDoor> <ns3:receivingLimitCashToDoor>99999</ns3:receivingLimitCashToDoor> <ns3:taxNameEnglish>VAT</ns3:taxNameEnglish> <ns3:taxNameSecondary></ns3:taxNameSecondary> <ns3:taxInfo>VAT depends on order number 5646546 2018 jo.gov</ns3:taxInfo> </ns3:CountryInfo> </return> </ns2:getCountryInfoResponse> </S:Body> </S:Envelope> |
Field | Type | Size | Mandatory | Description | |||||
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT | |||||
userId | Char | 20 | Yes | User ID assigned by SHIFT | |||||
userPassword | Char | 30 | Yes | User password assigned by SHIFT | |||||
remittancTrackingCode | Char | 20 | Yes | Country ISO Alpha3 | |||||
lstSupprotiveDocuments | object | 4 | Max number of documents is 4 | ||||||
Field | Type | Size | Mandatory | ||||||
3-17- add Supportive Documents
Method name | addSupportiveDocuments |
Method purpose | This method used to add extra supportive documents to remittance. |
Note | Adding supportive documents will be available only if SHIFT operations request it. |
Request Inputs
documentName | Char | 100 | Document name | |||||
documentFile | BASE64 | 200 | BASE64 format
Max file size 2MB |
|||||
fileExtention | Char | 3 | allowed file format
(png, jpg, pdf)
|
|||||
Response Output
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/” xmlns:apis=”http://xml.netbeans.org/schema/ApiSchema”>
<soapenv:Header/> <soapenv:Body> <web:addSupportiveDocuments> <remittancTrackingCode>42331177296</remittancTrackingCode> <lstSupprotiveDocuments> <apis:documentName>test</apis:documentName> <apis:documentFile>ASDDSFDSFXCVXVCX</apis:documentFile> <apis:fileExtension>PDF</apis:fileExtension> </lstSupprotiveDocuments> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>a12345678</userPassword> </web:addSupportiveDocuments> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:addSupportiveDocumentsResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:addSupportiveDocumentsResponse> </S:Body> </S:Envelope> |
3-18- Get Agent Announcements
Method name | getAgentAnnouncements |
Method purpose | This method used to load agent announcements that send from SHIFT operations. |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
Response Output
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
AgentAnnouncemetsList | Object | Field | Type | Description | ||
id | Int | |||||
title | Char | |||||
body | Char | |||||
status | Char | New, Read |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getAgentAnnouncements> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>a12345678</userPassword> </web:getAgentAnnouncements> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getAgentAnnouncementsResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:AgentAnnouncemetsList> <ns3:id>1443569</ns3:id> <ns3:title>test now</ns3:title> <ns3:body>test now</ns3:body> <ns3:status>New</ns3:status> </ns3:AgentAnnouncemetsList> </return> </ns2:getAgentAnnouncementsResponse> </S:Body> </S:Envelope> |
3-19- Read Announcement
Method name | readAnnouncement |
Method purpose | This method used to read announcement and change status to Read |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
announcementId | Int | 10 | Yes | Announcement Id |
Response Output
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:readAnnouncement> <announcementId>1443569</announcementId> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>a12345678</userPassword>> </web:readAnnouncement> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:readAnnouncementResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> </return> </ns2:readAnnouncementResponse> </S:Body> </S:Envelope> |
3-20- Get Occupations or Sectors
Method name | getOccupationsOrSectors |
Method purpose | This method used to return list of customers occupations and sectors depends on customer type. |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
customerType | Char | 20 | Yes | see customer types table |
Response outputs
Field | Type | Description | ||||||
resultCode | Char | see return error messages and codes table | ||||||
resultMessage | Char | |||||||
name | Object | List of occupation and sector providers
|
<soapenv:Body>
<web:getOccupationsOrSectors> <customerType>1</customerType> <agentCode>GB001</agentCode> <userId>qahmad</userId> <userPassword>123123</userPassword> </web:getOccupationsOrSectors> </soapenv:Body> </soapenv:Envelope>
|
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getOccupationsOrSectorsResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:name>Doctor</ns3:name> <ns3:name>Pharmacist</ns3:name> <ns3:name>Engineer</ns3:name> <ns3:name>Consultant</ns3:name> <ns3:name>Officer</ns3:name> <ns3:name>Lawyer</ns3:name> <ns3:name>Teacher</ns3:name> <ns3:name>Accountant</ns3:name> <ns3:name>Mechanical</ns3:name> <ns3:name>Trader</ns3:name> <ns3:name>Student</ns3:name> <ns3:name>Employee with a contract</ns3:name> <ns3:name>Self Employed</ns3:name> <ns3:name>Unemployed</ns3:name> <ns3:name>Retired</ns3:name> <ns3:name>Chef</ns3:name> <ns3:name>Pilot</ns3:name> <ns3:name>Driver</ns3:name> <ns3:name>Technical</ns3:name> <ns3:name>Artist</ns3:name> <ns3:name>Fitter</ns3:name> <ns3:name>Media</ns3:name> <ns3:name>Farmer</ns3:name> </return> </ns2:getOccupationsOrSectorsResponse> </S:Body> </S:Envelope> |
3-21- Get Source Of Fund List
Method name | getSourceOfFundList |
Method purpose | This method used to return list of customers source of fund |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
Response outputs
Field | Type | Description | ||||||
resultCode | Char | see return error messages and codes table | ||||||
resultMessage | Char | |||||||
name | Object | List of source of fund
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getSourceOfFundList> <agentCode> </agentCode> <userId> </userId> <userPassword> </userPassword> </web:getSourceOfFundList> |
</soapenv:Body>
</soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getSourceOfFundListResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode></ns3:resultCode> <ns3:resultMessage> </ns3:resultMessage> <ns3:name></ns3:name> </return> </ns2:getSourceOfFundListResponse> </S:Body> </S:Envelope> |
3-22- Get Relationship List
Method name | getRelationshipList |
Method purpose | This method used to return list of customers Relationship List |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
Response outputs
Field | Type | Description | ||||||
resultCode | Char | see return error messages and codes table | ||||||
resultMessage | Char | |||||||
name | Object | List of relationship
|
Soap Request
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getRelationshipList> <agentCode> </agentCode> <userId> </userId> <userPassword> </userPassword> </web:getRelationshipList> </soapenv:Body> </soapenv:Envelope>
|
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getRelationshipListResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode></ns3:resultCode> <ns3:resultMessage> </ns3:resultMessage> <ns3:name> </ns3:name> </return> </ns2:getRelationshipListResponse> </S:Body> </S:Envelope> |
3-23- Get Paying Currency Exchange Rate
Method name | getPayingExhangeRate |
Method purpose | This method used to return rate paying currency rate to USD |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
serviceType | Char | 20 | Yes | See service types table |
payingCurrencyCode | Char | 3 | Yes | ISO Alpha3 |
sendCountryCode | Char | 3 | Yes | ISO Alpha3 |
destinationCountryCode | Char | 3 | Yes | ISO Alpha3 |
Response outputs
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
ExchangeRate | Object | Field | Type | Description | ||
payingCurrencyCode | Char | |||||
payingExchangeRate | Decimal | |||||
payingExchangeRateInverse Decimal
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getPayingExhangeRate> <serviceType>CASH</serviceType> <payingCurrencyCode>EUR</payingCurrencyCode> <sendCountryCode>LTU</sendCountryCode> <destinationCountryCode>QAT</destinationCountryCode> <agentCode>GB001</agentCode> <userId>apitest</userId> <userPassword>kt2p9td3</userPassword> </web:getPayingExhangeRate> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getPayingExhangeRateResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:ExchangeRate> <ns3:payingExchangeRate>0.83</ns3:payingExchnageRate> <ns3:payingExchangeRateInverse>1.204819</ns3:payingExchnageRateInverse> <ns3:payingCurrencyCode>EUR</ns3:payingCurrencyCode> </ns3:ExchangeRate> </return> </ns2:getPayingExhangeRateResponse> </S:Body> </S:Envelope> |
3-24- Get Payout Currency Exchange Rate
Method name | getPayoutExhangeRate |
Method purpose | This method used to return rate payout currency rate to USD |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
serviceType | Char | 20 | Yes | See service types table |
payoutCurrencyCode | Char | 3 | Yes | ISO Alpha3 |
sendCountryCode | Char | 3 | Yes | ISO Alpha3 |
destinationCountryCode | Char | 3 | Yes | ISO Alpha3 |
Response outputs
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
ExchangeRate | Object | Field | Type | Description | ||
payoutCurrencyCode | Char | |||||
payoutExchangeRate | Decimal | |||||
payoutExchangeRateInverse | Decimal | |||||
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getPayoutExhangeRate> <serviceType>CASH</serviceType> |
<payoutCurrencyCode>EUR</payoutCurrencyCode>
<sendCountryCode>QAT</sendCountryCode> <destinationCountryCode>LTU</destinationCountryCode> <agentCode>GB001</agentCode> <userId>apitest</userId> <userPassword>kt2p9td3</userPassword> </web:getPayoutExhangeRate> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getPayoutExhangeRateResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:ExchangeRate> <ns3:payoutExchangeRate>0.83</ns3:payoutExchnageRate> <ns3:payoutExchangeRateInverse>1.204819</ns3:payoutExchnageRateInverse> <ns3:payoutCurrencyCode>EUR</ns3:payoutCurrencyCode> </ns3:ExchangeRate> </return> </ns2:getPayoutExhangeRateResponse> </S:Body> </S:Envelope> |
Field | Type | Size | Mandatory | Description |
3-25- Get Customer Pending Remittances
Method name | getCustomerPendingRemittances |
Method purpose | This method used to return all pending remittances created in loyalty system for customer
** This method needs a privilege to be used |
Request Inputs
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
customerID | int | 11 | Yes | |
sendCountryCode | Char | 3 | Yes | ISO Alpha3 |
Response outputs
Field | Type | Description | ||||
resultCode | Char | see return error messages and codes table | ||||
resultMessage | Char | |||||
getRemittanceList | List<GetRemittance>
|
Field | Type | Description | ||
referenceId | int | Must be used in send customer pending remittances | ||||
remittancePrice | RemittancePrice object | |||||
sendingCountryCode | Char | |||||
receivingCountryCode | Char | |||||
cause | Char | |||||
serviceType | Char | |||||
receivingCityId | int | |||||
sender | Sender object | |||||
receiver Receiver object
|
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:getCustomerPendingRemittances> <customerId>30997420</customerId> <sendCountryCode>JOR</sendCountryCode> <agentCode>GB001</agentCode> <userId>mazzi</userId> <userPassword>123123</userPassword> </web:getCustomerPendingRemittances> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:getCustomerPendingRemittancesResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:getRemittanceList> <ns3:referenceId>502</ns3:referenceId> <ns3:remittancePrice> <ns3:priceOrderCode>0</ns3:priceOrderCode> <ns3:payingAmount>30.0</ns3:payingAmount> <ns3:payoutAmount>356.94</ns3:payoutAmount> <ns3:payingCurrencyCode>AUD</ns3:payingCurrencyCode> <ns3:payoutCurrencyCode>EGP</ns3:payoutCurrencyCode> <ns3:charges>23.74</ns3:charges> <ns3:taxPercent>0.05</ns3:taxPercent> <ns3:totalPayingAmount>53.74</ns3:totalPayingAmount> <ns3:payingToPayoutRate>11.898005</ns3:payingToPayoutRate> <ns3:payingSettlementRate>1.478342</ns3:payingSettlementRate> <ns3:settlementPayingAmount>20.29</ns3:settlementPayingAmount> <ns3:settlementPayoutAmount>0.0</ns3:settlementPayoutAmount> <ns3:settlementCharges>16.06</ns3:settlementCharges> <ns3:agentChargesShare>0.0</ns3:agentChargesShare> <ns3:agentFXChargesShare>0.0</ns3:agentFXChargesShare> <ns3:agentDailyLimit>0.0</ns3:agentDailyLimit> <ns3:agentAvailableLimit>0.0</ns3:agentAvailableLimit> <ns3:taxAmount>1.19</ns3:taxAmount> <ns3:discount>0.0</ns3:discount> <ns3:settlementDiscount>0.0</ns3:settlementDiscount> </ns3:remittancePrice> <ns3:sendCountryCode>JOR</ns3:sendCountryCode> <ns3:destinationCountryCode>EGY</ns3:destinationCountryCode> <ns3:cause>Special Occasions</ns3:cause> <ns3:serviceType>CASH</ns3:serviceType> <ns3:receivingCityId>0</ns3:receivingCityId> |
<ns3:sender>
<ns3:customerId>30997420</ns3:customerId> <ns3:type>1</ns3:type> <ns3:firstName>Mohannad</ns3:firstName> <ns3:lastName>Azzi</ns3:lastName> <ns3:mobile>798708751</ns3:mobile> <ns3:email>m.azzi@shift-sg.com</ns3:email> <ns3:address>Amman</ns3:address> <ns3:nationalityCountryCode>JOR</ns3:nationalityCountryCode> <ns3:identityTypeCode>3</ns3:identityTypeCode> <ns3:identityNumber>125558</ns3:identityNumber> <ns3:identityIssuePlace>Amman</ns3:identityIssuePlace> <ns3:identityExpiryDate>27/05/2037</ns3:identityExpiryDate> <ns3:gender>1</ns3:gender> <ns3:occupationOrSector>Pharmacist</ns3:occupationOrSector> <ns3:birthDateOrEstablishDate>17/05/1988</ns3:birthDateOrEstablishDate> <ns3:birthPlace>Amman</ns3:birthPlace> <ns3:nationalNumber>1231231231</ns3:nationalNumber> <ns3:sourceOfFund>Test</ns3:sourceOfFund> </ns3:sender> <ns3:receiver> <ns3:receiverId>0</ns3:receiverId> <ns3:type>1</ns3:type> <ns3:firstName>Asdf</ns3:firstName> <ns3:middelName>Asdf</ns3:middelName> <ns3:lastName>Asdf</ns3:lastName> <ns3:address>asdfasfdasfdasdfa</ns3:address> <ns3:gender>1</ns3:gender> </ns3:receiver> <ns3:accountDepositId>0</ns3:accountDepositId> </ns3:getRemittanceList> </return> </ns2:getCustomerPendingRemittancesResponse> </S:Body> </S:Envelope> |
3-26- Send Pending Customer Remittance
Method name | sendPendingCustomerRemittance |
Method purpose | This method used to Send pending remittance created in loyalty system for customer
** This method needs a privilege to be used |
Request Inputs
Field | Type | Size | Mandatory | Description |
agentCode | Char | 5 | Yes | Send Agent code assigned by SHIFT |
userId | Char | 20 | Yes | User ID assigned by SHIFT |
userPassword | Char | 30 | Yes | User password assigned by SHIFT |
customerID | int | 11 | Yes | |
referenceId | int | 11 | Yes | |
secretKey | Char | Yes | MD5 Hashed 128-bit, use concat the below fields to generator MD5 hash of a string:
– Sender firstName if sender type 1 – Sender lastName if sender type 1 – Sender enName if sender type 2 – Paying currency code – Account number if service type CREDIT – Receiver firstName if sender type 1 – Receiver lastName if sender type 1 – Sender enName if sender type 2 – Payout currency code |
Response outputs
Field | Type | Description |
resultCode | Char | see return error messages and codes table |
resultMessage | Char | |
remittaceTrackingCode | Char | RTC (Remittance tracking code), this field is the tracking code number for the remittance and should be show on voucher. |
apiAgentReferenceNumber | Char |
Soap Request |
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:web=”http://webservice/”>
<soapenv:Header/> <soapenv:Body> <web:sendPendingCustomerRemittance> |
<customerId>30997420</customerId>
<referenceId>497</referenceId> <secretKey>5266197f91e19035f8a81bb4e019f556</secretKey> <agentCode>GB001</agentCode> <userId>mazzi</userId> <userPassword>123123</userPassword> </web:sendPendingCustomerRemittance> </soapenv:Body> </soapenv:Envelope> |
Soap Response |
<S:Envelope xmlns:S=”http://schemas.xmlsoap.org/soap/envelope/”> <S:Body>
<ns2:sendPendingCustomerRemittanceResponse xmlns:ns2=”http://webservice/” xmlns:ns3=”http://xml.netbeans.org/schema/ApiSchema”> <return> <ns3:resultCode>9000</ns3:resultCode> <ns3:resultMessage>Operation successfully</ns3:resultMessage> <ns3:remittaceTrackingCode>49940072473</ns3:remittaceTrackingCode> <ns3:apiAgentReferenceNumber>49940072473</ns3:apiAgentReferenceNumber> </return> </ns2:sendPendingCustomerRemittanceResponse> </S:Body> </S:Envelope> |
Customer Types Table
Code | Type |
1 | Individual |
2 | Company |
Gender Types Table
Code | Type |
1 | Male |
2 | Female |
Service Types Table
Type | Description |
CASH | Cash pickup |
CREDIT | Bank account credit |
CASH_TO_DOOR | Cash to door delivery |
Return Result Messages and Errors
Result Code Result Message | |
9000 | Operation successfully |
9002 | Error Inactive user |
9005 | Error Service not available |
9006 | Error Inactive agent |
9007 | Error Inactive location |
9011 | Error Remittance amount exceeded send country limit |
9012 | Error Remittance amount exceeded destination country limit |
9013 | Error Inactive corridor no prices info available |
9014 | Error Agent exceeded daily limit |
9015 | Error Location exceed daily limit |
9016 | Error Illegal age |
9017 | Error Remittance is locked and under seeing by another user |
9018 | Error Remittance not available |
9019 | Error Invalid User Id or password |
9031 | Error User has no privileges to perform this operation |
9032 | Error New password should not match last five used passwords |
9034 | Error Agent not found |
9038 | Error Remittance status not available to proceed. Current status is |
9050 | Error Inactive receiving country |
9063 Error Corridor not available for entered inputs. No prices info available
9067 Error Receive location code ins inactive
9079 Error Invalid remittancetracking code
9080 | Error Remittance iscanceled |
9081 | Error Remittance already paid |
9083 | Error Remittance amount exceedsLimit |
9084 | Error Insufficient funds to process |
9085 | Error Price order expired |
9086 | Error Remittance is not requested for receive |
9089 | Error remittance status not allow |
9201 | Error Invalid Input Data user Id |
9202 | Error Invalid Input Data User Password |
9203 | Error Invalid Input Data agent code |
9204 | Error Invalid Input Data service type |
9205 | Error Invalid Input Data country code |
9206 | Error Invalid Input Data city code |
9207 | Error Invalid Input Data bank code |
9208 | Error Invalid Input Data send country code |
9209 | Error Invalid Input Data paying currency code |
9210 | Error Invalid Input Data destination country code |
9211 | Error Invalid Input Data payout currency code |
9212 | Error Invalid Input Data Receive Agent Code |
9213 | Error Invalid Input Data Payout Branch Code |
9214 | Error Invalid Input Data remittance send reason |
9215 | Error Invalid Input Data receive bank account number |
9216 | Error Invalid Input Data receive bank branch code |
9217 | Error Invalid Input Data receive city code |
9218 | Error Invalid Input Data price order code |
9219 | Error Invalid Input Data send message |
9220 | Error Invalid Input Data no sender data provided |
9221 | Error Invalid Input Data no receiver data provided |
9222 | Error Invalid Input Data sender first name |
9223 | Error Invalid Input Data sender middle name |
9224 | Error Invalid Input Data sender last name |
9225 | Error Invalid Input Data sender telephone |
9226 | Error Invalid Input Data sender mobile |
- Error Invalid Input Data sender email
- Error Invalid Input Data sender address
- Error Invalid Input Data sender nationality country code
- Error Invalid Input Data sender identity code
- Error Invalid Input Data sender identity number
9232 | Error Invalid Input Data sender identity issue place |
9233 | Error Invalid Input Data sender identity expiry date |
9234 | Error Invalid Input Data sender date/Establish date |
9235 | Error Invalid Input Data receiver first name |
9236 | Error Invalid Input Data receiver middle name |
9237 | Error Invalid Input Data receiver last name |
9238 | Error Invalid Input Data receiver telephone |
9239 | Error Invalid Input Data receiver mobile |
9240 | Error Invalid Input Data receiver email |
9241 | Error Invalid Input Data receiver address |
9242 | Error Invalid Input Data receiver nationality country code |
9243 | Error Invalid Input Data remittance tracking code |
9244 | Error Invalid Input Data from date or to date |
9245 | Error Invalid Input Data sender identity issue date |
9246 | Error Invalid Input Data receive bank code |
9247 | Error Invalid Input Data receive bank account number length |
9248 | Error Invalid Input Data charges included |
9249 | Error Invalid Input Data paying amount |
9250 | Error Invalid Input Data payout amount |
9251 | Error Invalid Input Data paying or payout amount must provided |
9252 | Error Invalid Input Data telephone or mobile must provide for sender |
9253 | Error Invalid Input Data telephone or mobile must provide for receiver |
9254 | Error Invalid Input Data receiver identity number |
9255 | Error Invalid Input Data receiver identity issue place |
9256 | Error Invalid Input Data receiver identity expiry date |
9257 | Error Invalid Input Data receiver birth date |
9258 | Error Invalid Input Data new password |
9259 | Error Invalid Input Data confirm new password |
9260 | Error Invalid Input Data new password or confirm new password should contain at least eight alphanumeric characters |
9261 | Error Invalid Input Data confirm new password doesn’t match new password |
9262 | Error Invalid Input Data third party bank name |
9263 | Error Invalid Input Data third party bank branch name |
- Error Invalid Input Data third party bank branch code
- Error Invalid Input Data IBAN
- Error Invalid Input Data charges Included field not available for receiving agent
- Error Invalid Input Data receive order code
- Error Remittance Status not allowed for proceed
9269 | Error Invalid Input Data receiver identity issue date |
9270 | Error Included charges not allowed and it should be NO |
9271 | Error Invalid Input Data reason |
9272 | Error Invalid Input Data operator name “Should filled on thirdPartyBankBranchName” |
9273 | Error Invalid Input Data service provider code |
9275 | Error Invalid Input Data invalid Swift/BIC code |
9276 | Error Receiver gender must be either 1 for male or 2 for female |
9277 | Error Sender gender must be either 1 for male or 2 for female |
9278 | Error Invalid Input Data occupation/sector |
9279 | Error Invalid sender postal code |
9280 | Error Invalid receiver postal code |
9281 | Error Routing number required |
9282 | Error Sort code required |
9283 | Modify not allowed for account deposit |
9284 | Error receiver mobile must be 10 digits |
9285 | Error Invalid Input Data credit card number |
9290 | Error Sending amount must be more than charges |
9291 | Error bank payment mode should be credit to card |
9292 | Error bank payment mode should be credit to account or credit to any bank |
9304 | Error Invalid Input Data customer already exists |
9305 | Error Invalid Input Data sender English name |
9306 | Error Invalid Input Data customer first name |
9307 | Error Invalid Input Data customer middle name |
9308 | Error Invalid Input Data customer last name |
9309 | Error Invalid Input Data customer telephone |
9310 | Error Invalid Input Data customer mobile |
9311 | Error Invalid Input Data customer email |
9312 | Error Invalid Input Data customer address |
9313 | Error Invalid Input Data customer nationality country code |
9314 | Error Invalid Input Data customer identity code |
9315 | Error Invalid Input Data customer identity number |
9316 | Error Invalid Input Data customer identity issue place |
9317 | Error Invalid Input Data customer identity expiry date |
- Error Invalid Input Data customer birth date/Establish date
- Error Invalid Input Data customer English name
- Error Invalid Input Data telephone or mobile must provide for customer
- Error Invalid Input Data customer identity issue date
- Error Invalid Input Data occupation/sector
9323 | Error Invalid customer postal code |
9324 | Error customer gender must be either 1 for male or 2 for female |
9325 | Error Invalid Input Data customer ID |
9326 | Error customer not found |
9327 | Error Invalid Input Data from date |
9328 | Error Invalid Input Data to date |
9329 | Error Report period max one month |
9330 | Error Interval “from date” should be less than or equal “to date” |
9331 | Error Interval “from date” or “to date” should not be more than today |
9332 | Error Invalid Input Data Promotion Code |
9333 | Error Invalid Input Data invalid sender type |
9334 | Error Invalid Input Data invalid receiver type |
9335 | Error Invalid Input Data sender English name |
9336 | Error Invalid Input Data receiver occupation/sector |
9337 | Error Invalid Input Data Main Info Changed |
9338 | Error not Allow Send Remittance for Companies |
9339 | Error Invalid Input Data Not Allowed Sender Id Image |
9340 | Error Invalid Input Data Sender Id Image Exceed limit 2 MB |
9341 | Error Invalid Input Data Sender Id Image BASE64 |
9342 | Error Invalid Input Data Sender Id Image extension |
9343 | Error Invalid Input Data Supportive Document name |
9344 | Error Invalid Input Data Supportive Image extension |
9345 | Error exceeded number of documents, Maximum number 4 |
9346 | Error Invalid Input Data Secret Key |
9347 | Error Invalid Input Data supportive documents |
9348 | Error Invalid Input Data Announcement Id |
9349 | Error Invalid Input Data customer establish date |
9350 | Error Invalid Agent Id |
9351 | Error Invalid Input Data invalid customer type |
9352 | Error validate BDC account number |
9353 | Error Invalid Input Data fill at least one input |
9354 | Error Invalid Input Data should fill identity code and identity number |
9355 | Error Invalid Input Data should fill nationality country code and national number |
- Error while get price, please contact SHIFT for more support
- Error Invalid Input Data should pick source of income from list
- Error Invalid Input Data should pick relationship from list
- Error system is busy try again later
- Operation successfully and need authentication
9997 | Error: Other error description |
9998 | Unknown Error: Invalid Input Data |
9999 | Operation failed |
9360 | Error Invalid Input Data agent reference or agent reference not allowed |
9361 | Error Invalid Input Data agent reference already exists |
9362 | Error Invalid Input Data sender birth place |
9363 | Error Invalid Input Data receiver birth place |
9364 | Error Invalid Input Data customer birth place |
9368 | Error Invalid Input Data Sender Middle Name Not Required |
9369 | Error Invalid Input Data Receiver Middle Name Not Required |
9370 | Error Invalid Input Data Sender National Number |
9371 | Error Invalid Input Data Sender National Number Not Required |
Deliverables and Integration Plan
SHIFT API implementation project will pass through the below phases:
Phase | Deliverable | Team Responsible |
Initiation | Project Charter | SHIFT API Support |
Technical API documents | SHIFT API Support | |
Development | Technical Design Completion | SHIFT API Support & Agent IT |
Development Completion | SHIFT API Support & Agent IT | |
SIT | SIT results | SHIFT API Support & Agent IT |
UAT | UAT results | SHIFT Operation& Agent IT |
UAT Sign off document | SHIFT Business & Agent Business | |
Go Live | Live Credentials | SHIFT Operation & Agent Operation |
Test transactions if required | SHIFT Operation& Agent Operation |
SHIFT Financial Services Ltd.
Regional office Tel: +962 6 59 33 091
Fax: +962 6 59 22 322
Email: info@shift-sg.com
Disclaimer The contents of this document are for general information only and do not constitute professional advice. Whilst SHIFT Financial Services Ltd makes every effort to maintain the accuracy of the information in this document, it cannot accept responsibility for any claim, loss or damage which may occur from the use of the information. The reader assumes full responsibility for using the information in this document.
Copyright The content of these pages, unless otherwise stated, is the property of SHIFT Financial Services Ltd and as such is copyright protected. All rights reserved. Material may not be copied, republished or redistributed, in full or in part, for commercial purposes or gain.