# 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 demo.

# 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 HEADERS
Name Type Value
X-App-Token String App Token that you generate in our dashboard
X-App-Access-Sig String Signature of the request in the hex format
X-App-Access-Ts String Number of seconds since Unix Epoch in UTC
Content-Type String application/json
# REQUEST ARGUMENTS
Name Type Required Description
#{body} Hash 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
X-App-Token String App Token that you generate in our dashboard
X-App-Access-Sig String Signature of the request in the hex format
X-App-Access-Ts String Number of seconds since Unix Epoch in UTC
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 HEADERS
Name Type Value
X-App-Token String App Token that you generate in our dashboard
X-App-Access-Sig String Signature of the request in the hex format
X-App-Access-Ts String Number of seconds since Unix Epoch in UTC
Content-Type String application/json
# REQUEST ARGUMENTS
Name Type Required Description
#{body} Hash 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)
{
  "list": {
    "items": [
      {
        "id": "5be9a4710a975a0e0d822a00",
        "createdAt": "2018-11-12 16:04:01",
        "clientId": "client_id",
        "inspectionId": "5be9a4710a975a0e0d822a01",
        "externalUserId": "external_user_id",
        "info": {
          "paymentInfo": {
            "reviewResult": null,
            "paymentMethods": [
              {
                "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"
                  }
                ]
              }
            ]
          }
        }
      }
    ]
  }
}

# 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)
# REQUEST HEADERS
Name Type Value
X-App-Token String App Token that you generate in our dashboard
X-App-Access-Sig String Signature of the request in the hex format
X-App-Access-Ts String Number of seconds since Unix Epoch in UTC
# 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
# REQUEST HEADERS
Name Type Value
X-App-Token String App Token that you generate in our dashboard
X-App-Access-Sig String Signature of the request in the hex format
X-App-Access-Ts String Number of seconds since Unix Epoch in UTC
# 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
# REQUEST HEADERS
Name Type Value
X-App-Token String App Token that you generate in our dashboard
X-App-Access-Sig String Signature of the request in the hex format
X-App-Access-Ts String Number of seconds since Unix Epoch in UTC
# 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
# REQUEST HEADERS
Name Type Value
X-App-Token String App Token that you generate in our dashboard
X-App-Access-Sig String Signature of the request in the hex format
X-App-Access-Ts String Number of seconds since Unix Epoch in UTC
# Example request
# Example response
Last Updated: 4/27/2020, 7:23:17 PM