Western Union Send Money Now icon

Western Union Send Money Data API

Western Union · Payments

Western Union Send Money Now is Western Union's consumer remittance Android client for people who send cash pickup, bank deposit, mobile-wallet payouts and home delivery from the United States to family abroad. Senders pick a corridor on Estimate Price, fund with a debit or credit card, ACH, Google Pay or a stored wallet, then follow the transfer with an MTCN on Track Transfer. The same logged-in shell holds bill pay, inmate pay, Ding airtime top-up, Find Locations, My WU rewards, saved receivers and billers, a customer dashboard and a hop to Western Union Prepaid. It competes with Remitly, Xoom, Wise and MoneyGram for US-origin family remittances into Mexico, India, Brazil, Vietnam, Indonesia, Nigeria and other receive markets.

Corridor quotes pin send-side principal_amount against receive-side expected_payout_amount, with per-payout fees, fx_rate and a service code for cash pickup, bank deposit, wallet or home delivery. After funding, money_transfer_control.mtcn and transactionStatus identify the same transfer on Track Transfer and on the dashboard history list.

The signed-in book adds receivers.receiver names and payout accounts, gatewayCustomer.preferredCustomer.accountNbr plus identityVerificationStatus on the profile, and My WU totalPointsEarned. Agent maps return reference_location.geo_coordinates with search_radius. Comparison engines, support desks and loyalty ledgers consume those fields; openData Studio turns them into callable open data.

Screenshots

  • Western Union Send Money Now screenshot 1
  • Western Union Send Money Now screenshot 2
  • Western Union Send Money Now screenshot 3
  • Western Union Send Money Now screenshot 4
  • Western Union Send Money Now screenshot 5
  • Western Union Send Money Now screenshot 6
  • Western Union Send Money Now screenshot 7
  • Western Union Send Money Now screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Create digital session

    POST /v1/channel/sessions opendata

    Opens the mobile channel session used by every later quote, send, track and profile call.

    Auth: Anonymous bootstrap. The response security.session.id is carried in the JSON body of later calls and as the Session-Token header on price estimates.

    • channel.type
    • channel.name
    • channel.partner_id
    • security.session.id
    • security.session.encryptedSessionId
    POST /v1/channel/sessions HTTP/1.1
    Content-Type: application/json
    
    {
      "channel": {
        "type": "SMARTPHONE",
        "name": "MOBILE_APP",
        "partner_id": "<partner-id>"
      },
      "security": {}
    }
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2",
          "encryptedSessionId": "enc_sess_9c21"
        }
      }
    }
  • Sign on customer

    POST /v1/channel/sessions/sign-on osint

    Authenticates the sender and returns the gateway customer card used to paint the dashboard — name, My WU account number, KYC flag and address.

    Auth: security.session.id from the session bootstrap call in the JSON body.

    • gatewayCustomer.email
    • gatewayCustomer.name.firstName
    • gatewayCustomer.name.lastName
    • gatewayCustomer.dateOfBirth
    • gatewayCustomer.identityVerificationStatus
    • gatewayCustomer.preferredCustomer.accountNbr
    • gatewayCustomer.mobilePhone.phoneNumber.nationalNumber
    • gatewayCustomer.address.city
    • gatewayCustomer.registrationStatus
    • gatewayCustomer.transactionCount
    POST /v1/channel/sessions/sign-on HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "channel": {
        "type": "SMARTPHONE"
      },
      "gateway_customer": {
        "email": "[email protected]",
        "security": {
          "password": "<password>"
        }
      }
    }
    {
      "gatewayCustomer": {
        "email": "[email protected]",
        "name": {
          "firstName": "Maria",
          "middleName": "",
          "lastName": "Santos"
        },
        "dateOfBirth": "1991-04-18",
        "identityVerificationStatus": "Y",
        "preferredCustomer": {
          "accountNbr": "123456789"
        },
        "mobilePhone": {
          "phoneNumber": {
            "countryCode": "1",
            "nationalNumber": "4155550123"
          }
        },
        "address": {
          "city": "San Jose",
          "state": "CA",
          "countryIsoCode": "US"
        },
        "registrationStatus": "ACTIVE",
        "transactionCount": 14
      }
    }
  • Quote corridor fees

    GET /v1/pricing/estimates/{originCountry}/{originCurrency}/{destinationCountry}/{destinationCurrency}/{postalCode} openfinance

    Estimate Price lookup: send/receive countries and currencies plus postal code return per-payout-type fees, FX and expected payout (cash AG, bank BA, wallet WA, home delivery HD).

    Auth: Session-Token header = security.session.id; optional Partner-Id header.

    • servicesMeta
    • service
    • deliveryOptionDescription
    • expected_payout_amount
    • fees
    • fx_rate
    • exchange_rate
    • principal_amount
    • country_iso_code
    • currency_iso_code
    GET /v1/pricing/estimates/US/USD/MX/MXN/95131 HTTP/1.1
    Session-Token: sess_7f3a91c2
    Partner-Id: <partner-id>
    Accept: application/json
    {
      "servicesMeta": [
        {
          "service": "000",
          "deliveryOptionDescription": "Cash pickup",
          "expected_payout_amount": 185000,
          "fees": 499,
          "fx_rate": 18.52,
          "exchange_rate": 18.52
        },
        {
          "service": "500",
          "deliveryOptionDescription": "Bank deposit",
          "expected_payout_amount": 185200,
          "fees": 299,
          "fx_rate": 18.54
        }
      ]
    }
  • List send corridors

    GET /v1/pricing/destinations opendata

    Destination-country catalog that fills the corridor picker before a fee quote.

    Auth: Optional Partner-Id header; no session required for the catalog GET.

    • corridors
    • country_iso_code
    • currency_iso_code
    • country_name
    GET /v1/pricing/destinations HTTP/1.1
    Partner-Id: <partner-id>
    Accept: application/json
    {
      "corridors": [
        {
          "country_iso_code": "MX",
          "currency_iso_code": "MXN",
          "country_name": "Mexico"
        },
        {
          "country_iso_code": "IN",
          "currency_iso_code": "INR",
          "country_name": "India"
        },
        {
          "country_iso_code": "PH",
          "currency_iso_code": "PHP",
          "country_name": "Philippines"
        }
      ]
    }
  • List saved receivers

    POST /v1/contacts/receivers/list osint

    Returns the sender's saved receiver book (My Receivers) including payout wallet/bank details for send-again.

    Auth: security.session.id from the session bootstrap / sign-on calls.

    • receivers.receiver
    • name.first_name
    • name.last_name
    • address.city
    • address.country_iso_code
    • mobile_phone.phone_number.national_number
    • wallet.bankAccounts.bankAccount
    • bank_name
    • wallet_account_number
    POST /v1/contacts/receivers/list HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "channel": {
        "type": "SMARTPHONE"
      },
      "gateway_customer": {
        "preferred_customer": {
          "account_nbr": "123456789"
        }
      }
    }
    {
      "receivers": {
        "receiver": [
          {
            "name": {
              "first_name": "Carlos",
              "last_name": "Santos"
            },
            "address": {
              "city": "Guadalajara",
              "country_iso_code": "MX"
            },
            "mobile_phone": {
              "phone_number": {
                "country_code": "52",
                "national_number": "3312345678"
              }
            },
            "wallet": {
              "bankAccounts": {
                "bankAccount": [
                  {
                    "bank_name": "BBVA",
                    "wallet_account_number": "012345678901234567"
                  }
                ]
              }
            }
          }
        ]
      }
    }
  • Read customer profile

    POST /v1/customers/profile/read osint

    Reloads the signed-in sender profile, KYC flags, stored cards and account preferences for Account Overview.

    Auth: security.session.id plus gateway_customer.preferred_customer.account_nbr.

    • gatewayCustomer.preferredCustomer.accountNbr
    • gatewayCustomer.name.firstName
    • gatewayCustomer.email
    • gatewayCustomer.dateOfBirth
    • gatewayCustomer.identityVerificationStatus
    • gatewayCustomer.verificationSource
    • gatewayCustomer.accountPreferences
    • gatewayCustomer.wallet.creditDebitCards.creditDebitCard
    • card_digest
    • card_status
    • gatewayCustomer.registrationDate
    POST /v1/customers/profile/read HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "gateway_customer": {
        "preferred_customer": {
          "account_nbr": "123456789"
        }
      }
    }
    {
      "gatewayCustomer": {
        "preferredCustomer": {
          "accountNbr": "123456789"
        },
        "name": {
          "firstName": "Maria",
          "lastName": "Santos"
        },
        "email": "[email protected]",
        "dateOfBirth": "1991-04-18",
        "identityVerificationStatus": "Y",
        "verificationSource": "F2F_VERIFIED",
        "accountPreferences": {
          "email": true,
          "telephone_call": false
        },
        "wallet": {
          "bankAccounts": {
            "bankAccount": []
          },
          "creditDebitCards": {
            "creditDebitCard": [
              {
                "card_digest": "vis_4411",
                "card_status": "ACTIVE"
              }
            ]
          }
        },
        "registrationDate": "2019-06-02"
      }
    }
  • Page transaction history

    POST /v1/transfers/history/search openbanking

    Customer-dashboard history of digital sends — MTCN, amounts, fees and receiver — used by the transaction-history screens.

    Auth: security.session.id; body repeats the profile lookup plus an optional transactions filter.

    • transactions
    • money_transfer_control.mtcn
    • money_transfer_control.date
    • transaction_id
    • transactionStatus
    • principal_amount
    • expected_payout_amount
    • fees
    • receiver.name.first_name
    POST /v1/transfers/history/search HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "gateway_customer": {
        "preferred_customer": {
          "account_nbr": "123456789"
        }
      },
      "transactions": {
        "origination": {
          "country_iso_code": "US",
          "currency_iso_code": "USD"
        },
        "destination": {
          "country_iso_code": "MX",
          "currency_iso_code": "MXN"
        }
      }
    }
    {
      "transactions": [
        {
          "money_transfer_control": {
            "mtcn": "1234567890",
            "date": "2026-10-18"
          },
          "transaction_id": "txn_8f21",
          "transactionStatus": "AVAILABLE",
          "payment_details": {
            "origination": {
              "principal_amount": 10000,
              "currency_iso_code": "USD"
            },
            "destination": {
              "expected_payout_amount": 185000,
              "currency_iso_code": "MXN"
            },
            "fees": 499
          },
          "receiver": {
            "name": {
              "first_name": "Carlos",
              "last_name": "Santos"
            }
          }
        }
      ]
    }
  • Track transfer by MTCN

    POST /v1/transfers/status/lookup openbanking

    Track Transfer lookup by MTCN (and optional date, amount or receiver name) returning payout status for sender or receiver side.

    Auth: security.session.id; guest tracking may send login:false. A tracking-side parameter distinguishes sender vs receiver lookup.

    • inquiry_type
    • money_transfer_control.mtcn
    • transactionStatus
    • principal_amount
    • expected_payout_amount
    • fees
    • exchange_rate
    • query_params.param.type
    • receiver.name.first_name
    POST /v1/transfers/status/lookup HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "inquiry_type": "MONEY_TRANSFER",
      "login": "false",
      "money_transfer_control": {
        "mtcn": "1234567890",
        "date": "2026-10-18"
      },
      "payment_details": {
        "origination": {
          "country_iso_code": "US",
          "currency_iso_code": "USD",
          "principal_amount": 10000
        },
        "destination": {
          "country_iso_code": "MX",
          "currency_iso_code": "MXN"
        }
      },
      "receiver": {
        "address": {
          "country_iso_code": "MX"
        },
        "name": {
          "first_name": "Carlos",
          "last_name": "Santos"
        }
      },
      "query_params": {
        "param": [
          {
            "type": "TRACKING_SIDE",
            "value": "SENDER"
          }
        ]
      }
    }
    {
      "transactionStatus": "AVAILABLE",
      "money_transfer_control": {
        "mtcn": "1234567890",
        "date": "2026-10-18"
      },
      "payment_details": {
        "origination": {
          "principal_amount": 10000,
          "currency_iso_code": "USD"
        },
        "destination": {
          "expected_payout_amount": 185000,
          "currency_iso_code": "MXN"
        },
        "fees": 499,
        "exchange_rate": 18.52
      },
      "receiver": {
        "name": {
          "first_name": "Carlos",
          "last_name": "Santos"
        }
      }
    }
  • Store send-money transfer

    POST /v1/transfers/commit openfinance

    Commits a funded send after the pre-send validation step — returns the MTCN printed on the receipt.

    Auth: security.session.id from a signed-in or staged session. Retail stage-and-pay uses a sibling staging call on the same channel.

    • payment_details.origination.principal_amount
    • payment_details.destination.expected_payout_amount
    • payment_details.fees
    • sender.compliance_details.verification_consent_flag
    • receiver.mobile_phone.phone_number.national_number
    • money_transfer_control.mtcn
    • transaction_id
    • transactionStatus
    • exchange_rate
    POST /v1/transfers/commit HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "channel": {
        "type": "SMARTPHONE",
        "source": "DIGITAL"
      },
      "payment_details": {
        "origination": {
          "country_iso_code": "US",
          "currency_iso_code": "USD",
          "principal_amount": 10000
        },
        "destination": {
          "country_iso_code": "MX",
          "currency_iso_code": "MXN",
          "expected_payout_amount": 185000
        },
        "fees": 499
      },
      "sender": {
        "name": {
          "first_name": "Maria",
          "last_name": "Santos"
        },
        "compliance_details": {
          "verification_consent_flag": "Y"
        }
      },
      "receiver": {
        "name": {
          "first_name": "Carlos",
          "last_name": "Santos"
        },
        "mobile_phone": {
          "phone_number": {
            "country_code": "52",
            "national_number": "3312345678"
          }
        }
      }
    }
    {
      "money_transfer_control": {
        "mtcn": "1234567890"
      },
      "transaction_id": "txn_8f21",
      "transactionStatus": "IN_PROCESS",
      "payment_details": {
        "origination": {
          "principal_amount": 10000
        },
        "destination": {
          "expected_payout_amount": 185000
        },
        "fees": 499,
        "exchange_rate": 18.52
      }
    }
  • Read send limits

    POST /v1/pricing/limits/lookup openfinance

    Per-corridor min/max send amounts by pay-in method, merged with payInTransactionLimit before the amount stepper.

    Auth: security.session.id; the limits schema is versioned by the client.

    • transactionLimits.transactionLimit
    • transactionLimits.payInTransactionLimit
    • min_amount
    • max_amount
    • currency_iso_code
    • channel
    POST /v1/pricing/limits/lookup HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "payment_details": {
        "origination": {
          "country_iso_code": "US",
          "currency_iso_code": "USD"
        },
        "destination": {
          "country_iso_code": "MX",
          "currency_iso_code": "MXN"
        }
      }
    }
    {
      "transactionLimits": {
        "transactionLimit": [
          {
            "min_amount": 100,
            "max_amount": 299900,
            "currency_iso_code": "USD",
            "channel": "CC"
          }
        ],
        "payInTransactionLimit": [
          {
            "min_amount": 100,
            "max_amount": 500000,
            "currency_iso_code": "USD",
            "channel": "ACH"
          }
        ]
      }
    }
  • Find agent locations

    POST /v1/locations/agents/search opendata

    Find Locations map search — agents near a lat/long, sorted by distance, for cash send or pickup.

    Auth: Session security block (session.id). The Find Locations map pans, then posts the new center.

    • reference_location.geo_coordinates.latitude
    • reference_location.geo_coordinates.longitude
    • search_radius
    • max_results
    • sort_by
    • locations
    • agent_name
    • distance
    • address.addr_line1
    • address.postal_code
    POST /v1/locations/agents/search HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "reference_location": {
        "geo_coordinates": {
          "latitude": "37.33820",
          "longitude": "-121.88630",
          "horiz_accuracy": 0,
          "vert_accuracy": 0
        }
      },
      "search_radius": 10,
      "max_results": 25,
      "sort_by": "DISTANCE"
    }
    {
      "locations": [
        {
          "agent_name": "Western Union - Grocery Mart",
          "distance": 0.8,
          "reference_location": {
            "geo_coordinates": {
              "latitude": "37.34010",
              "longitude": "-121.89002"
            }
          },
          "address": {
            "addr_line1": "200 E Santa Clara St",
            "city": "San Jose",
            "postal_code": "95113"
          }
        }
      ]
    }
  • Read My WU rewards

    POST /v1/loyalty/rewards/list opendata

    My WU rewards wallet — points balance, tier and redeemable offers shown on the rewards screen.

    Auth: security.session.id plus preferred_customer.account_nbr and level_code.

    • totalPointsEarned
    • mywu_points
    • preferredCustomer.accountNbr
    • preferredCustomer.levelCode
    • rewards
    • reward_type
    • points
    • promo_campaign
    POST /v1/loyalty/rewards/list HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "gateway_customer": {
        "preferred_customer": {
          "account_nbr": "123456789",
          "level_code": "GOLD"
        }
      },
      "params": {
        "param": [
          {
            "name": "REWARD_TYPE",
            "value": "ALL"
          }
        ]
      }
    }
    {
      "totalPointsEarned": 2450,
      "mywu_points": 2450,
      "preferredCustomer": {
        "accountNbr": "123456789",
        "levelCode": "GOLD",
        "totalPointsEarned": 2450
      },
      "rewards": [
        {
          "reward_type": "FEE_DISCOUNT",
          "points": 500,
          "promo_campaign": "FALL26"
        }
      ]
    }
  • List billers

    POST /v1/contacts/billers/list openfinance

    Saved billers for Bill Pay / inmate-pay and My Receivers & Billers.

    Auth: security.session.id from the signed-in channel.

    • billers
    • biller
    • account_nbr
    • country_iso_code
    • currency_iso_code
    POST /v1/contacts/billers/list HTTP/1.1
    Content-Type: application/json
    
    {
      "security": {
        "session": {
          "id": "sess_7f3a91c2"
        }
      },
      "channel": {
        "type": "SMARTPHONE"
      },
      "gateway_customer": {
        "preferred_customer": {
          "account_nbr": "123456789"
        }
      }
    }
    {
      "billers": [
        {
          "biller": "PG&E",
          "account_nbr": "0987654321",
          "country_iso_code": "US",
          "currency_iso_code": "USD"
        }
      ]
    }

Data categories

  • remittance quotes
  • transfers
  • receivers
  • customer profile
  • rewards
  • agent locations
  • billers
  • send limits

Where teams use this data

  • Corridor FX and fee monitor

    A treasury or comparison bot polls US→MX/IN/BR quotes and stores expected_payout_amount, fees, fx_rate and service (cash vs bank vs wallet) to alert when a payout type undercuts the last print.

  • MTCN status for support desks

    An ops queue looks up money_transfer_control.mtcn via transaction inquiry, then joins transactionStatus and destination amounts onto the ticket so agents do not re-key Track Transfer.

  • Receiver-book sync

    A family-office CRM pulls receivers.receiver (name, country_iso_code, wallet_account_number) after sign-on and diffs it against the household beneficiary list before send-again.

  • My WU loyalty reconciliation

    A rewards ledger matches preferredCustomer.accountNbr and totalPointsEarned to in-house promo liability, using reward_type and promo_campaign on each offer.

Frequently asked questions

How does Western Union Send Money Now authenticate its calls?

An anonymous POST /v1/channel/sessions issues security.session.id (and encryptedSessionId). Later calls put that id in the JSON security.session object, and price estimates also send it as a Session-Token header. POST /v1/channel/sessions/sign-on then binds the session to gatewayCustomer.preferredCustomer.accountNbr.

What identifies a transfer after send?

POST /v1/transfers/commit returns money_transfer_control.mtcn. Track Transfer posts that MTCN to /v1/transfers/status/lookup with inquiry_type MONEY_TRANSFER and a sender or receiver tracking side, while the dashboard pages the same identifiers from /v1/transfers/history/search.

Which payout types appear on a quote?

Each servicesMeta entry carries a service code that marks agent cash (AG), bank deposit (BA), mobile wallet (WA) or home delivery (HD), together with expected_payout_amount, fees and fx_rate for the chosen corridor.

Is this a public Western Union developer API?

No. Western Union does not publish these calls as a partner SDK. The endpoints on this page are an illustrative surface that shows the shape of the quote, transfer, receiver, rewards and location data the app exchanges, so you can see what an openData Studio integration would expose.

Apps similar to Western Union Send Money Now

  • Remitly: Send Money & Transfer — Remitly is a Seattle-based online remittance company that sends from about 30 countries to more than 170 destinations as a bank deposit, mobile money, or cash pickup.
  • Xoom: Send Money & Transfer — Xoom is PayPal's San Francisco digital money-transfer service for sending from the United States, Canada, the United Kingdom and select European countries to bank accounts, mobile wallets or cash pickup in 160 countries.
  • Wise: International Transfers — Wise (formerly TransferWise) is a London-based international money app that sends to 140-plus countries, holds a multi-currency account with local bank details, and is not a cash-pickup agent network.
  • MoneyGram — MoneyGram is a Dallas-based peer-to-peer money-transfer company that sends funds through about 400,000 agent offices in more than 200 countries and territories for cash pickup or bank deposit.
  • Ria Money Transfer — Ria Money Transfer is a Euronet Worldwide subsidiary that specializes in customer-to-customer international remittances through agent locations, stores, and a mobile app.
  • WorldRemit — WorldRemit is a London-based digital remittance app, part of the Zepz group, that sends money to more than 130 countries with payout via bank deposit, mobile money, cash pickup, or airtime top-up.
  • Taptap Send: Money Transfer — Taptap Send is an international remittance app that sends from the United States, the United Kingdom and other European countries to destinations in Africa, Asia and Latin America as a bank deposit, mobile money, or cash pickup.
  • Xe Money Transfer & Currency — Xe is a Canadian foreign-exchange site and app, owned by Euronet Worldwide, that publishes live rates and runs Xe Money Transfer for consumer and business international payments.

Topics

  • Western Union API
  • WU Send Money Now
  • MTCN tracking API
  • remittance fee quote
  • My WU points
  • money transfer control number
  • Western Union receivers
  • openData Studio

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote