Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/mangopay:mangopay-directdebitpayins-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Reference Direct Debit Payins API
version: 1.0.0
servers:
- url: https://api.sandbox.mangopay.com
description: Sandbox
- url: https://api.mangopay.com
description: Production
- url: https://api-mtls.sandbox.mangopay.com
description: mTLS Sandbox
- url: https://api-mtls.mangopay.com
description: mTLS Production
- url: '%7BCardRegistrationUrl%7D'
description: "The full dynamic URL returned by the Create a Card Registration call, including host, path, and query parameters. \n"
- url: '%7BSettlementFileUploadUrl%7D'
description: 'The unique URL returned by the [POST Create a Settlement and secure URL](/api-reference/settlements/create-settlement) endpoint.
**Note:** Use the full dynamic URL including the host, path, and all query parameters. The URL is already authenticated, so this call does not require an Authorization header.
'
tags:
- name: directDebitPayins
paths:
/v2.01/{ClientId}/payins/directdebit/direct:
post:
operationId: directDebitPayins_create_direct_debit_payin
summary: Create a Direct Debit PayIn
tags:
- directDebitPayins
parameters:
- name: ClientId
in: path
description: Platform's API account identifier, associated with the API key.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/DirectDebitPayInResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateADirectDebitPayInRequest'
security:
- oauth2: []
components:
schemas:
DirectDebitPayInResponseCreditedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`).
title: DirectDebitPayInResponseCreditedFunds
Amount:
type: integer
description: The amount of the currency in its minor unit. For example, EUR 12.60 would be represented as `1260` whereas JPY 12 would be represented as just `12`.
title: Amount
DirectDebitPayInResponseFees:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: Information about the fees.
title: DirectDebitPayInResponseFees
FlowDescriptorRequestBeneficiariesItems:
type: object
properties:
UserId:
type: string
description: The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in.
title: FlowDescriptorRequestBeneficiariesItems
StatementDescriptor_DD:
type: string
description: "Max. length: SEPA: 100 characters, BACS: truncated after 10 characters; only alphanumeric and spaces\n\nCustom description to appear on the user's bank statement along with the platform name. \n\nDifferent banks may show more or less information. See the <a href=\"/bank-statements\">Customizing bank statement references</a> article for details. \n\n**Note:** On BACS Direct Debit pay-ins, the length is truncated at 10 alphanumeric characters or spaces, but the technical limit is 100."
title: StatementDescriptor_DD
FlowDescriptorResponseBeneficiariesItems:
type: object
properties:
UserId:
type: string
description: The unique identifier of the Natural User or Legal User declared as a beneficiary of the pay-in.
title: FlowDescriptorResponseBeneficiariesItems
TransactionExecutionDate:
type: integer
description: Unix timestamp (UTC) of the date and time the status changed to `SUCCEEDED`, indicating that the transaction occurred. The statuses `CREATED` and `FAILED` return an `ExecutionDate` of `null`.
title: TransactionExecutionDate
AuthorId:
type: string
description: The unique identifier of the user at the source of the transaction.
title: AuthorId
ProfilingAttemptReference:
type: string
description: 'The unique reference generated for the profiling session, used by the <a href="/guides/fraud-prevention">fraud prevention</a> solution to produce recommendations for the transaction using the profiling data.
**Note:** Parameter not returned by the API. Profiling feature available on request – contact Mangopay <a href="https://hub.mangopay.com/" target="_blank">via the Dashboard</a> for more information.'
title: ProfilingAttemptReference
FlowDescriptorRequest:
type: object
properties:
Beneficiaries:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/FlowDescriptorRequestBeneficiariesItems'
description: 'Max. length: 5 items
The list of up to 5 Natural or Legal Users declared as beneficiaries of the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made. The pay-in also fails if the `Beneficiaries` array contains nulled objects or invalid `UserId` values.'
description: "Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)).\n\nIf the `FlowDescriptor.Beneficiaries` is sent in the API request, then:\n- The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks.\n- **ALL** `UserId` values in the array must be one of:\n - `OWNER` whose `KYCLevel` is `REGULAR`\n - `PLATFORM`\n \nThe pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is:\n- `PAYER`\n- `OWNER` whose `KYCLevel` is `LIGHT`\n\nIf the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`. \n"
title: FlowDescriptorRequest
CreateADirectDebitPayInRequest:
type: object
properties:
AuthorId:
$ref: '#/components/schemas/AuthorId'
CreditedUserId:
$ref: '#/components/schemas/CreditedUserId'
CreditedWalletId:
type: string
description: The unique identifier of the credited wallet.
FlowDescriptor:
$ref: '#/components/schemas/FlowDescriptorRequest'
DebitedFunds:
$ref: '#/components/schemas/CreateADirectDebitPayInRequestDebitedFunds'
description: Information about the debited funds.
Fees:
$ref: '#/components/schemas/CreateADirectDebitPayInRequestFees'
description: Information about the fees.
Tag:
$ref: '#/components/schemas/Tag'
MandateId:
type: string
description: The unique identifier of the mandate.
StatementDescriptor:
$ref: '#/components/schemas/StatementDescriptor_DD'
ProfilingAttemptReference:
$ref: '#/components/schemas/ProfilingAttemptReference'
required:
- AuthorId
- CreditedWalletId
- DebitedFunds
- Fees
- MandateId
title: CreateADirectDebitPayInRequest
TransactionStatus:
type: string
description: '**Returned values:** `CREATED`, `SUCCEEDED`, `FAILED`
The status of the transaction.'
title: TransactionStatus
CreditedUserId:
type: string
description: '**Default value:** The unique identifier of the owner of the credited wallet.
The unique identifier of the user whose wallet is credited.'
title: CreditedUserId
ResultMessage:
type: string
description: The explanation of the result code.
title: ResultMessage
FlowDescriptorResponse:
type: object
properties:
FlowId:
type: string
description: Unique identifier of the payment flow, used by Mangopay for internal purposes.
Beneficiaries:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/FlowDescriptorResponseBeneficiariesItems'
description: 'Max. length: 5 items
The list of up to 5 Natural or Legal Users declared as beneficiaries of the pay-in, who must all be KYC/KYB verified when the pay-in request is made. The pay-in also fails if the `Beneficiaries` array contains nulled objects or invalid `UserId` values.'
description: "Information about the Owner beneficiaries targeted by the pay-in and its subsequent transfers, who must all be KYC/KYB verified when the pay-in request is made ([read more](/guides/payin-beneficiaries)).\n\nIf the `FlowDescriptor.Beneficiaries` is sent in the API request, then:\n- The transaction's `CreditedWalletId` holder is disregarded in KYC/KYB checks.\n- **ALL** `UserId` values in the array must be one of:\n - `OWNER` whose `KYCLevel` is `REGULAR`\n - `PLATFORM`\n \nThe pay-in `Status` becomes `FAILED` with `ResultCode` [002951](/errors/codes/002951) if at least one `FlowDescriptor.Beneficiaries.UserId` is:\n- `PAYER`\n- `OWNER` whose `KYCLevel` is `LIGHT`\n\nIf the `FlowDescriptor.Beneficiaries` is not sent in the API request, then the `CreditedWalletId` holder is subject to KYC/KYB checks. This property is optional for backwards compatibility but is recommended for all pay-in flows, even when the `CreditedWalletId` holder is a `PAYER` or the same value as one of the `FlowDescriptor.Beneficiaries`.\n"
title: FlowDescriptorResponse
Currency:
type: string
description: '**Allowed values:** The three-letter <a href="/api-reference/overview/data-formats" target="_blank">ISO 4217 code</a> (EUR, GBP, etc.) of a <a href="/guides/currencies" target="_blank">supported currency</a> (depends on feature, contract, and activation settings).
The currency of the amount.'
title: Currency
DirectDebitPayInResponse:
type: object
properties:
Id:
$ref: '#/components/schemas/Id'
CreationDate:
$ref: '#/components/schemas/CreationDate'
AuthorId:
$ref: '#/components/schemas/AuthorId'
CreditedUserId:
$ref: '#/components/schemas/CreditedUserId'
FlowDescriptor:
$ref: '#/components/schemas/FlowDescriptorResponse'
Status:
$ref: '#/components/schemas/TransactionStatus'
ExecutionDate:
$ref: '#/components/schemas/TransactionExecutionDate'
ChargeDate:
type: integer
description: The date used to notify the user of the future charge, set at midnight (00:00) on the given day. The user's account is usually debited the following day, but it depends on their bank. For more information on direct debit processing times, see the <a href="/guides/payment-methods/banking/direct-debit">direct debit</a> guide.
Type:
$ref: '#/components/schemas/TransactionType'
Nature:
$ref: '#/components/schemas/TransactionNature'
CreditedWalletId:
type: string
description: The unique identifier of the credited wallet.
DebitedWalletId:
type: string
description: 'The unique identifier of the debited wallet.
In the case of a pay-in, this value is always `null` since there is no debited wallet.'
CreditedFunds:
$ref: '#/components/schemas/DirectDebitPayInResponseCreditedFunds'
description: Information about the credited funds (`CreditedFunds` = `DebitedFunds` - `Fees`).
DebitedFunds:
$ref: '#/components/schemas/DirectDebitPayInResponseDebitedFunds'
description: Information about the debited funds.
Fees:
$ref: '#/components/schemas/DirectDebitPayInResponseFees'
description: Information about the fees.
ResultCode:
$ref: '#/components/schemas/ResultCode'
ResultMessage:
$ref: '#/components/schemas/ResultMessage'
PaymentType:
type: string
description: '**Returned values:** `DIRECT_DEBIT`
The payment type of the pay-in.'
ExecutionType:
type: string
description: '**Returned values:** `DIRECT`
The execution type of the pay-in.'
Tag:
$ref: '#/components/schemas/Tag'
MandateId:
type: string
description: The unique identifier of the mandate.
StatementDescriptor:
$ref: '#/components/schemas/StatementDescriptor_DD'
description: 'A direct debit pay-in:
- `PaymentType` – `DIRECT_DEBIT`
- `ExecutionType` – `DIRECT`
The scheme, SDD or Bacs, is determined by the mandate.'
title: DirectDebitPayInResponse
TransactionNature:
type: string
description: '**Returned values:** `REGULAR`, `REPUDIATION`, `REFUND`, `SETTLEMENT`
The nature of the transaction, providing more information about the context in which the transaction occurred:
- `REGULAR` – Relative to most of the transactions (pay-ins, payouts, and transfers) in a usual workflow.
- `REPUDIATION` – Automatic withdrawal of funds from the platform''s repudiation wallet as part of the dispute process (when the user has requested a chargeback).
- `REFUND` – Reimbursement of a transaction to the user (pay-in refund), to a wallet (transfer refund), or of a payout (payout refund, only initiated by Mangopay).
- `SETTLEMENT` – Transfer made to the repudiation wallet by the platform to settle a lost dispute.'
title: TransactionNature
Tag:
type: string
description: 'Max. length: 255 characters
Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`.'
title: Tag
CreationDate:
type: integer
description: Unix timestamp (UTC) of the date and time the object was created.
title: CreationDate
Error:
type: object
properties:
Message:
type: string
description: Description of the error.
Type:
type: string
description: 'The category of the error.
'
Id:
type: string
description: Unique identifier of the error instance, useful when contacting Mangopay for support.
Date:
type: number
format: double
description: Unix timestamp (UTC) of the date and time the error was triggered.
errors:
type:
- object
- 'null'
additionalProperties:
type: string
description: 'Object containing one or more field-level errors.
'
description: 'The error body typically returned by the Mangopay API for any non-2xx HTTP status code.
'
title: Error
CreateADirectDebitPayInRequestDebitedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
required:
- Currency
- Amount
description: Information about the debited funds.
title: CreateADirectDebitPayInRequestDebitedFunds
CreateADirectDebitPayInRequestFees:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
required:
- Currency
- Amount
description: Information about the fees.
title: CreateADirectDebitPayInRequestFees
DirectDebitPayInResponseDebitedFunds:
type: object
properties:
Currency:
$ref: '#/components/schemas/Currency'
Amount:
$ref: '#/components/schemas/Amount'
description: Information about the debited funds.
title: DirectDebitPayInResponseDebitedFunds
Id:
type: string
description: 'Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details)
The unique identifier of the object.'
title: Id
ResultCode:
type: string
description: The code indicating the result of the operation. This information is mostly used to <a href="/errors/codes">handle errors</a> or for filtering purposes.
title: ResultCode
TransactionType:
type: string
description: '**Returned values:** `PAYIN`, `TRANSFER`, `CONVERSION`, `PAYOUT`
The type of the transaction.'
title: TransactionType
securitySchemes:
oauth2:
type: http
scheme: bearer
description: "Bearer authentication of the form `Bearer <token>`, where token is your auth token. \n\nIf your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL."
x-provenance:
method: harvested
publisher: Mangopay
source: https://docs.mangopay.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)