# Payment Methods

# Introduction

Sum&Substance provides functionality for receiving documents related to payments and analyzes the information provided.

We currently work with the following types of documents:

  • Bank cards
  • Wire transfers
  • Crypto wallets
  • eWallets

You can see how to set up the necessary steps in our dashboard.

# Adding payment method

Adding a payment method is done in 2 steps:

  • Adding information about the method
  • Adding an image (if necessary)

# Adding information about the payment method

POST /resources/applicants/{applicantId}/paymentMethods

# REQUEST ARGUMENTS
Name Type Required Description
#{body} Object Yes An object representing a payment method (see example)
# body ATTRIBUTE
Name Type Required Description
type String Yes bankCard, eWallet, wireTransfer or cryptoWallet
subType String No VISA, MASTERCARD, BTC, ...
data String No An object representing a payment method to compare with data from the end user
# RESPONSE
Name Type Required Description
id String Yes Unique identifier of the payment method
type String Yes bankCard, eWallet, wireTransfer or cryptoWallet
subType String No VISA, MASTERCARD, BTC, ...
# Example request
# Example response
{
  "id": "5d44a87a0a975a27bc5c9440",
  "type": "cryptoWallet",
  "subType": "BTC"
}

# Adding an image

POST /resources/applicants/{applicantId}/paymentMethods/{paymentMethodId}/images

# REQUEST HEADERS
Name Type Value
Content-Type String multipart/form-data
# FORM DATA
Name Type Required Description
content Binary Yes A photo of a document
# RESPONSE

JSON representing added document information.

# Example request

# Requesting additional payment method

If the user has already uploaded a document and you want to ask them to upload another document, you need to perform such a request:

POST /resources/applicants/{applicantId}/paymentMethods

# REQUEST ARGUMENTS
Name Type Required Description
#{body} Object Yes An object representing a payment method (see example)
# body ATTRIBUTE
Name Type Required Description
type String Yes bankCard, eWallet, wireTransfer or cryptoWallet
subType String No VISA, MASTERCARD, BTC, ...
data String Yes An object representing a payment method. requiredIdDoc contains information for comparison with data from the end user.
# RESPONSE

JSON representing added document information.

Name Description
number/address Number/address of crypto wallet
checkType Type of check
riskScore Risk score of crypto wallet
status Status of crypto wallet
# Example request
# If you want to add only the crypto-wallet for verification

# Getting information about payment methods

# Example response (you can get this info using method)
{
  "id": "5eec7a4f20611167bfa4b81b",
  "createdAt": "2020-06-19 08:41:51",
  "clientId": "client_id",
  "inspectionId": "5eec7a4f20611167bfa4b81c",
  "externalUserId": "external_user_id",
  "info": {
    "firstName": "URSEL",
    "firstNameEn": "URSEL",
    "lastName": "SMITH",
    "lastNameEn": "SMITH",
    "country": "DEU",
    "paymentInfo": {
      "reviewResult": null,
      "paymentMethods": [
        {
          "id": "5eec7cc420611167bfa4e1da",
          "type": "bankCard",
          "subType": "VISA",
          "createdAt": "2020-06-19 08:52:20",
          "data": {
            "firstName": "URSEL",
            "lastName": "SMITH",
            "validUntil": "2020-11-30",
            "number": "4906389002"
          },
          "imageIds": [
            "1011765502",
            "202122173"
          ],
          "reviewResult": {
            "reviewAnswer": "GREEN"
          },
          "trackingData": {
            "ip": "2a02:8108:3dbf:fb3d:fc93:1929:e884:b82e",
            "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-A505FN Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.101 Mobile Safari/537.36",
            "xClientId": "WebSDK",
            "deviceFingerprint": "5213dac5bf79b080adca12deed571868",
            "sessionId": "0501050511907110205373640830410310153736078036024_zy30495bb"
          },
          "checks": [
            {
              "id": "5eec7f843cc1813469575815",
              "answer": "GREEN",
              "checkType": "bankCardRiskScore",
              "inputData": {
                "firstName": "URSEL",
                "lastName": "SMITH",
                "validUntil": "2020-11-30",
                "number": "4906389002"
              },
              "bankCardRiskScoreInfo": {
                "riskScore": 0.0245,
                "ipRiskScore": 1.0E-4,
                "crossCheck": null,
                "nameMatch": "GREEN",
                "countryMatch": "GREEN",
                "highRiskEmailCheck": "GREEN",
                "countryIpMatch": "GREEN",
                "ipCountry": "DEU",
                "emailFirstSeenAt": "2020-06-19 00:00:00",
                "binInfo": {
                  "bin": null,
                  "brand": "Visa",
                  "issuer": "BARCLAYS BANK PLC",
                  "type": "credit",
                  "category": null,
                  "country": "DEU",
                  "bankUrl": null,
                  "lat": null,
                  "lon": null
                },
                "freeEmail": true
              },
              "createdAt": "2020-06-19 09:04:04"
            }
          ]
        },
        {
          "id": "5d498a490a975a0b873e6c77",
          "type": "cryptoWallet",
          "subType": "BTC",
          "createdAt": "2019-08-06 14:10:17",
          "deleted": null,
          "data": {
            "number": "NUMBER"
          },
          "imageIds": null,
          "reviewResult": {
            "reviewAnswer": "GREEN"
          },
          "checks": [
            {
              "id": "5d4acd400a975a0b8748deba",
              "answer": "GREEN",
              "checkType": "cryptoWalletRiskScore",
              "inputData": {
                "number": "NUMBER"
              },
              "cryptoWalletRiskScoreInfo": {
                "riskScore": 0.182,
                "addressSummaryData": {
                  "address": "NUMBER",
                  "balance": 643094,
                  "owner": null,
                  "received": 1610402,
                  "riskscore": {
                    "riskScoreEntitySignals": null,
                    "value": 0.182,
                    "updatedList": null
                  },
                  "status": "active",
                  "firstActivity": null,
                  "lastActivity": null,
                  "nTx": null,
                  "sharedBalance": null,
                  "sharedReceived": null
                }
              },
              "createdAt": "2019-08-07 13:08:16"
            }
          ]
        }
      ]
    }
  },
  "email": "[email protected]",
  "env": "ru-api",
  "applicantPlatform": "Android",
  "requiredIdDocs": {
    "docSets": [
      {
        "idDocSetType": "PAYMENT_METHODS",
        "types": [
          "PAYMENT_METHOD"
        ]
      }
    ]
  },
  "review": {
    "elapsedSincePendingMs": 757859,
    "elapsedSinceQueuedMs": 212277,
    "reprocessing": true,
    "createDate": "2020-06-19 08:52:50+0000",
    "reviewDate": "2020-06-19 09:05:28+0000",
    "startDate": "2020-06-19 09:01:56+0000",
    "reviewResult": {
      "reviewAnswer": "GREEN"
    },
    "reviewStatus": "completed",
    "notificationFailureCnt": 0
  },
  "lang": "en",
  "type": "individual"
}

# Standalone crypto analysis

It's better to create an applicant action or request a payment method to perform the crypto check for particular applicants. But if there is no way to bind a crypto wallet or a transaction to an applicant then you should use standalone methods.

# Entities interactions

GET /resources/standalone/crypto/btc/interaction/{from}/{to}

# REQUEST ATTRIBUTES
Name Type Required Description
from String Yes Source of interaction (sender)
to String Yes Target of interaction (receiver)
# Example request
# Example response

# Crypto transactions

GET /resources/standalone/crypto/btc/txn/{txn}/info

# REQUEST ATTRIBUTES
Name Type Required Description
txn String Yes Transaction hash
# Example request
# Example response

# BTC wallet info

GET /resources/standalone/crypto/btc/wallet/{wallet}/info

# REQUEST ATTRIBUTES
Name Type Required Description
wallet String Yes BTC wallet address
# Example request
# Example response

# BTC wallet statistics

GET /resources/standalone/crypto/btc/wallet/{wallet}/stats

# REQUEST ATTRIBUTES
Name Type Required Description
wallet String Yes BTC wallet address
# Example request
# Example response
Last Updated: 8/21/2020, 1:24:40 PM