Wyre's webhooks allow you to get automatic updates anytime the status on your wallet orders or data subscription changes.

Wallet Order Webhooks

Wallet Order webhooks provide you with updates on card payments. The webhook will be called when the order reaches the processing status and once when it is complete. A webhook will also be called if the order is in failed status.

To configure a wallet order webhook Url, send a POST request to our /v2/digitalwallet/webhook endpoint with your Wyre account Id and your webhook Url.

{ 
"owner":"account:AC_W4299GGHVUE", 
"webhook":"https://requestinspector.com/inspect/wyreprod"
}

Once configured, your url will receive notifications for the PROCESSING, COMPLETE, and FAILED statuses.

{
    "referenceId": null,
    "accountId": "AC_JVPFPWYQH4B",
    "orderId": "WO_NMYEGUBDME",
    "orderStatus": "PROCESSING",
    "transferId": "TF_PCZ6N9ECMUC",
    "failedReason": null,
    "error": null,
    "reservation": "LFUVG7CDCAZBDJQJUX3V",
    "email": "[email protected]"
}

Callback Urls

Some Wyre endpoints allow you to provide a callback Url per request.

For Wallets, use the callbackUrl body parameter.
For Transfers, use the notifyUrl body parameter.

For transfers, you will receive the first callback once when the transfer is confirmed and another when the transfer is completed.

NEW
Transfer callbacks for Reversed and Expired Transfers now supported.

{
    "subscriptionId": "DA_A2GWGR4PQE6",
    "trigger": "transfer:TF_HPYFMXCARXH"
}

Then call Get Transfer to query for the full Transfer status and details.

{
   "createdAt":1635182780554,
   "id":"TR_E6H8H2AWEYP",
   "source":"bitcoin:EXTERNAL",
   "dest":"wallet:WA_9ABGC8LW7G4",
   "currency":"BTC",
   "amount":0.001,
   "status":"CONFIRMED",
   "confirmedAt":1635182780554,
   "cancelledAt":null,
   "reversedAt":null,
   "message":null,
   "allowOverdraft":true,
   "authorizer":null,
   "senderProvidedId":null,
   "reversedBy":null,
   "fees":0,
   "feesDest":null,
   "metadata":{
      "BTCNetworkTxId":"cb109405ab870bc0f916aad79a605d2d6fa23e53eec4523a3be8c0d22d15e256"
   },
   "tags":[
      
   ],
   "sourceFees":null,
   "destFees":null,
   "clientIp":"127.0.0.1"
}
{
  "createdAt": 1633130340295,
  "id": "TF_QA9GMG3GAWV-D",
  "source": "transfer:TF_QA9GMG3GAWV",
  "dest": "wallet:WA_9H8PB4XP92M",
  "currency": "USD",
  "amount": 10,
  "status": "CONFIRMED",
  "confirmedAt": 1633130340295,
  "cancelledAt": null,
  "reversedAt": null,
  "message": "Deposit for transfer TF_QA9GMG3GAWV",
  "allowOverdraft": true,
  "authorizer": "account:AC_YC3NT6GEZ8U",
  "senderProvidedId": null,
  "reversedBy": null,
  "fees": 0,
  "feesDest": null,
  "metadata": {
    "transferId": "TF_QA9GMG3GAWV"
  },
  "tags": [],
  "sourceFees": null,
  "destFees": null
}
{
    "transfer": {
        "id": "TF_DHHQ2GNTE83",
        "status": "REVERSED",
        "failureReason": null,
        "language": "en",
        "createdAt": 1661377534000,
        "updatedAt": 1661377577000,
        "completedAt": 1661377578000,
        "depositInitiatedAt": 1661377578000,
        "cancelledAt": null,
        "expiresAt": 1661378434000,
        "owner": "account:AC_JVPFPWYQH4B",
        "source": "account:AC_JVPFPWYQH4B",
        "dest": "paymentmethod:PA_WXZUFU9FU26",
        "sourceCurrency": "USD",
        "sourceAmount": 1E+2,
        "destCurrency": "USD",
        "destAmount": "99",
        "atMinFee": true,
        "exchangeRate": null,
        "desc": null,
        "message": "test funds",
        "totalFees": 1,
        "equivalencies": {
....
        },
        "feeEquivalencies": {
  ....
        },
        "fees": {
            "USD": 1.00

        ],
.....
    "reversalReason": "test",
    "statusHistories": [
......
    ],
    "message": "test funds",
    "id": "TF_DHHQ2GNTE83",
    "owner": "account:AC_JVPFPWYQH4B",
    "source": "account:AC_JVPFPWYQH4B",
    "status": "REVERSED"
}

External crypto deposits to a wallet will trigger a callback to the url attached to the wallet

{
  "createdAt": 1653397211886,
  "id": "TR_4J9V6QAAE57",
  "source": "ethereum:0x55545513537ec7f03a0af928bce4b200e6d655dd",
  "dest": "wallet:WA_L9L33J4PFGU",
  "currency": "ETH",
  "amount": 0.0011200016533845,
  "status": "CONFIRMED",
  "confirmedAt": 1653397211886,
  "cancelledAt": null,
  "reversedAt": null,
  "message": null,
  "allowOverdraft": true,
  "authorizer": null,
  "senderProvidedId": null,
  "reversedBy": null,
  "fees": 0,
  "feesDest": null,
  "metadata": {
    "ETHNetworkTxId": "0xe5ty36bd20a3735c1ff0a0c0358449c9rt5524e9b2f80660057dce50a0f039d7"
  },
  "tags": [],
  "sourceFees": null,
  "destFees": null
}

Data Subscriptions

Webhooks for Account, User, and Payment Method updates are made using the data subscription endpoint.

These webhooks do not deliver a full payload and require you to make a subsequent GET call to retrieve the status update details.

{
  "subscriptionId": "DA_GD894ANFUGC",
  "trigger": "account:AC_J8T8C7LFJ3V"
}
{
  "subscriptionId": "DA_GDRGHA48ANF",
  "trigger": "user:US_TCV6A9R922J"
}
{
    "subscriptionId": "DA_CCZRGH7H9CZ",
    "trigger": "paymentmethod:PA_DJQGBPPPAA2"
}
{
  "userId":"US_9UG6JF2Y26T","type":
  "USER_STATUS_UPDATED"
}

Securing Webhooks

The endpoint you have created to accept webhooks from Wyre is unauthenticated, you may wish to lock this endpoint down and only whitelist Wyre IPs, preventing the possibility of a DDoS attack.

Here are the IP addresses that you can whitelist:

Sendwyre:
52.36.189.92
52.27.236.228
34.208.229.152

Testwyre:
44.229.236.122
44.233.59.43
44.238.83.93