openapi: 3.2.0 info: title: Deposit US Bank ACH API description: Facilitates the transfer (on-ramp) of funds into the CFX network. termsOfService: http://cfxlabs.com/terms/ contact: name: API Owner url: api.cfxlabs.net email: api@cfxlabs.com license: name: Licence tbd url: http://tbd.html version: '@VERSION@' summary: CFX Deposit API servers: - url: https://api.dev.cfx.to description: Customer Sandbox - url: https://api.cfx.to description: Production security: - ApiKeyAuth: [] ApiSecretAuth: [] tags: - name: US Bank ACH description: US bank ACH pull deposits. paths: /v1/deposit/us-bank-ach: post: summary: Create US Bank ACH Deposit Request tags: - US Bank ACH description: 'Creates a request to mint MOVEUSD by debiting a US bank account via ACH. Source bank accounts need to be registered as Payment Instruments which are associated with an Identity or Organization. ACH Deposit Requests refer to this Payment Instrument in the `sourcePaymentInstrumentId` field. Registered deposit requests will result in an ACH pull from the nominated bank account. After the debit is processed and reconciled the funds will be minted to the wallet specified in the request.' requestBody: required: true content: application/json: schema: anyOf: - type: object required: - identityId - reference - wallet - sourcePaymentInstrumentId - amount properties: identityId: type: string description: Identity ID associated with the deposit request example: id_VfsdSMtd8UdgxCgTnz0tm reference: type: string description: "A unique identifier of the deposit request in the caller's system.\n\n This is useful to correlate the id in the caller's system with the id returned by the API." example: DR-123456789 wallet: type: object required: - address - blockchain properties: address: type: string description: Blockchain address or account blockchain: type: string description: The blockchain wallet where funds are to be deposited sourcePaymentInstrumentId: type: string description: ID for a US_ACH payment instrument example: pi_jk23h4j564rthk32 amount: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: type: string description: Amount of the nominated currency enum: - USD description: Amount associated with this deposit speed: anyOf: - type: string enum: - same-day - type: string enum: - next-day description: ACH settlement speed. Defaults to next-day if not specified. Same-day requires an eligible ledger account. example: same-day title: Individual - type: object required: - organizationId - reference - wallet - sourcePaymentInstrumentId - amount properties: organizationId: type: string description: Organization ID associated with the deposit request example: org_RD2of9vs3XFodUSd8T5hW reference: type: string description: "A unique identifier of the deposit request in the caller's system.\n\n This is useful to correlate the id in the caller's system with the id returned by the API." example: DR-123456789 wallet: type: object required: - address - blockchain properties: address: type: string description: Blockchain address or account blockchain: type: string description: The blockchain wallet where funds are to be deposited sourcePaymentInstrumentId: type: string description: ID for a US_ACH payment instrument example: pi_jk23h4j564rthk32 amount: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: type: string description: Amount of the nominated currency enum: - USD description: Amount associated with this deposit speed: anyOf: - type: string enum: - same-day - type: string enum: - next-day description: ACH settlement speed. Defaults to next-day if not specified. Same-day requires an eligible ledger account. example: same-day title: Organization parameters: - schema: type: string in: header name: Idempotency-Key required: false responses: '201': description: Default Response content: application/json: schema: type: object required: - id - createdAt - status properties: id: type: string description: Unique identifier for a deposit request, can be either the request id or the deposit id example: dprq_FiZcY1MGfgB4XjIWsKgtT createdAt: type: string description: Datetime the deposit request was created example: '2023-10-23T06:20:04.366+00:00' status: enum: - CREATED - PROCESSING - SUCCEEDED - FAILED - CANCELLED type: string '400': description: The service cannot understand the request content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - INVALID_REQUEST message: type: string errors: type: array items: type: object properties: {} additionalProperties: true title: INVALID_REQUEST description: The service cannot understand the request '401': description: The access to this resource has been denied content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - UNAUTHORIZED message: type: string title: UNAUTHORIZED description: The access to this resource has been denied '403': description: The credentials are valid but the caller is not permitted to transact content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - FORBIDDEN message: type: string title: FORBIDDEN description: The credentials are valid but the caller is not permitted to transact '404': description: The resource was not found content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - NOT_FOUND message: type: string title: NOT_FOUND description: The resource was not found '409': description: A duplicate request with this idempotency key is already in progress content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - IDEMPOTENCY_IN_PROGRESS message: type: string title: IDEMPOTENCY_IN_PROGRESS description: A duplicate request with this idempotency key is already in progress '422': description: Another request with this idempotency key was made using a different body content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - IDEMPOTENCY_KEY_REUSED message: type: string title: IDEMPOTENCY_KEY_REUSED description: Another request with this idempotency key was made using a different body default: description: Catch-all error response for any unexpected internal errors content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - INTERNAL message: type: string enum: - An unexpected internal error has occurred title: INTERNAL description: Catch-all error response for any unexpected internal errors operationId: postV1DepositUsBankAch x-operation-id-source: derived /v1/deposit/us-bank-ach/{id}: get: summary: Get US Bank ACH Deposit Request tags: - US Bank ACH description: Retrieve a previously submitted US Bank ACH deposit request. parameters: - schema: type: string example: dprq_FiZcY1MGfgB4XjIWsKgtT in: path name: id required: true description: Unique identifier for a deposit request, can be either the request id or the deposit id responses: '200': description: Default Response content: application/json: schema: anyOf: - type: object required: - identityId - id - reference - wallet - updatedAt - createdAt - status - sourcePaymentInstrumentId - amount - quote properties: identityId: type: string description: Identity ID associated with the deposit request example: id_VfsdSMtd8UdgxCgTnz0tm id: type: string description: Unique identifier for a deposit request, can be either the request id or the deposit id example: dprq_FiZcY1MGfgB4XjIWsKgtT reference: type: string description: "A unique identifier of the deposit request in the caller's system.\n\n This is useful to correlate the id in the caller's system with the id returned by the API." example: DR-123456789 wallet: type: object required: - address - blockchain properties: address: type: string description: Blockchain address or account blockchain: type: string description: The blockchain wallet where funds are to be deposited depositId: type: string description: Unique identifier of the associated Deposit deviceIpAddress: type: string description: IP address of the device creating the deposit request example: 123.123.123.123 deviceLocation: type: object required: - source - lat - long properties: source: type: string description: The source data for the location capture enum: - ip example: ip lat: type: number description: Latitude of the device example: 37.851 long: type: number description: Longitude of the device example: -96.822 description: Location of the device submitting transacting with the CFX network updatedAt: type: string description: Datetime the deposit request was last updated example: '2023-10-23T06:20:04.366+00:00' createdAt: type: string description: Datetime the deposit request was created example: '2023-10-23T06:20:04.366+00:00' status: enum: - CREATED - PROCESSING - SUCCEEDED - FAILED - CANCELLED type: string sourcePaymentInstrumentId: type: string description: ID for a US_ACH payment instrument example: pi_jk23h4j564rthk32 amount: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: type: string description: Amount of the nominated currency enum: - USD description: Amount associated with this deposit speed: anyOf: - type: string enum: - same-day - type: string enum: - next-day description: ACH settlement speed. Defaults to next-day if not specified. Same-day requires an eligible ledger account. example: same-day quote: type: object required: - amountOut - fees - amountIn properties: amountOut: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: enum: - USDC - MOVEUSD type: string description: Amount of the nominated currency description: Amount associated with this deposit fees: type: array items: type: object required: - fee - type properties: fee: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: enum: - USDC - MOVEUSD type: string description: Amount of the nominated currency description: Amount associated with this deposit type: enum: - CFX_FIXED_FEE - CFX_VARIABLE_FEE - PROVIDER_FIXED_FEE - PROVIDER_VARIABLE_FEE - CUSTOMER_FIXED_FEE - CUSTOMER_VARIABLE_FEE type: string description: Fees associated with a deposit amountIn: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: type: string description: Amount of the nominated currency enum: - USD description: Amount associated with this deposit description: Quote for the deposit title: Individual - type: object required: - organizationId - id - reference - wallet - updatedAt - createdAt - status - sourcePaymentInstrumentId - amount - quote properties: organizationId: type: string description: Organization ID associated with the deposit request example: org_RD2of9vs3XFodUSd8T5hW id: type: string description: Unique identifier for a deposit request, can be either the request id or the deposit id example: dprq_FiZcY1MGfgB4XjIWsKgtT reference: type: string description: "A unique identifier of the deposit request in the caller's system.\n\n This is useful to correlate the id in the caller's system with the id returned by the API." example: DR-123456789 wallet: type: object required: - address - blockchain properties: address: type: string description: Blockchain address or account blockchain: type: string description: The blockchain wallet where funds are to be deposited depositId: type: string description: Unique identifier of the associated Deposit deviceIpAddress: type: string description: IP address of the device creating the deposit request example: 123.123.123.123 deviceLocation: type: object required: - source - lat - long properties: source: type: string description: The source data for the location capture enum: - ip example: ip lat: type: number description: Latitude of the device example: 37.851 long: type: number description: Longitude of the device example: -96.822 description: Location of the device submitting transacting with the CFX network updatedAt: type: string description: Datetime the deposit request was last updated example: '2023-10-23T06:20:04.366+00:00' createdAt: type: string description: Datetime the deposit request was created example: '2023-10-23T06:20:04.366+00:00' status: enum: - CREATED - PROCESSING - SUCCEEDED - FAILED - CANCELLED type: string sourcePaymentInstrumentId: type: string description: ID for a US_ACH payment instrument example: pi_jk23h4j564rthk32 amount: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: type: string description: Amount of the nominated currency enum: - USD description: Amount associated with this deposit speed: anyOf: - type: string enum: - same-day - type: string enum: - next-day description: ACH settlement speed. Defaults to next-day if not specified. Same-day requires an eligible ledger account. example: same-day quote: type: object required: - amountOut - fees - amountIn properties: amountOut: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: enum: - USDC - MOVEUSD type: string description: Amount of the nominated currency description: Amount associated with this deposit fees: type: array items: type: object required: - fee - type properties: fee: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: enum: - USDC - MOVEUSD type: string description: Amount of the nominated currency description: Amount associated with this deposit type: enum: - CFX_FIXED_FEE - CFX_VARIABLE_FEE - PROVIDER_FIXED_FEE - PROVIDER_VARIABLE_FEE - CUSTOMER_FIXED_FEE - CUSTOMER_VARIABLE_FEE type: string description: Fees associated with a deposit amountIn: type: object required: - amount - currency properties: amount: type: number description: Amount of the nominated currency currency: type: string description: Amount of the nominated currency enum: - USD description: Amount associated with this deposit description: Quote for the deposit title: Organization '400': description: The service cannot understand the request content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - INVALID_REQUEST message: type: string errors: type: array items: type: object properties: {} additionalProperties: true title: INVALID_REQUEST description: The service cannot understand the request '401': description: The access to this resource has been denied content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - UNAUTHORIZED message: type: string title: UNAUTHORIZED description: The access to this resource has been denied '403': description: The credentials are valid but the caller is not permitted to transact content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - FORBIDDEN message: type: string title: FORBIDDEN description: The credentials are valid but the caller is not permitted to transact '404': description: The resource was not found content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - NOT_FOUND message: type: string title: NOT_FOUND description: The resource was not found default: description: Catch-all error response for any unexpected internal errors content: application/json: schema: type: object required: - code - message properties: code: type: string enum: - INTERNAL message: type: string enum: - An unexpected internal error has occurred title: INTERNAL description: Catch-all error response for any unexpected internal errors operationId: getV1DepositUsBankAchById x-operation-id-source: derived components: securitySchemes: ApiKeyAuth: name: x-api-key type: apiKey in: header ApiSecretAuth: name: x-api-secret type: apiKey in: header externalDocs: description: Find out more about CFX url: https://www.cfxlabs.com/