openapi: 3.0.3 info: title: dLocal For Platforms API version: '2.0' description: | The dLocal for Platforms (marketplace) API onboards and manages sub-merchant accounts, performs KYC, manages bank accounts, settles transfers between accounts, and reports balances. Used by marketplaces and platforms that hold funds on behalf of sub-users. servers: - url: https://marketplace-api.dlocal.com description: Production - url: https://marketplace-api.dlocal-sbox.com description: Sandbox tags: - name: Accounts description: Create and manage sub-merchant accounts. - name: KYC description: Submit KYC data and documents for accounts. - name: BankAccounts description: Manage bank accounts attached to sub-merchant accounts. - name: Transfers description: Settle and transfer between accounts. paths: /v2/accounts: post: tags: [Accounts] operationId: createAccount summary: Create An Account description: Onboard a new sub-merchant account (company or individual). requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AccountRequest' responses: '201': description: Account created content: application/json: schema: $ref: '#/components/schemas/Account' /v2/accounts/{account_id}: get: tags: [Accounts] operationId: getAccount summary: Get An Account parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Account returned content: application/json: schema: $ref: '#/components/schemas/Account' /v2/accounts/{account_id}/update: patch: tags: [Accounts] operationId: updateAccount summary: Update An Account parameters: - $ref: '#/components/parameters/AccountId' requestBody: content: application/json: schema: { type: object } responses: '200': description: Account updated /v2/accounts/{account_id}/block: post: tags: [Accounts] operationId: blockAccount summary: Block An Account parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Account blocked /v2/accounts/{account_id}/unblock: post: tags: [Accounts] operationId: unblockAccount summary: Unblock An Account parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Account unblocked /v2/accounts/{account_id}/cancel: post: tags: [Accounts] operationId: cancelAccount summary: Cancel An Account parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Account cancelled /v2/accounts/{account_id}/balance: get: tags: [Accounts] operationId: getAccountBalance summary: Get Account Balance parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Balance returned /v2/accounts/{account_id}/credentials: get: tags: [Accounts] operationId: getAccountCredentials summary: Get Account Credentials parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: Credentials returned /v2/accounts/{account_id}/kyc: get: tags: [KYC] operationId: getAccountKyc summary: Get Account KYC parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: KYC state returned /v2/accounts/{account_id}/bank-accounts: post: tags: [BankAccounts] operationId: addBankAccount summary: Add Bank Account parameters: - $ref: '#/components/parameters/AccountId' requestBody: required: true content: application/json: schema: { type: object } responses: '201': description: Bank account added get: tags: [BankAccounts] operationId: getBankAccountList summary: Get Bank Account List parameters: - $ref: '#/components/parameters/AccountId' responses: '200': description: List returned /v2/accounts/{account_id}/bank-accounts/{bank_account_id}: get: tags: [BankAccounts] operationId: getBankAccount summary: Get A Bank Account parameters: - $ref: '#/components/parameters/AccountId' - name: bank_account_id in: path required: true schema: { type: string } responses: '200': description: Bank account returned delete: tags: [BankAccounts] operationId: disableBankAccount summary: Disable A Bank Account parameters: - $ref: '#/components/parameters/AccountId' - name: bank_account_id in: path required: true schema: { type: string } responses: '204': description: Bank account disabled /v2/transfers: post: tags: [Transfers] operationId: createTransfer summary: Create A Transfer requestBody: required: true content: application/json: schema: type: object required: [from_account, to_account, amount, currency] properties: from_account: { type: string } to_account: { type: string } amount: { type: number } currency: { type: string } description: { type: string } responses: '201': description: Transfer created /v2/transfers/{transfer_id}: get: tags: [Transfers] operationId: getTransfer summary: Get A Transfer parameters: - name: transfer_id in: path required: true schema: { type: string } responses: '200': description: Transfer returned /v2/transfers/{transfer_id}/cancel: post: tags: [Transfers] operationId: cancelTransfer summary: Cancel A Transfer parameters: - name: transfer_id in: path required: true schema: { type: string } responses: '200': description: Transfer cancelled components: parameters: AccountId: name: account_id in: path required: true schema: { type: string } schemas: AccountRequest: type: object required: [platform_type, tax_category, account_name, account_email, account_country] properties: platform_type: { type: string } tax_category: type: string enum: [company, individual] account_name: { type: string } account_email: { type: string, format: email } account_country: { type: string } notification_url: { type: string, format: uri } consents: type: array items: { type: object } company_information: { type: object } settings: { type: object } Account: type: object properties: account_id: { type: string } status: { type: string } status_code: { type: string } creation_date: { type: string, format: date-time } consents: type: array items: { type: object } ubo_id: { type: string } securitySchemes: bearerAuth: type: http scheme: bearer security: - bearerAuth: []