Skip to content

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.

Empty Field Example
<Field1></Field1>

Or

<Field1/>
Object Representation
Object.setField1("")

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)

  1. The remittance is created using sendRemittance.
  2. 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)
email 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)
email 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>