Send#
Related to Sending Agents
The SHIFT API provides a set of web methods that enable agents to send remittance transactions from their systems to the SHIFT system.
Send Remittance Flow Diagrams#
The diagram below illustrates the flow of the Send process.
The diagram below illustrates the Send sequence flow.
- Remittance feedback process:
After creating a remittance, the agent system needs to retrieve the status of the sent remittance by calling the getRemittanceStatus method.
General Notes#
Optional Fields
All optional fields must be sent blank if no data is provided.
Or
Data Type Constraint
String fields allow English alphanumeric characters and spaces only.
Get Destination Countries#
getDestinationCountries Mandatory & Pre-loadable
This method returns a list of destination countries that are eligible to receive remittances from the agent's source country based on the service type.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| serviceType | String | 20 | Yes | See the Service Types Table |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String | |
| destinationCountriesList | List of Objects | See below destinationCountriesList |
destinationCountriesList#
destinationCountriesList Object fields
| Field | Type | Description |
|---|---|---|
| countryCode | String | ISO Alpha-3 (3166) |
| countryName | String | |
| requiredMiddleName | String | YES, NO |
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>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getDestinationCountries>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getDestinationCountries>
<serviceType>CREDIT</serviceType>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getDestinationCountries>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getDestinationCountries>
<serviceType>CASH_TO_MOBILE</serviceType>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getDestinationCountries>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getDestinationCountriesResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:destinationCountriesList>
<ns2:countryCode>EGY</ns2:countryCode>
<ns2:countryName>Egypt</ns2:countryName>
<ns2:requiredMiddleName>NO</ns2:requiredMiddleName>
</ns2:destinationCountriesList>
<ns2:destinationCountriesList>
<ns2:countryCode>KEN</ns2:countryCode>
<ns2:countryName>Kenya</ns2:countryName>
<ns2:requiredMiddleName>NO</ns2:requiredMiddleName>
</ns2:destinationCountriesList>
</return>
</ns3:getDestinationCountriesResponse>
</S:Body>
</S:Envelope>
Get Service Providers#
getServiceProviders Mandatory & Pre-loadable
This method is used to return a list of the service providers that serve in a destination country based on the service type.
Service Type Usage
- Cash Pick-up (CASH): The service providers represent agents or providers in the destination country.
- Account Deposit (CREDIT): The service providers represent banks in the destination country.
- Wallet Top-up (CASH_TO_MOBILE): The service providers represent mobile/Wallet operators in the destination country.
- Card Top-up (CASH_TO_CARD): The service providers represent banks or card processors in the destination country.
- Cash Delivery (CASH_TO_DOOR): The service providers represent delivery agents or providers in the destination country.
Branch Selection
Some service providers require branch selection. In such cases, both the city and the branch must be selected during the send process.
Bank Information for CREDIT Service Type
If the serviceType is CREDIT, an object containing bank information will be returned. This object defines the required bank fields for each bank in the list.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| serviceType | String | 20 | Yes | see the service type table |
| countryCode | String | 3 | Yes | ISO Alpha-3 (3166), selected destination country code |
| SendCountryCode | String | 3 | Conditional | ISO Alpha-3, Mandatory unless serviceType is CREDIT or CASH_TO_CARD |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String | |
| ServiceProvidersList | List of Objects | List of service providers See below ServiceProvidersList |
ServiceProvidersList#
ServiceProvidersList Object fields
| Field | Type | Description |
|---|---|---|
| serviceProviderCode | String | |
| serviceProviderName | String | |
| requiredBranch | String | YES or NO If No: Payout anywhere |
| serviceType | String | Service type |
| bankInfo | Object | Only returned if service type is CREDIT See below bankInfo |
bankInfo#
bankInfo Object fields
| Field | Type | Description |
|---|---|---|
| accountNumberLength | Integer | |
| requireIBAN | String | YES or NO |
| requiredBICORSWIFTCode | String | YES or NO |
| requiredRoutingNoABA | String | YES or NO |
| requiredSortCode | String | YES or NO |
| requiredBranchInfo | String | YES or NO - Requested for some destinations |
| accountTypeCode | List | - If the list is empty not required. - If the list is not empty, then one of the account types should be selected. - Requested for some destinations. |
SOAP Request#
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getServiceProviders>
<countryCode>EGY</countryCode>
<serviceType>CASH</serviceType>
<sendCountryCode>GBR</sendCountryCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getServiceProviders>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getServiceProviders>
<countryCode>EGY</countryCode>
<serviceType>CREDIT</serviceType>
<sendCountryCode>GBR</sendCountryCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getServiceProviders>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getServiceProviders>
<countryCode>EGY</countryCode>
<serviceType>CASH_TO_MOBILE</serviceType>
<sendCountryCode>GBR</sendCountryCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getServiceProviders>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getServiceProvidersResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:ServiceProvidersList>
<ns2:serviceProviderCode>1</ns2:serviceProviderCode>
<ns2:serviceProviderName>SHIFT Network</ns2:serviceProviderName>
<ns2:requiredBranch>NO</ns2:requiredBranch>
<ns2:serviceType>CASH</ns2:serviceType>
</ns2:ServiceProvidersList>
<ns2:ServiceProvidersList>
<ns2:serviceProviderCode>7</ns2:serviceProviderCode>
<ns2:serviceProviderName>Example network</ns2:serviceProviderName>
<ns2:requiredBranch>YES</ns2:requiredBranch>
<ns2:serviceType>CASH</ns2:serviceType>
</ns2:ServiceProvidersList>
</return>
</ns3:getServiceProvidersResponse>
</S:Body>
</S:Envelope>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getServiceProvidersResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:ServiceProvidersList>
<ns2:serviceProviderCode>60190</ns2:serviceProviderCode>
<ns2:serviceProviderName>Example bank 1</ns2:serviceProviderName>
<ns2:requiredBranch>NO</ns2:requiredBranch>
<ns2:serviceType>CREDIT</ns2:serviceType>
<ns2:BankInfo>
<ns2:accountNumberLength>0</ns2:accountNumberLength>
<ns2:requireIBAN>NO</ns2:requireIBAN>
<ns2:requiredBICORSWIFTCode>NO</ns2:requiredBICORSWIFTCode>
<ns2:requiredRoutingNoABA>NO</ns2:requiredRoutingNoABA>
<ns2:requiredSortCode>NO</ns2:requiredSortCode>
<ns2:requiredBranchInfo>NO</ns2:requiredBranchInfo>
</ns2:BankInfo>
</ns2:ServiceProvidersList>
<ns2:ServiceProvidersList>
<ns2:serviceProviderCode>60191</ns2:serviceProviderCode>
<ns2:serviceProviderName>Example bank 2</ns2:serviceProviderName>
<ns2:requiredBranch>NO</ns2:requiredBranch>
<ns2:serviceType>CREDIT</ns2:serviceType>
<ns2:BankInfo>
<ns2:accountNumberLength>0</ns2:accountNumberLength>
<ns2:requireIBAN>YES</ns2:requireIBAN>
<ns2:requiredBICORSWIFTCode>NO</ns2:requiredBICORSWIFTCode>
<ns2:requiredRoutingNoABA>NO</ns2:requiredRoutingNoABA>
<ns2:requiredSortCode>NO</ns2:requiredSortCode>
<ns2:requiredBranchInfo>NO</ns2:requiredBranchInfo>
</ns2:BankInfo>
</ns2:ServiceProvidersList>
</return>
</ns3:getServiceProvidersResponse>
</S:Body>
</S:Envelope>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getServiceProvidersResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:ServiceProvidersList>
<ns2:serviceProviderCode>20</ns2:serviceProviderCode>
<ns2:serviceProviderName>Example Operator 1</ns2:serviceProviderName>
<ns2:requiredBranch>NO</ns2:requiredBranch>
<ns2:serviceType>CASH_TO_MOBILE</ns2:serviceType>
</ns2:ServiceProvidersList>
<ns2:ServiceProvidersList>
<ns2:serviceProviderCode>1</ns2:serviceProviderCode>
<ns2:serviceProviderName>Example Operator 2</ns2:serviceProviderName>
<ns2:requiredBranch>NO</ns2:requiredBranch>
<ns2:serviceType>CASH_TO_MOBILE</ns2:serviceType>
</ns2:ServiceProvidersList>
</return>
</ns3:getServiceProvidersResponse>
</S:Body>
</S:Envelope>
Get Country Cities#
getCountryCities Conditional & Pre-loadable
This method returns a list of cities for the specified country.
Warning
This is required only when the selected service provider mandates branch selection.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| countryCode | String | 3 | Yes | ISO Alpha-3 (3166), selected destination country code |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String | |
| citiesList | List of Objects | List of cities See below citiesList |
citiesList#
citiesList Object fields
| Field | Type | Description |
|---|---|---|
| cityCode | Integer | |
| cityEnglishName | String | |
| citySeconderyName | String |
SOAP Request#
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getCountryCities>
<countryCode>EGY</countryCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getCountryCities>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getCountryCitiesResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:citiesList>
<ns2:cityCode>249</ns2:cityCode>
<ns2:cityEnglishName>Example 1</ns2:cityEnglishName>
<ns2:citySeconderyName></ns2:citySeconderyName>
</ns2:citiesList>
<ns2:citiesList>
<ns2:cityCode>177</ns2:cityCode>
<ns2:cityEnglishName>Cairo</ns2:cityEnglishName>
<ns2:citySeconderyName></ns2:citySeconderyName>
</ns2:citiesList>
</return>
</ns3:getCountryCitiesResponse>
</S:Body>
</S:Envelope>
Get Payout Branches#
getPayoutBranches Conditional & Pre-loadable
This method returns a list of payout branches for a service provider (agent or bank).
Warning
This is required only when the selected service provider mandates branch selection.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| cityCode | Integer | 8 | Yes | Selected city code |
| serviceProviderCode | Integer | 7 | Yes | Selected service provider code |
| serviceType | String | 20 | Yes | See the service types table |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String | |
| branchesList | List of Objects | List of locations See below branchesList |
branchesList#
branchesList Object fields
| Field | Type | Description |
|---|---|---|
| cityCode | Integer | |
| branchCode | String | |
| branchName | String | |
| branchTelephone | String | |
| branchOpeningHours | String | |
| branchAddress | String |
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>7</serviceProviderCode>
<serviceType>CASH</serviceType>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getPayoutBranches>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getPayoutBranchesResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:branchesList>
<ns2:cityCode>177</ns2:cityCode>
<ns2:branchCode>EG0020003</ns2:branchCode>
<ns2:branchName>Example branch 1</ns2:branchName>
<ns2:branchTelephone>0</ns2:branchTelephone>
<ns2:branchOpeningHours>Sun - Thu 8:30 AM - 5:00 PM</ns2:branchOpeningHours>
<ns2:branchAddress>22 ST AL MASS AL</ns2:branchAddress>
</ns2:branchesList>
<ns2:branchesList>
<ns2:cityCode>177</ns2:cityCode>
<ns2:branchCode>EG0020050</ns2:branchCode>
<ns2:branchName>Example branch 2</ns2:branchName>
<ns2:branchTelephone>0</ns2:branchTelephone>
<ns2:branchOpeningHours>Sun - Thu 8:30 AM - 5:00 PM</ns2:branchOpeningHours>
<ns2:branchAddress>4 ST EL TAYARAAN . BESIDE RABAAH MOSQUE</ns2:branchAddress>
</ns3:branchesList>
</return>
</ns3:getPayoutBranchesResponse>
</S:Body>
</S:Envelope>
Get Paying Currencies#
getPayingCurrencies Optional & Pre-loadable
This method returns a list of paying currencies (send currencies) available in the agent's source country.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String | |
| currenciesList | List of Objects | List of Currencies See below currenciesList |
currenciesList#
currenciesList Object fields
| Field | Type | Description |
|---|---|---|
| currencyCode | String | ISO Alpha-3 (4217), E.g., USD, EUR |
| currencyName | String |
SOAP Request#
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getPayingCurrencies>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getPayingCurrencies>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getPayingCurrenciesResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:currenciesList>
<ns2:currencyCode>GBP</ns2:currencyCode>
<ns2:currencyName>Pound sterling</ns2:currencyName>
</ns2:currenciesList>
<ns2:currenciesList>
<ns2:currencyCode>USD</ns2:currencyCode>
<ns2:currencyName>United States of America Dollars</ns2:currencyName>
</ns2:currenciesList>
</return>
</ns3:getPayingCurrenciesResponse>
</S:Body>
</S:Envelope>
Get Payout Currencies#
getPayoutCurrencies Mandatory & Pre-loadable
This method returns a list of payout currencies (receive currencies) available in the destination country, based on the service type.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| destinationCountryCode | String | 3 | Yes | Selected destination country |
| serviceProviderCode | Integer | 7 | Yes | Selected service provider code |
| serviceType | String | 20 | Yes | See the service types table |
| payoutBranchCode | String | 50 | Conditional | • If the selected service provider requires branches, this field becomes mandatory. • The data for this field is retrieved from the getPayoutBranches method > branchesList.branchCode • If the selected service provider does not require branches, this field should be left blank. |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String | |
| currenciesList | List of Objects | List of Currencies See below currenciesList |
currenciesList#
currenciesList Object fields
| Field | Type | Description |
|---|---|---|
| currencyCode | String | ISO Alpha-3 (4217), E.g., USD, EUR |
| currencyName | String |
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>
<serviceProviderCode>7</serviceProviderCode>
<serviceType>CASH</serviceType>
<payoutBranchCode>EG0020050</payoutBranchCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getPayoutCurrencies>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getPayoutCurrenciesResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:currenciesList>
<ns2:currencyCode>EGP</ns2:currencyCode>
<ns2:currencyName>Egyptian Pound</ns2:currencyName>
</ns2:currenciesList>
<ns2:currenciesList>
<ns2:currencyCode>USD</ns2:currencyCode>
<ns2:currencyName>United States of America Dollars</ns2:currencyName>
</ns2:currenciesList>
</return>
</ns3:getPayoutCurrenciesResponse>
</S:Body>
</S:Envelope>
Get Price#
getPrice Mandatory
This method calculates remittance financial details, including the paying amount, payout amount, charges, exchange rates, and other relevant information.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| serviceType | String | 20 | Yes | See the service types table |
| serviceProviderCode | Integer | 7 | Yes | Selected service provider code |
| sendCountryCode | String | 3 | Yes | The country code of the agent initiating the remittance |
| destinationCountryCode | String | 3 | Yes | Selected destination country code |
| payingCurrencyCode | String | 3 | Yes | Selected paying currency in the sending country |
| payoutCurrencyCode | String | 3 | Yes | Selected payout currency in the destination country |
| payingAmount | Decimal | 12,2 | Yes | • It is optional to provide either the payingAmount or the payoutAmount. • If payingAmount is provided, payoutAmount should be set to 0. • Conversely, if payoutAmount is provided, payingAmount should be set to 0. |
| payoutAmount | Decimal | 12,2 | Yes | |
| chargesIncluded | String | 3 | Yes | • Allowed values: YES or NO • If YES is passed (charges will be included in payingAmount), the system will calculate the payoutAmount and charges based on the provided payingAmount. • This option is only available when payingAmount is provided and payoutAmount is zero. |
| cityCode | Integer | 8 | Conditional | Selected city code • This field is mandatory only if the selected service provider requires a branch (requiredBranch = YES). • If not required, the field should be left blank. |
| payoutBranchCode | String | 50 | Conditional | • This field is mandatory only if the selected service provider requires a branch (requiredBranch = YES). • If not required, the field should be left blank. |
| creditCardNumber | String | 100 | Conditional | • This field is mandatory only when the selected service type is CASH_TO_CARD. • For all other service types, the field should be left blank. |
| promoCode | String | 50 | No | This field is mandatory only if the customer has an available promotion code to receive a special discount. |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String | |
| maxSendLimit | Decimal | |
| remittancePrice | Object | Contains all remittance pricing and calculation details. See below remittancePrice |
remittancePrice#
remittancePrice Object fields
| Field | Type | Description |
|---|---|---|
| payingAmount | Decimal | The paying/collected amount from the customer |
| payoutAmount | Decimal | The payout/delivered amount to the beneficiary |
| payingCurrencyCode | String | The paying/collected currency from the customer |
| payoutCurrencyCode | String | The payout/delivered currency to the beneficiary |
| charges | Decimal | Remittance charges |
| discount | Decimal | • The discount amount in the paying currency. • This discount will not be deducted from the agent's share. |
| taxPercent | Decimal | Tax percent |
| taxAmount | Decimal | Tax amount in the paying currency |
| totalPayingAmount | Decimal | The total amount collected from the customer. Calculated as: (Paying amount + Charges + Tax amount) - discount |
| payingToPayoutRate | Decimal | Customer exchange rate |
| payingSettlementRate | Decimal | Send Agent settlement rate |
| settlementPayingAmount | Decimal | Paying amount in settlement currency / Send Agent settlement |
| settlementCharges | Decimal | Remittance charges in settlement currency / Agent settlement |
| agentChargesShare | Decimal | Agent charges share in settlement currency / Send Agent settlement |
| agentFXChargesShare | Decimal | Agent FX share in settlement currency / Send Agent settlement |
| priceOrderCode | String | • Required: Must be provided in the Send Remittance method. • The code is valid for 10 minutes; after that, it will expire. |
| agentDailyLimit | Decimal | The maximum allowed daily sending limit for the agent |
| agentAvailableLimit | Decimal | The remaining daily sending limit available for the agent to send remittances. |
| taxName | String | Tax name (hint for the tax details) |
| settlementDiscount | Decimal | Discount (Settlement Currency): • The discount amount in the settlement currency. • This discount will not be deducted from the agent's 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>1</serviceProviderCode>
<sendCountryCode>GBR</sendCountryCode>
<destinationCountryCode>EGY</destinationCountryCode>
<payingCurrencyCode>GBP</payingCurrencyCode>
<payoutCurrencyCode>USD</payoutCurrencyCode>
<payingAmount>100</payingAmount>
<payoutAmount></payoutAmount>
<chargesIncluded>NO</chargesIncluded>
<cityCode></cityCode>
<payoutBranchCode></payoutBranchCode>
<creditCardNumber></creditCardNumber>
<promoCode></promoCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getPrice>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:getPrice>
<serviceType>CASH</serviceType>
<serviceProviderCode>7</serviceProviderCode>
<sendCountryCode>GBR</sendCountryCode>
<destinationCountryCode>EGY</destinationCountryCode>
<payingCurrencyCode>GBP</payingCurrencyCode>
<payoutCurrencyCode>USD</payoutCurrencyCode>
<payingAmount>100</payingAmount>
<payoutAmount></payoutAmount>
<chargesIncluded>NO</chargesIncluded>
<cityCode>177</cityCode>
<payoutBranchCode>EG0020050</payoutBranchCode>
<creditCardNumber></creditCardNumber>
<promoCode></promoCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:getPrice>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:getPriceResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:maxSendLimit>70905.09</ns2:maxSendLimit>
<ns2:remittancePrice>
<ns2:priceOrderCode>568651</ns2:priceOrderCode>
<ns2:payingAmount>100.0</ns2:payingAmount>
<ns2:payoutAmount>141.03</ns2:payoutAmount>
<ns2:payingCurrencyCode>GBP</ns2:payingCurrencyCode>
<ns2:payoutCurrencyCode>USD</ns2:payoutCurrencyCode>
<ns2:charges>2.75</ns2:charges>
<ns2:taxPercent>0.05</ns2:taxPercent>
<ns2:totalPayingAmount>102.75</ns2:totalPayingAmount>
<ns2:payingToPayoutRate>1.410322</ns2:payingToPayoutRate>
<ns2:payingSettlementRate>0.709</ns2:payingSettlementRate>
<ns2:settlementPayingAmount>141.04</ns2:settlementPayingAmount>
<ns2:settlementCharges>3.88</ns2:settlementCharges>
<ns2:agentChargesShare>1.55</ns2:agentChargesShare>
<ns2:agentFXChargesShare>0.0</ns2:agentFXChargesShare>
<ns2:agentDailyLimit>9999999.0</ns2:agentDailyLimit>
<ns2:agentAvailableLimit>9999999.0</ns2:agentAvailableLimit>
<ns2:taxAmount>0.0</ns2:taxAmount>
<ns2:taxName> </ns2:taxName>
<ns2:discount>0.0</ns2:discount>
<ns2:settlementDiscount>0.0</ns2:settlementDiscount>
</ns2:remittancePrice>
</return>
</ns3:getPriceResponse>
</S:Body>
</S:Envelope>
Send Remittance#
sendRemittance Mandatory
Creates a remittance in the SHIFT system and returns an RTC (Remittance Tracking Code).
Authentication Mode#
The sendRemittance method can be executed in two scenarios:
One-Step
- The remittance is created and becomes available for payout immediately; No authentication is required.
Two-Step (Create and Authenticate)
- The remittance is created using
sendRemittance. - The remittance is completed using
authenticateRemittance.
Note
If the resultCode returned by sendRemittance is 9995, the remittance must be authenticated using the Authenticate Remittance method.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| priceOrderCode | String | 10 | Yes | Returned in the getPrice method > remittancePrice.priceOrderCode |
| sender | Object | Yes | Sender information object. See below sender |
|
| receiver | Object | Yes | Receiver information object. See below receiver |
|
| sendReason | String | 100 | Yes | Reason for the remittance |
| receiverBankAccountNo | String | 50 | Conditional | This field is mandatory when the service type is CREDIT. This field has different use cases. See receiverBankAccountNo Handling |
| receiverSwiftBIC | String | 50 | Conditional | This field is mandatory when the service type is CREDIT, and the selected service provider is a bank that requires a SWIFT/BIC code. Reference: Get Service Providers → bankInfo.requiredBICORSWIFTCode |
| receiverRoutingNoABA | String | 50 | Conditional | This field is mandatory when the service type is CREDIT, and the selected service provider is a bank that requires a Routing Number or ABA. Reference: Get Service Providers → bankInfo.requiredRoutingNoABA |
| receiverSortCode | String | 50 | Conditional | This field is mandatory when the service type is CREDIT, and the selected service provider is a bank that requires a Sort Code. Reference: Get Service Providers → bankInfo.requiredSortCode |
| sendMessage | String | 50 | Conditional | A message to the receiver |
| senderIdDocumentFile | BASE64 | No | This field allows uploading the sender's identity document. Maximum file size: 2 MB. | |
| senderIdDocumentFileExtension | String | 3 | Conditional | This field is mandatory if senderIdDocumentFile is provided. Supported file formats: PNG, JPG, PDF. |
| lstSupprotiveDocuments | List of Objects | No | This field is optional. Maximum number of documents: 4. Note: If no supportive documents are provided, remove the tag <lstSupprotiveDocuments>. See below lstSupprotiveDocuments |
|
| bankBranchExtraInfo | String | Conditional | This field is required only when the service type is CREDIT and BankInfo.requiredBranchInfo = YES. This field has different use cases. See bankBranchExtraInfo Handling | |
| receiverBankAccountTypeCode | String | Conditional | This field is required for certain destinations only if the service type is CREDIT and BankInfo.ListAccountTypes is not empty. | |
| secretKey | String | 32 | Yes | The value should be an MD5 hashed 128-bit string. Further details and guidance will be provided by the API Support Team. |
| apiAgentReferenceNumber | String | 20 | Conditional | This field is required only if the agent is explicitly authorised by SHIFT to provide the agent's reference number. |
sender#
sender Object fields
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| customerId | String | 11 | Conditional | This field is mandatory when using an existing sender |
| type | Integer | 1 | Yes | See the customer type table |
| firstName | String | 50 | Conditional | • This field is mandatory if the sender type is 1. • Allowed characters: English letters (A--Z, a--z) and spaces only |
| middelName | String | 50 | Conditional | • This field is mandatory if the sending country requires a middle name and the sender type is 1. • Allowed characters: English letters (A--Z, a--z) and spaces only. • If not required, this field should be left blank. |
| lastName | String | 50 | Conditional | • This field is mandatory if the sender type is 1. • Allowed characters: English letters (A--Z, a--z) and spaces only |
| enName | String | 100 | Conditional | • This field is mandatory if the sender type is 2. • Allowed characters: English letters (A--Z, a--z) and spaces only |
| telephone | String | 20 | No | (+ or ++ not accepted) |
| mobile | String | 20 | Yes | (+ or ++ not accepted) |
| String | 100 | No | If provided, must be in a valid email format | |
| address | String | 200 | Yes | |
| nationalityCountryCode | String | 3 | Yes | ISO Alpha-3 (3166) |
| identityTypeCode | Integer | 4 | Yes | Selected Identity type |
| identityNumber | String | 20 | Yes | This field accepts English letters (A--Z, a--z), numbers (0--9), spaces, and dashes (-) |
| identityIssuePlace | String | 100 | Yes | |
| identityIssueDate | Date | Yes | Format: dd/MM/yyyy | |
| identityExpiryDate | Date | Yes | Format: dd/MM/yyyy | |
| birthDateOrEstablishDate | Date | Yes | Format: dd/MM/yyyy • If the sender type is 1, the sender's birthday must be provided. • If the sender type is 2, the company establishment date must be provided. |
|
| birthPlace | String | 50 | Conditional | |
| gender | Integer | 1 | Conditional | Mandatory if the sender type is 1. See the gender types table |
| occupationOrSector | String | 100 | Yes | Depends on sender type See get Occupations or sector |
| postalCode | String | 50 | No | |
| nationalNumber | String | 50 | No | If this field is not required, it should be left blank |
| sourceOfFund | String | 50 | No | This field must be filled with a value based on the sourceOfFund list. See get source of fund |
receiver#
receiver Object fields
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| receiverID | String | 11 | No | |
| type | Integer | 1 | Yes | See the Customer types table |
| firstName | String | 50 | Conditional | • This field is mandatory if the receiver type is 1. • Allowed characters: English letters (A--Z, a--z) and spaces only |
| middelName | String | 50 | Conditional | • This field is mandatory if the receiving country requires a middle name and the receiver type is 1. • Allowed characters: English letters (A--Z, a--z) and spaces only. • If not required, this field should be left blank. |
| lastName | String | 50 | Conditional | • This field is mandatory if the receiver type is 1. • Allowed characters: English letters (A--Z, a--z) and spaces only |
| enName | String | 100 | Conditional | • This field is mandatory if the receiver type is 2. • Allowed characters: English letters (A--Z, a--z) and spaces only |
| telephone | String | 20 | No | (+ or ++ not accepted) |
| mobile | String | 20 | Yes | (+ or ++ not accepted) |
| String | 100 | No | If provided, must be in a valid email format | |
| address | String | 200 | Yes | |
| nationalityCountryCode | String | 3 | Yes | ISO Alpha-3 (3166) |
| gender | 1 | Conditional | Mandatory if receiver type is 1 See gender types table |
|
| occupationOrSector | String | 100 | No | Depends on receiver type See get Occupations and sectors |
| relationship | String | 50 | No | See get relationship list |
| identityTypeCode | 4 | Conditional | Selected Identity type Requested for some destinations | |
| identityNumber | String | 20 | Conditional | Requested for some destinations |
| birthDateOrEstablishDate | Date | Conditional | Format: dd/MM/yyyy • If the receiver type is 1, the receiver's birthday must be provided. • If the receiver type is 2, the company establishment date must be provided. • Requested for some destinations. |
|
| identityExpiryDate | Date | Conditional | Format: dd/MM/yyyy • Requested for some destinations |
lstSupprotiveDocuments#
lstSupprotiveDocuments Object fields
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| documentName | String | 100 | Document name | |
| imageDocument | BASE64 | 200 | BASE64 format Max file size 2MB | |
| fileExtention | String | 3 | allow images format (png, jpg, pdf) |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table. If the resultCode returned by sendRemittance is 9995, the remittance requires authentication. |
| resultMessage | String | |
| remittanceTrackingCode | String | • This field contains the tracking code number for the remittance. • The RTC should be displayed on the voucher. |
| shiftTrackingCodeReference | String | Shift system reference number |
| apiAgentReferenceNumber | String | Will be returned if available |
| 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:sendRemittance>
<priceOrderCode>568651</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></apis:nationalNumber>
</sender>
<receiver>
<apis:receiverId></apis:receiverId>
<apis:type>1</apis:type>
<apis:firstName>Jamal</apis:firstName>
<apis:middelName></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>
<apis:identityTypeCode></apis:identityTypeCode>
<apis:identityNumber></apis:identityNumber>
<apis:birthDateOrEstablishDate></apis:birthDateOrEstablishDate>
</receiver>
<sendReason>Gift</sendReason>
<receiverBankAccountNo></receiverBankAccountNo>
<receiverSwiftBIC></receiverSwiftBIC>
<receiverRoutingNoABA></receiverRoutingNoABA>
<receiverSortCode></receiverSortCode>
<bankBranchExtraInfo></bankBranchExtraInfo>
<receiverBankAccountTypeCode></receiverBankAccountTypeCode>
<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>
<apiAgentReferenceNumber></apiAgentReferenceNumber>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:sendRemittance>
</soapenv:Body>
</soapenv:Envelope>
<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:sendRemittance>
<priceOrderCode>568652</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></apis:nationalNumber>
</sender>
<receiver>
<apis:receiverId></apis:receiverId>
<apis:type>1</apis:type>
<apis:firstName>Jamal</apis:firstName>
<apis:middelName></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>
<apis:identityTypeCode></apis:identityTypeCode>
<apis:identityNumber></apis:identityNumber>
<apis:birthDateOrEstablishDate></apis:birthDateOrEstablishDate>
</receiver>
<sendReason>Gift</sendReason>
<receiverBankAccountNo>012345678912</receiverBankAccountNo>
<receiverSwiftBIC></receiverSwiftBIC>
<receiverRoutingNoABA></receiverRoutingNoABA>
<receiverSortCode></receiverSortCode>
<bankBranchExtraInfo></bankBranchExtraInfo>
<receiverBankAccountTypeCode></receiverBankAccountTypeCode>
<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>
<apiAgentReferenceNumber></apiAgentReferenceNumber>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:sendRemittance>
</soapenv:Body>
</soapenv:Envelope>
<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:sendRemittance>
<priceOrderCode>568653</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></apis:nationalNumber>
</sender>
<receiver>
<apis:receiverId></apis:receiverId>
<apis:type>1</apis:type>
<apis:firstName>Jamal</apis:firstName>
<apis:middelName></apis:middelName>
<apis:lastName>Yaser</apis:lastName>
<apis:enName></apis:enName>
<apis:telephone></apis:telephone>
<apis:mobile>201123456789</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>
<apis:identityTypeCode></apis:identityTypeCode>
<apis:identityNumber></apis:identityNumber>
<apis:birthDateOrEstablishDate></apis:birthDateOrEstablishDate>
</receiver>
<sendReason>Gift</sendReason>
<receiverBankAccountNo></receiverBankAccountNo>
<receiverSwiftBIC></receiverSwiftBIC>
<receiverRoutingNoABA></receiverRoutingNoABA>
<receiverSortCode></receiverSortCode>
<bankBranchExtraInfo></bankBranchExtraInfo>
<receiverBankAccountTypeCode></receiverBankAccountTypeCode>
<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>
<apiAgentReferenceNumber></apiAgentReferenceNumber>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:sendRemittance>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:sendRemittanceResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
<ns2:remittanceTrackingCode>56586096766</ns2:remittanceTrackingCode>
<ns2:shiftTrackingCodeReference>56586096766</ns2:shiftTrackingCodeReference>
<ns2:agentChargesShare>3.07</ns2:agentChargesShare>
<ns2:agentFXChargesShare>1.07</ns2:agentFXChargesShare>
</return>
</ns3:sendRemittanceResponse>
</S:Body>
</S:Envelope>
Authenticate Remittance#
authenticateRemittance Conditional
This method is required to authenticate the remittance after Send Remittance if the Authentication Mode is Two-Step (Create and Authenticate).
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| remittancTrackingCode | String | 20 | Yes | Remittance number |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String |
SOAP Request#
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice/">
<soapenv:Header/>
<soapenv:Body>
<web:authenticateRemittance>
<remittancTrackingCode>56586096766</remittancTrackingCode>
<agentCode>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:authenticateRemittance>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:authenticateRemittanceResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation successfully</ns2:resultMessage>
</return>
</ns3:authenticateRemittanceResponse>
</S:Body>
</S:Envelope>
Reject Remittance#
rejectRemittance Conditional
This method allows the agent to reject a remittance after Send Remittance if the Authentication Mode is Two-Step (Create and Authenticate).
Status Change
Calling this method changes the remittance status to CANCELED.
Request Inputs#
| Field | Type | Size | Mandatory | Description |
|---|---|---|---|---|
| agentCode | String | 5 | Yes | Send Agent code assigned by SHIFT |
| userId | String | 20 | Yes | User ID assigned by SHIFT |
| userPassword | String | 30 | Yes | User password assigned by SHIFT |
| remittancTrackingCode | String | 20 | Yes | Remittance number |
Response Outputs#
| Field | Type | Description |
|---|---|---|
| resultCode | String | See the Result Codes and Messages table |
| resultMessage | String |
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>*****</agentCode>
<userId>*****</userId>
<userPassword>*****</userPassword>
</web:rejectRemittance>
</soapenv:Body>
</soapenv:Envelope>
SOAP Response#
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:rejectRemittanceResponse xmlns:ns2="http://xml.netbeans.org/schema/ApiSchema" xmlns:ns3="http://webservice/">
<return>
<ns2:resultCode>9000</ns2:resultCode>
<ns2:resultMessage>Operation Successfully</ns2:resultMessage>
</return>
</ns3:rejectRemittanceResponse>
</S:Body>
</S:Envelope>

