openapi: 3.0.3 info: title: api-onboarding Account Usage Form API version: v1 servers: - url: /onboarding description: Relative URL - url: https://api.currencycloud.com/onboarding description: Production server (uses live data) - url: https://devapi.currencycloud.com/onboarding description: Dev server (uses test data) tags: - name: Form paths: /v1/forms/{form_id}/submit: post: summary: Submit Form description: Submits the application form. tags: - Form x-api-group: Onboard security: - AuthToken: [] parameters: - name: form_id description: Form UUID in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/form' '422': description: Form already submitted content: application/json: schema: $ref: '#/components/schemas/validation_error_response' /v1/forms: get: summary: Get Forms description: Retrieves all application forms for the house account. tags: - Form x-api-group: Onboard security: - AuthToken: [] parameters: - name: order in: query schema: type: string - name: order_asc_desc in: query schema: type: string - name: application_status in: query description: Filter by application_status. schema: type: string enum: - new - submitted - name: entity_type description: Type of applicant - individual or corporate. in: query schema: type: string enum: - individual - corporate - name: page description: Page number in: query schema: type: integer - name: per_page description: Number of results per page. in: query schema: type: integer responses: '200': description: Retrieves all forms for a house_account_id content: application/json: schema: type: object properties: forms: type: array items: $ref: '#/components/schemas/form_with_associations' pagination: type: object properties: total_entries: type: integer minimum: 0 total_pages: type: integer minimum: 0 current_page: type: integer minimum: 1 per_page: type: integer minimum: 1 previous_page: type: integer minimum: 1 nullable: true next_page: type: integer minimum: 1 nullable: true order: type: string order_asc_desc: type: string required: - total_entries - total_pages - current_page - per_page - previous_page - next_page - order - order_asc_desc '400': description: Returns error if request validation errors occur content: application/json: schema: $ref: '#/components/schemas/validation_error_response' post: summary: Create Form description: Creates a new application form. Returns the new form entity on success. tags: - Form x-api-group: Onboard security: - AuthToken: [] parameters: [] responses: '400': description: Invalid parameter in request params content: application/json: schema: $ref: '#/components/schemas/validation_error_response' '201': description: Creates a form when correct params are provided content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/form' requestBody: content: application/json: schema: $ref: '#/components/schemas/create_form_request' /v1/forms/{form_id}: get: summary: Get Form description: Retrieves the application form with the given ID. tags: - Form x-api-group: Onboard security: - AuthToken: [] parameters: - name: form_id description: Form UUID in: path required: true schema: type: string responses: '200': description: Retrieves form if the UUID exists content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/form_with_associations' '404': description: Record not found - Invalid UUID content: application/json: schema: $ref: '#/components/schemas/not_found_response' put: summary: Update Form description: Updates an application form. tags: - Form x-api-group: Onboard security: - AuthToken: [] parameters: - name: form_id description: Form UUID in: path required: true schema: type: string responses: '400': description: Invalid parameter in request params content: application/json: schema: $ref: '#/components/schemas/validation_error_response' '200': description: Updates form when correct params are provided content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/form' '422': description: Form is already submitted content: application/json: schema: $ref: '#/components/schemas/validation_error_response' '404': description: Form not found content: application/json: schema: $ref: '#/components/schemas/not_found_response' requestBody: content: application/json: schema: type: object properties: affiliate_code: description: Client's own use, e.g. to track lead source. type: string nullable: true country: description: Home country for individual applicants or country of registered address for corporate applicants. Two or three character ISO country code. type: string enum: - AD - AN - AE - AF - AG - AI - AL - AM - AO - AQ - AR - AS - AT - AU - AW - AX - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BQ - BR - BS - BT - BV - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CR - CV - CW - CX - CY - CZ - DE - DJ - DK - DM - DO - DZ - EC - EE - EG - EH - ER - ES - ET - FI - FJ - FK - FM - FO - FR - GA - GB - GD - GE - GF - GG - GH - GI - GL - GM - GN - GP - GQ - GR - GS - GT - GU - GW - GY - HK - HM - HN - HR - HT - HU - ID - IE - IL - IM - IN - IO - IQ - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MQ - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NF - NG - NI - NL - 'NO' - NP - NR - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SE - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - ST - SV - SX - SZ - TC - TD - TF - TG - TH - TJ - TK - TL - TM - TN - TO - TR - TT - TV - TW - TZ - UA - UG - UM - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - XK - YE - YT - ZA - ZM - ZW - AND - ANT - ARE - AFG - ATG - AIA - ALB - ARM - AGO - ATA - ARG - ASM - AUT - AUS - ABW - ALA - AZE - BIH - BRB - BGD - BEL - BFA - BGR - BHR - BDI - BEN - BLM - BMU - BRN - BOL - BES - BRA - BHS - BTN - BVT - BWA - BLR - BLZ - CAN - CCK - COD - CAF - COG - CHE - CIV - COK - CHL - CMR - CHN - COL - CRI - CPV - CUW - CXR - CYP - CZE - DEU - DJI - DNK - DMA - DOM - DZA - ECU - EST - EGY - ESH - ERI - ESP - ETH - FIN - FJI - FLK - FSM - FRO - FRA - GAB - GBR - GRD - GEO - GUF - GGY - GHA - GIB - GRL - GMB - GIN - GLP - GNQ - GRC - SGS - GTM - GUM - GNB - GUY - HKG - HMD - HND - HRV - HTI - HUN - IDN - IRL - ISR - IMN - IND - IOT - IRQ - ISL - ITA - JEY - JAM - JOR - JPN - KEN - KGZ - KHM - KIR - COM - KNA - KOR - KWT - CYM - KAZ - LAO - LBN - LCA - LIE - LKA - LBR - LSO - LTU - LUX - LVA - MAR - MCO - MDA - MNE - MAF - MDG - MHL - MKD - MLI - MMR - MNG - MAC - MNP - MTQ - MRT - MSR - MLT - MUS - MDV - MWI - MEX - MYS - MOZ - NAM - NCL - NER - NFK - NGA - NIC - NLD - NOR - NPL - NRU - NIU - NZL - OMN - PAN - PER - PYF - PNG - PHL - PAK - POL - SPM - PCN - PRI - PSE - PRT - PLW - PRY - QAT - REU - ROU - SRB - RUS - RWA - SAU - SLB - SYC - SWE - SGP - SHN - SVN - SJM - SVK - SLE - SMR - SEN - SOM - SUR - STP - SLV - SXM - SWZ - TCA - TCD - ATF - TGO - THA - TJK - TKL - TLS - TKM - TUN - TON - TUR - TTO - TUV - TWN - TZA - UKR - UGA - UMI - USA - URY - UZB - VAT - VCT - VEN - VGB - VIR - VNM - VUT - WLF - WSM - UNK - YEM - MYT - ZAF - ZMB - ZWE email: description: The applicant's email address. type: string entity_type: description: Type of applicant - individual or corporate. type: string enum: - individual - corporate referred_by: description: How did the applicant hear about us. type: string nullable: true phone_number: description: The applicant's phone number. type: string nullable: true contact_name: description: The applicant's name. type: string nullable: true delete: summary: Delete Form description: Deletes the application form with the given ID. tags: - Form x-api-group: Onboard security: - AuthToken: [] parameters: - name: form_id description: Form UUID in: path required: true schema: type: string responses: '200': description: Deletes form content: application/json: schema: type: object properties: data: type: object properties: message: type: string form_id: type: string description: Form UUID required: - message - form_id '422': description: Form is already submitted content: application/json: schema: $ref: '#/components/schemas/validation_error_response' '404': description: Form not found content: application/json: schema: $ref: '#/components/schemas/not_found_response' components: schemas: form_with_associations: type: object properties: id: type: string description: The form's UUID. detached_document_ids: type: array description: List of IDs for any uploaded supporting documents. items: type: string affiliate_code: type: string description: Client's own use, e.g. to track lead source. nullable: true agreed_to_marketing_emails: type: boolean description: Agreed to marketing emails. agreed_to_terms_and_conditions: type: boolean description: Agreed to terms and conditions. agreed_to_corporate_authority: type: boolean description: Confirmed authority to act on behalf of company. country: description: Home country for individual applicants or country of registered address for corporate applicants. Two or three character ISO country code. type: string email: description: The applicant's email address. type: string entity_type: type: string description: Type of applicant - individual or corporate. brand_name: type: string brand_key: type: string referred_by: description: How did the applicant hear about us. type: string nullable: true products_required: type: array items: type: string state: type: string phone_number: description: The applicant's phone number. type: string contact_name: description: The applicant's name. type: string created_at: type: string format: date-time description: Date and time the form was created. updated_at: type: string format: date-time description: Date and time the form was last updated. business_information: description: Further information about corporate applicants. $ref: '#/components/schemas/business_information' account_usage: description: Information about the intended use of the account. $ref: '#/components/schemas/account_usage' people: description: Information about people associated with the application. type: array items: $ref: '#/components/schemas/person' required: - id - agreed_to_marketing_emails - agreed_to_terms_and_conditions - country - entity_type - brand_name - products_required - created_at - updated_at form: type: object properties: id: type: string description: The form's UUID. detached_document_ids: description: List of IDs for any uploaded supporting documents. type: array items: type: string affiliate_code: description: Client's own use, e.g. to track lead source. type: string nullable: true agreed_to_marketing_emails: description: Agreed to marketing emails. type: boolean agreed_to_terms_and_conditions: description: Agreed to terms and conditions. type: boolean agreed_to_corporate_authority: description: Confirmed authority to act on behalf of company. type: boolean country: description: Home country for individual applicant or country of registered address for corporate applicant. type: string email: description: The applicant's email address. type: string entity_type: description: Type of applicant - individual or corporate. type: string brand_name: type: string brand_key: type: string referred_by: description: How did the applicant hear about us. type: string nullable: true products_required: type: array items: type: string state: type: string phone_number: description: The applicant's phone number. type: string contact_name: type: string description: The applicant's name. created_at: type: string format: date-time description: Date and time the form was created. updated_at: type: string format: date-time description: Date and time the form was last updated. required: - id - agreed_to_marketing_emails - agreed_to_terms_and_conditions - brand_name - country - entity_type - products_required - created_at - updated_at validation_error_response: type: object properties: status: type: string error_code: type: string reason: type: string error_messages: type: object required: - status - error_code - reason - error_messages person: type: object properties: id: type: string form_id: type: string document_ids: type: array description: List of IDs for any uploaded supporting documents. items: type: string roles: type: array items: type: string first_name: type: string middle_name: type: string nullable: true last_name: type: string dob: type: string format: date nullable: true phone_number: type: string nullable: true email: type: string nullable: true ownership_percentage: type: number minimum: 0 maximum: 100 id_number: type: string nullable: true home_country: type: string passport_number: type: string nullable: true passport_country_of_issue: type: string nullable: true personal_address: type: object properties: city: type: string street: type: string country: type: string postal_code: type: string apartment_number: type: string nullable: true building_name: type: string nullable: true building_number: type: string nullable: true state_or_province: type: string nullable: true created_at: type: string format: date-time updated_at: type: string format: date-time required: - id - roles - first_name - last_name - home_country not_found_response: type: object properties: status: type: string error_code: type: string reason: type: string error_messages: type: object nullable: true required: - status - error_code - reason - error_messages create_form_request: type: object properties: affiliate_code: type: string description: Client's own use, e.g. to track lead source. nullable: true agreed_to_marketing_emails: type: boolean description: Agreed to marketing emails. agreed_to_terms_and_conditions: type: boolean description: Agreed to terms and conditions. agreed_to_corporate_authority: type: boolean description: Confirmed authority to act on behalf of company. country: description: Home country for individual applicant or country of registered address for corporate applicant. type: string enum: - AD - AN - AE - AF - AG - AI - AL - AM - AO - AQ - AR - AS - AT - AU - AW - AX - AZ - BA - BB - BD - BE - BF - BG - BH - BI - BJ - BL - BM - BN - BO - BQ - BR - BS - BT - BV - BW - BY - BZ - CA - CC - CD - CF - CG - CH - CI - CK - CL - CM - CN - CO - CR - CV - CW - CX - CY - CZ - DE - DJ - DK - DM - DO - DZ - EC - EE - EG - EH - ER - ES - ET - FI - FJ - FK - FM - FO - FR - GA - GB - GD - GE - GF - GG - GH - GI - GL - GM - GN - GP - GQ - GR - GS - GT - GU - GW - GY - HK - HM - HN - HR - HT - HU - ID - IE - IL - IM - IN - IO - IQ - IS - IT - JE - JM - JO - JP - KE - KG - KH - KI - KM - KN - KR - KW - KY - KZ - LA - LB - LC - LI - LK - LR - LS - LT - LU - LV - MA - MC - MD - ME - MF - MG - MH - MK - ML - MM - MN - MO - MP - MQ - MR - MS - MT - MU - MV - MW - MX - MY - MZ - NA - NC - NE - NF - NG - NI - NL - 'NO' - NP - NR - NU - NZ - OM - PA - PE - PF - PG - PH - PK - PL - PM - PN - PR - PS - PT - PW - PY - QA - RE - RO - RS - RU - RW - SA - SB - SC - SE - SG - SH - SI - SJ - SK - SL - SM - SN - SO - SR - ST - SV - SX - SZ - TC - TD - TF - TG - TH - TJ - TK - TL - TM - TN - TO - TR - TT - TV - TW - TZ - UA - UG - UM - US - UY - UZ - VA - VC - VE - VG - VI - VN - VU - WF - WS - XK - YE - YT - ZA - ZM - ZW - AND - ANT - ARE - AFG - ATG - AIA - ALB - ARM - AGO - ATA - ARG - ASM - AUT - AUS - ABW - ALA - AZE - BIH - BRB - BGD - BEL - BFA - BGR - BHR - BDI - BEN - BLM - BMU - BRN - BOL - BES - BRA - BHS - BTN - BVT - BWA - BLR - BLZ - CAN - CCK - COD - CAF - COG - CHE - CIV - COK - CHL - CMR - CHN - COL - CRI - CPV - CUW - CXR - CYP - CZE - DEU - DJI - DNK - DMA - DOM - DZA - ECU - EST - EGY - ESH - ERI - ESP - ETH - FIN - FJI - FLK - FSM - FRO - FRA - GAB - GBR - GRD - GEO - GUF - GGY - GHA - GIB - GRL - GMB - GIN - GLP - GNQ - GRC - SGS - GTM - GUM - GNB - GUY - HKG - HMD - HND - HRV - HTI - HUN - IDN - IRL - ISR - IMN - IND - IOT - IRQ - ISL - ITA - JEY - JAM - JOR - JPN - KEN - KGZ - KHM - KIR - COM - KNA - KOR - KWT - CYM - KAZ - LAO - LBN - LCA - LIE - LKA - LBR - LSO - LTU - LUX - LVA - MAR - MCO - MDA - MNE - MAF - MDG - MHL - MKD - MLI - MMR - MNG - MAC - MNP - MTQ - MRT - MSR - MLT - MUS - MDV - MWI - MEX - MYS - MOZ - NAM - NCL - NER - NFK - NGA - NIC - NLD - NOR - NPL - NRU - NIU - NZL - OMN - PAN - PER - PYF - PNG - PHL - PAK - POL - SPM - PCN - PRI - PSE - PRT - PLW - PRY - QAT - REU - ROU - SRB - RUS - RWA - SAU - SLB - SYC - SWE - SGP - SHN - SVN - SJM - SVK - SLE - SMR - SEN - SOM - SUR - STP - SLV - SXM - SWZ - TCA - TCD - ATF - TGO - THA - TJK - TKL - TLS - TKM - TUN - TON - TUR - TTO - TUV - TWN - TZA - UKR - UGA - UMI - USA - URY - UZB - VAT - VCT - VEN - VGB - VIR - VNM - VUT - WLF - WSM - UNK - YEM - MYT - ZAF - ZMB - ZWE email: description: The applicant's email address. type: string entity_type: description: Type of applicant - individual or corporate. type: string enum: - individual - corporate brand_name: type: string brand_key: type: string referred_by: description: How did the applicant hear about us. type: string nullable: true phone_number: description: The applicant's phone number. type: string nullable: true contact_name: description: The applicant's name. type: string nullable: true required: - agreed_to_marketing_emails - agreed_to_terms_and_conditions - country - email - entity_type - brand_name business_information: type: object properties: id: type: string description: Unique ID for the Business Information entity. form_id: type: string description: Form UUID document_ids: type: array description: List of IDs for any uploaded supporting documents. items: type: string business_country: description: The country the business is registered in. type: string company_name: description: The company name. type: string trading_name: description: The company's trading name. type: string nullable: true legal_entity_type: description: Company's legal entity type e.g. "limited_liability_company" type: string sector: description: The primary sector the company operates in. type: string company_registration_number: description: An official number that identifies the company. type: string nullable: true vat_number: description: The company's VAT number or Tax ID number. type: string nullable: true incorporation_date: description: The date the company was incorporated. type: string format: date business_website: description: The company's website URL or other online presence. type: string nullable: true business_activity_description: description: Description of the company's activities. type: string registered_address: description: The company's registered address. type: object properties: city: type: string street: type: string country: type: string postal_code: type: string apartment_number: type: string nullable: true building_name: type: string nullable: true building_number: type: string nullable: true state_or_province: type: string nullable: true required: - city - street - country - postal_code trading_address: type: object properties: city: type: string street: type: string country: type: string postal_code: type: string apartment_number: type: string nullable: true building_name: type: string nullable: true building_number: type: string nullable: true state_or_province: type: string nullable: true required: - city - street - country - postal_code created_at: type: string format: date-time description: Date the Business Information record was created. updated_at: type: string format: date-time description: Date the Business Information record was last updated. required: - business_country - company_name - legal_entity_type - sector - incorporation_date - business_activity_description - registered_address nullable: true account_usage: type: object properties: id: type: string description: UUID for the Account Usage entity. form_id: type: string description: Form UUID document_ids: type: array description: List of IDs for any uploaded supporting documents. items: type: string collections_account: description: Does the account receive funds from third parties. type: boolean collection_currencies: description: List of currencies to fund the account with. type: array items: type: string nullable: true payment_currencies: type: array description: List of payout currencies. items: type: string nullable: true transaction_countries: type: array description: List of countries that corporate accounts want to send/receive money to/from. items: type: string nullable: true one_off_transaction: type: boolean description: Will it be a single one-off transaction. estimated_monthly_transaction_currency: description: Currency of the estimated monthly transaction value. type: string nullable: true estimated_monthly_transaction_value: description: Estimated monthly value of what a corporate account is going to transact on the platform. type: integer nullable: true estimated_monthly_transaction_volume: description: How often do corporates expect to send or receive funds. type: integer nullable: true source_of_funds: description: The source of money that will be sent through the platform. type: string nullable: true primary_purpose: description: The reason for opening an account with Currencycloud. type: string nullable: true purpose_details: description: Additional details if primary_purpose is 'other'. type: string nullable: true created_at: description: Date the Account Usage record created. type: string format: date-time updated_at: description: Date the Account Usage record was last updated. type: string format: date-time required: - collections_account - one_off_transaction nullable: true securitySchemes: AuthToken: type: apiKey in: header name: X-Auth-Token