Send Money Claimless

Claimless payment flow enables payments to be deposited directly into the receiver's bank account, without the need to open an email or activate a Veem account with a password, as opposed to the normal Send Money Flow.

Claimless payment rules

Payer is in in the United States and in an MTL State (Territories like Puerto Rico are also excluded) OR Canada

All Payee countries and payment types are eligible, except for Individual CNY recipients in China.

All Payee's info must be provided - bank info( Bank account number, routing number etc), contact info( First name, Last name, phone number etc), business info (business name, tax ID, industry, .etc) AND Payee is not a Sanctions-Match.

Each country has its own bank requirements (as well as currency codes), we have a service that lets us know about bank parameters, acceptance currency and other stuffs.

POST https://sandbox-api.veem.com/veem/public/v1.2/country-currency-map?bankFields=true

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7

Notes:
X-Request-id can be any string, but it must be unique for each different transaction you do using the same account. We recommend generating this value as a GUID, and save it for reference. You cannot create two different payments using the same X-Request-Id value, if you try it, you simple get the date for the first payment created using that value.

[
...
    {
      "country": "CA",
      "countryName": "Canada",
      "sendingCurrencies": [
        "CAD",
        "USD"
      ],
      "receivingCurrencies": [
        "CAD",
        "USD"
      ],
      "purposeOfPaymentRequired": true,
      "invoiceAttachmentRequired": false,
      "bankFields": [
        "isoCountryCode",
        "currencyCode",
        "bankName",
        "bankAccountNumber",
        "swiftBic",
        "transitCode",
        "bankInstitutionNumber"
      ],
      "purposeOfPaymentDescriptionRequired": true
    },
    {
      "country": "CL",
      "countryName": "Chile",
      "sendingCurrencies": [
        "USD"
      ],
      "receivingCurrencies": [
        "CLP",
        "USD"
      ],
      "purposeOfPaymentRequired": true,
      "invoiceAttachmentRequired": false,
      "bankFields": [
        "beneficiaryName",
        "isoCountryCode",
        "currencyCode",
        "bankName",
        "bankAccountNumber",
        "swiftBic"
      ],
      "purposeOfPaymentInfo": [
        {
          "countryCode": "CL",
          "purposeCode": "Charitable Donation",
          "description": "Charitable Donation",
          "industry": null,
          "subindustry": null
        },
        {
          "countryCode": "CL",
          "purposeCode": "Goods",
          "description": "Goods",
          "industry": null,
          "subindustry": null
        },
        {
          "countryCode": "CL",
          "purposeCode": "Services",
          "description": "Services",
          "industry": null,
          "subindustry": null
        },
        {
          "countryCode": "CL",
          "purposeCode": "Personal",
          "description": "Personal",
          "industry": null,
          "subindustry": null
        }
      ],
      "purposeOfPaymentDescriptionRequired": true
    }
...
]

On the above payload, we have bankFields, sendingCurrencies, receivingCurrencies, and purposeOfPaymentInfo. Those parameters vary based on country.

Send Money from US - Canada to an allowed country

If the payer belongs to USA or Canada and the payee belongs to a supported country, then the only client call that should be made is claimless-payment. For example:

POST https://sandbox-api.veem.com/veem/v1.2/claimless-payments

Headers

  • X-request-id: For example 48855846-628d-4177-b071-80332a116f0a
  • Authorization: Bearer : Authorization token that belongs to the account created, example Bearer d49e7fd4-2600-4dd4-a572-118668febbe7
{
   "purposeOfPayment": "Goods",
   "notes": "Payment notes",
   "payee": {
       "firstName":"Vlad",
       "lastName":"Musienko",
       "email": "[email protected]",
       "countryCode": "FR",
       "phone": "2102102101",
       "type":"Business",
       "industry":"Software, IT and Telecommunications",
       "subIndustry":"Software",
       "businessName":"Vlad Co",
       "phoneCountryCode":"+1",
       "business": {
           "address":{
               "countryCode":"FR",
               "street":"123 Main",
               "postalCode":"123456",
               "province":"Cognac",
               "city":"Marcel"
           },
           "entity": "Corporation",
           "taxIdNumber": "XAXX010101000"
        },
        "bank":{
           "isoCountryCode":"FR",
           "bankName":"Bank of France",
           "currencyCode":"EUR",
           "bankAccountNumber":"12345678",
           "routingNumber":"041215032",
           "swiftBic": "CUCXCATT",
           "bankInstitutionNumber": "879",
           "bic": "CUCXCATT",
           "iban":"FR1420041010050500013M02606"
       }
   },
   "amount": {
       "number": 100.00,
       "currency": "USD"
   },
   "fundingMethod": {
       "id":2393,
       "type": "Bank"
   }
   "goodFundsPayment": true
}

When the Veem services receive the request, the following actions are triggered:

  1. Payee account (Guest) is created with the provided bank information if it doesn't already exist
  2. Payment is created in Veem
  3. An email is sent to the payee
  4. The money is pulled from the specified funding method, this field is required.

Note: emails are sent in Sandbox env so please use test emails accounts using 3rd party provide like mailinator
Note: we use E.164 standard for phone numbers. You can use following google-library to validate your customer's phone-number before you send to Veem via API.

The response returned to the client will include all the input fields included in the request, as well as a payment id field that can be used to fetch the status of the payment:

{
   "requestId": "40c83e7c-4b59-4023-b52c-1d20d4263b5b",
   "payee": {
       "email": "[email protected]",
       "countryCode": "FR",
       "phone": "tel:+1-210-210-2101"
   },
   "payeeAmount": {
       "number": 100.00,
       "currency": "USD"
   },
   "status": "Sent",
   "id": 458377,
   "goodFundsPayment": true,
   "exchangeRate": {
       "fromAmount": 100.00,
       "fromCurrency": "USD",
       "toAmount": 100.00,
       "toCurrency": "USD"
   },
   "feeInformation": {
       "payerInfo": {
           "originalAmount": 100.00,
           "feeAmount": 0,
           "totalAmount": 100.00,
           "currency": "USD"
       }
   },
   "timeCreated": "2024-18-01T03:50:23.452Z",
   "timeUpdated": "2024-18-01T03:50:24.436Z",
   "claimLink": "https://sandbox-api.veem.com/api/c/qkwonYMX"
}