v1

latestOpenAPI 3.0.02026-08-0696238481.7 KB
Accounts

Create a new sub account

This is for registering new users onto your platform that will act as one of your 'sub' accounts

post/accounts

Request body

onboardingFlow'Hosted' | 'NonHosted' nullable

The flow that this account will use to be onboarded. Hosted accounts will be onboarded via the Ryft portal and cannot be updated via the API. NonHosted accounts will be onboarded via the API and will not have access to the Ryft portal. Once defined this value cannot be changed. Defaults to Hosted if not provided.

emailstring email nullable

The main email address for the sub account.

Required if onboardingFlow is Hosted and you are not supplying the 'entityType', otherwise you can supply this in the 'business'/'individual' block. Not required if onboardingFlow is NonHosted - any value supplied will be ignored.

entityType'Business' | 'Individual' nullable

The type of entity that this account is - either a registered business or an individual person (sole trader). Optional if onboardingFlow is Hosted, though certain actions will be restricted until this is provided (creating persons, payout methods and therefore payouts). Optional if onboardingFlow is NonHosted, any values supplied can be updated by the account via the Ryft portal.

metadataobject nullable

use this parameter to attach key-value data to the account. These will be sent with any associated account events on your webhooks. You can have a maximum of 5 pieces of metadata.

Example request

{
  "onboardingFlow": "Hosted",
  "email": "test@ryftpay.com",
  "entityType": "Business",
  "business": {
    "name": "Ryft LTD",
    "type": "Corporation",
    "registrationNumber": "12345678",
    "registrationDate": "1990-01-20",
    "registeredAddress": {
      "lineOne": "123 Test Street",
      "city": "Manchester",
      "country": "GB",
      "postalCode": "SP4 7DE"
    },
    "contactEmail": "contact@test.com",
    "phoneNumber": "+447900000000",
    "tradingName": "Ryft Computer Parts Ltd",
    "tradingAddress": {
      "lineOne": "123 Test Street",
      "city": "Manchester",
      "country": "GB",
      "postalCode": "SP4 7DE"
    },
    "tradingCountries": [
      "GB"
    ],
    "websiteUrl": "https://www.example.com"
  },
  "individual": {
    "firstName": "Fred",
    "middleNames": "David",
    "lastName": "Jones",
    "email": "fred.jones@example.com",
    "dateOfBirth": "1990-01-20",
    "countryOfBirth": "GB",
    "gender": "Male",
    "nationalities": [
      "GB"
    ],
    "address": {
      "lineOne": "123 Test Street",
      "city": "Manchester",
      "country": "GB",
      "postalCode": "SP4 7DE"
    },
    "phoneNumber": "+447900000000"
  },
  "metadata": {
    "accountId": "1"
  },
  "settings": {
    "payouts": {
      "schedule": {
        "type": "Automatic"
      }
    }
  },
  "termsOfService": {
    "acceptance": {
      "ipAddress": "127.0.0.1",
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
      "when": 1697557453
    }
  }
}

Response

The account was created successfully

idstring

The ID of the account

type'Standard' | 'Sub'

The type of account

status'ActionRequired' | 'Unverified' | 'VerificationPending' | 'Verified' nullable

The overall status of the account

frozenboolean

A flag to determine whether or not the account is frozen. We may temporarily mark an account as frozen if we detect any potential fraudulent activity. Payments can still be taken however payouts will be disabled, contact us to resolve the issue. DEPRECATED - this flag is no longer in use and will always return false, though payouts may still be disabled if we detect fraudulent activity.

emailstring email nullable

The account's email address

onboardingFlow'Hosted' | 'NonHosted'
entityType'Business' | 'Individual' nullable
metadataobject nullable

use this parameter to attach key-value data to the account. These will be sent with any associated account events on your webhooks. You can have a maximum of 5 pieces of metadata.

createdTimestampinteger

The epoch timestamp (seconds) when the account was created

Example response

{
  "id": "ac_b83f2653-06d7-44a9-a548-5825e8186004",
  "type": "Sub",
  "actionsRequired": [
    {
      "action": "PayoutDetailsRequired",
      "description": "Complete sign up at the dashboard"
    }
  ],
  "email": "test@ryftpay.com",
  "onboardingFlow": "Hosted",
  "entityType": "Business",
  "business": {
    "name": "Ryft LTD",
    "type": "Corporation",
    "registrationNumber": "12345678",
    "registrationDate": "1990-01-20",
    "registeredAddress": {
      "lineOne": "123 Test Street",
      "city": "Manchester",
      "country": "GB",
      "postalCode": "SP4 7DE"
    },
    "contactEmail": "contact@test.com",
    "phoneNumber": "+447900000000",
    "tradingName": "Ryft Computer Parts Ltd",
    "tradingAddress": {
      "lineOne": "123 Test Street",
      "city": "Manchester",
      "country": "GB",
      "postalCode": "SP4 7DE"
    },
    "tradingCountries": [
      "GB"
    ],
    "websiteUrl": "https://www.example.com",
    "documents": [
      {
        "type": "BankStatement",
        "category": "ProofOfIdentity",
        "front": "fl_01G0EYVFR02KBBVE2YWQ8AKMGJ",
        "back": "fl_01G0EYVFR02KBBVE2YWQ8AKMGJ",
        "status": "Pending",
        "invalidReason": "Document has expired",
        "country": "GB",
        "assignedTimestamp": 1470989538,
        "lastUpdatedTimestamp": 1470989538
      }
    ]
  },
  "individual": {
    "firstName": "Fred",
    "middleNames": "David",
    "lastName": "Jones",
    "email": "fred.jones@example.com",
    "dateOfBirth": "1990-01-20",
    "countryOfBirth": "GB",
    "gender": "Male",
    "nationalities": [
      "GB"
    ],
    "address": {
      "lineOne": "123 Test Street",
      "city": "Manchester",
      "country": "GB",
      "postalCode": "SP4 7DE"
    },
    "phoneNumber": "+447900000000",
    "documents": [
      {
        "type": "BankStatement",
        "category": "ProofOfIdentity",
        "front": "fl_01G0EYVFR02KBBVE2YWQ8AKMGJ",
        "back": "fl_01G0EYVFR02KBBVE2YWQ8AKMGJ",
        "status": "Pending",
        "invalidReason": "Document has expired",
        "country": "GB",
        "assignedTimestamp": 1470989538,
        "lastUpdatedTimestamp": 1470989538
      }
    ]
  },
  "verification": {
    "status": "Required",
    "requiredFields": [
      {
        "name": "business.registrationDate"
      }
    ],
    "requiredDocuments": [
      {
        "category": "ProofOfIdentity",
        "types": [
          "BankStatement"
        ],
        "quantity": 1
      }
    ],
    "errors": [
      {
        "code": "InvalidDocument",
        "id": "fl_01FCTS1XMKH9FF43CAFA4CXT3P",
        "description": "File corrupted or unclear"
      }
    ],
    "persons": {
      "status": "Required",
      "required": [
        {
          "role": "Director",
          "quantity": 1
        }
      ]
    }
  },
  "metadata": {
    "accountId": "1"
  },
  "settings": {
    "payouts": {
      "schedule": {
        "type": "Automatic"
      }
    }
  },
  "capabilities": {
    "visaPayments": {
      "status": "Enabled",
      "requested": true,
      "requiredFields": [
        {
          "name": "entityType"
        }
      ],
      "disabledReason": "Non compliant with scheme mandates",
      "requestedTimestamp": 1470989538,
      "lastUpdatedTimestamp": 1470989538
    },
    "mastercardPayments": {
      "status": "Enabled",
      "requested": true,
      "requiredFields": [
        {
          "name": "entityType"
        }
      ],
      "disabledReason": "Non compliant with scheme mandates",
      "requestedTimestamp": 1470989538,
      "lastUpdatedTimestamp": 1470989538
    },
    "amexPayments": {
      "status": "Enabled",
      "requested": true,
      "requiredFields": [
        {
          "name": "entityType"
        }
      ],
      "disabledReason": "Non compliant with scheme mandates",
      "requestedTimestamp": 1470989538,
      "lastUpdatedTimestamp": 1470989538
    },
    "inPersonPayments": {
      "status": "Enabled",
      "requested": true,
      "requiredFields": [
        {
          "name": "entityType"
        }
      ],
      "disabledReason": "Non compliant with scheme mandates",
      "requestedTimestamp": 1470989538,
      "lastUpdatedTimestamp": 1470989538
    }
  },
  "termsOfService": {
    "acceptance": {
      "ipAddress": "127.0.0.1",
      "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
      "when": 1697557453
    }
  },
  "createdTimestamp": 1470989538
}