Direct debit
How direct debit works as a payment method in Solvimon, what Solvimon stores about a bank account, and where mandates live.
Why this matters
Direct debit is the default collection method for recurring B2B and B2C billing in much of Europe: it costs less than cards, it does not expire, and it fails less often. It also carries a legal requirement that cards do not, the mandate, which is the customer’s authorisation for you to pull funds from their account. Knowing which system owns the mandate determines who is responsible when a debit is disputed.
How it works
A direct debit collection has three parts:
- The mandate. The customer’s signed authorisation, under a scheme such as SEPA Direct Debit (Core or B2B), Bacs Direct Debit, ACH, or Autogiro. Mandates are captured, stored, and referenced on collection by your payment service provider, not by Solvimon.
- The payment method. A record on the Solvimon customer that identifies the bank account the mandate covers, and links to the provider integration that holds the mandate.
- The collection. Solvimon raises a payment against the invoice using that payment method, and the provider debits the account under the mandate.
Solvimon does not model mandates. There is no mandate reference, signature date, scheme, or mandate status in the Solvimon API. Mandate capture, storage, scheme rules, notice periods, and the audit trail for a disputed debit are all the responsibility of the connected provider (Adyen or Stripe). Solvimon holds only the payment method that the provider’s mandate relates to.
The payment method record
A direct debit payment method has type set to DIRECT_DEBIT, alongside the other supported types: CARD, DIRECT_DEBIT, ONLINE_BANKING, BUY_NOW_PAY_LATER, DIGITAL_WALLET, and UNKNOWN.
For direct debit, Solvimon stores:
| Field | Description |
|---|---|
variant | The scheme or provider variant the method was created under, for example the provider’s SEPA or Autogiro variant |
owner_name | The account holder’s name, as it appears on the mandate |
iban | The account number |
bic | The bank identifier |
country | The account’s country, ISO 3166 |
billing_address | The address used for the payment method |
is_default | Whether this is the customer’s default method |
integration_id | The provider integration that holds the mandate and performs the debit |
Statuses follow a short lifecycle:
| Status | Meaning |
|---|---|
SETUP | Created, but not yet usable for collection. The provider is still completing setup, including the mandate |
ACTIVE | Usable for collection |
INACTIVE | Retained but not usable, for example after the mandate was revoked at the provider |
ARCHIVED | No longer in use |
A method sitting in SETUP is the usual cause of a first collection failing on a new customer. Check the status before the first billing run rather than after it.
Setting one up
Via API
Which schemes are available depends on the connected provider and the billing entity’s country. Ask for the options before creating a method, so the variant you send is one the provider accepts:
1 curl -X POST https://test.api.solvimon.com/v1/payment-acceptors/payment-method-options \ 2 -H "X-API-KEY: <apiKey>" \ 3 -H "Content-Type: application/json" \ 4 -d '{}'
1 [ 2 { 3 "payment_acceptor": { 4 "object_type": "string", 5 "id": "string", 6 "billing_entity_id": "string", 7 "customer_id": "string", 8 "reference": "string", 9 "name": "string", 10 "description": "string", 11 "type": "BANK_ACCOUNT", 12 "bank_account": { 13 "type": "IBAN", 14 "iban": "string", 15 "country": "string", 16 "bic": "string", 17 "bank_name": "string", 18 "bank_address": { 19 "line1": "string", 20 "line2": "string", 21 "city": "string", 22 "postal_code": "string", 23 "state": "string", 24 "country": "AD" 25 }, 26 "account_number_and_bic": { 27 "account_number": "string", 28 "bank_code": "string", 29 "bic": "string" 30 }, 31 "uk_local": { 32 "account_number": "string", 33 "sort_code": "string" 34 }, 35 "us_local": { 36 "account_number": "string", 37 "account_type": "CHECKING", 38 "bank_code": "string", 39 "routing_number": "string" 40 }, 41 "br_local": { 42 "branch": "string", 43 "account_number": "string", 44 "bic": "string" 45 }, 46 "ar_local": { 47 "cbu": "string", 48 "account_number": "string", 49 "bic": "string" 50 }, 51 "mx_local": { 52 "clabe": "string", 53 "account_number": "string", 54 "bic": "string" 55 }, 56 "account_number": "string", 57 "bank_code": "string", 58 "routing_number": "string", 59 "account_type": "CHECKING" 60 }, 61 "payment_gateway": { 62 "integration_id": "string", 63 "integration": { 64 "object_type": "string", 65 "id": "string", 66 "reference": "string", 67 "name": "string", 68 "description": "string", 69 "status": "DRAFT", 70 "message": "string", 71 "type": "PAYMENT_GATEWAY", 72 "variant": "DEFAULT", 73 "paragon_settings": { 74 "paragon_external_id": "string" 75 }, 76 "authentication": { 77 "api_key": { 78 "header": "string", 79 "value": "string" 80 }, 81 "client_credentials": { 82 "client_id": "string", 83 "client_secret": "string" 84 }, 85 "username_password": { 86 "username": "string", 87 "password": "string" 88 } 89 }, 90 "payment_gateway": { 91 "variant": "ADYEN", 92 "adyen": { 93 "company_account": "string", 94 "environment": "LIVE", 95 "live_prefix": "string", 96 "merchant_accounts": [ 97 "string" 98 ], 99 "public_key": "string", 100 "signing_secret": "string", 101 "ownership": "PLATFORM", 102 "system_ownership_details": { 103 "account_holder_id": "string", 104 "balance_account_id": "string", 105 "legal_entity_id": "string", 106 "store_id": "string" 107 }, 108 "balance_platform_details": { 109 "account": "string", 110 "authentication": { 111 "api_key": { 112 "header": "string", 113 "value": "string" 114 }, 115 "client_credentials": { 116 "client_id": "string", 117 "client_secret": "string" 118 }, 119 "username_password": { 120 "username": "string", 121 "password": "string" 122 } 123 } 124 }, 125 "legal_entity_manager_details": { 126 "authentication": { 127 "api_key": { 128 "header": "string", 129 "value": "string" 130 }, 131 "client_credentials": { 132 "client_id": "string", 133 "client_secret": "string" 134 }, 135 "username_password": { 136 "username": "string", 137 "password": "string" 138 } 139 } 140 }, 141 "enabled_payment_methods": [ 142 "string" 143 ] 144 }, 145 "stripe": { 146 "public_key": "string", 147 "signing_secret": "string" 148 } 149 }, 150 "e_invoicing": { 151 "mandates": [ 152 { 153 "name": "string", 154 "country": "string", 155 "mappings": [ 156 { 157 "target": "string", 158 "source": "string", 159 "description": "string" 160 } 161 ], 162 "condition_groups": [ 163 { 164 "conditions": [ 165 { 166 "field": "string", 167 "comparator_type": "EQUALS", 168 "value": "string" 169 } 170 ] 171 } 172 ], 173 "include_pdf_in_einvoice": true, 174 "supported_file_formats": [ 175 { 176 "type": "string", 177 "description": "string" 178 } 179 ] 180 } 181 ], 182 "processor": "AVALARA" 183 }, 184 "data_export": { 185 "variant": "S3", 186 "s3": { 187 "bucket_name": "string", 188 "bucket_path": "string", 189 "bucket_region": "string", 190 "authentication_type": "ACCESS_KEY_AND_SECRET", 191 "role_arn": "string", 192 "external_id": "string" 193 }, 194 "bigquery": { 195 "project_id": "string", 196 "dataset_id": "string", 197 "dataset_location": "string", 198 "gcs_bucket_name": "string", 199 "gcs_hmac_key_access_id": "string", 200 "gcs_hmac_key_secret": "string" 201 }, 202 "gcs": { 203 "bucket_region": "string", 204 "bucket_name": "string", 205 "bucket_path": "string", 206 "flattening": true 207 }, 208 "snowflake": { 209 "host": "string", 210 "role": "string", 211 "warehouse": "string", 212 "database": "string", 213 "schema": "string" 214 }, 215 "transport_type": "string" 216 }, 217 "tax_calculation": { 218 "billing_entity_id": "string", 219 "variant": "AVATAX", 220 "ava_tax": { 221 "company_code": "string" 222 }, 223 "custom_tax_codes": [ 224 { 225 "field": "INVOICE_COMMITMENT", 226 "value": "string" 227 } 228 ], 229 "enable_tax_filing": true 230 }, 231 "linked_resources_configurations": [ 232 { 233 "resource_type": "string", 234 "link_details": [ 235 { 236 "base_url": "string", 237 "custom_field_reference": "string" 238 } 239 ] 240 } 241 ], 242 "email_provider": { 243 "variant": "SYSTEM", 244 "mailgun": { 245 "domain": "string", 246 "region": "US", 247 "plan": "string" 248 }, 249 "delivery_window": { 250 "type": "DAY", 251 "value": 1 252 } 253 }, 254 "erp": { 255 "variant": "XERO" 256 } 257 }, 258 "store_payment_method": true, 259 "auto_charge_payment_method": true, 260 "collection_type": "LINK", 261 "link": { 262 "expiry_period": { 263 "type": "DAY", 264 "value": 1 265 } 266 }, 267 "adyen": { 268 "auto_rescue": { 269 "enabled": true, 270 "period": { 271 "type": "DAY", 272 "value": 1 273 } 274 }, 275 "merchant_account": "string", 276 "allowed_payment_methods": [ 277 "string" 278 ] 279 } 280 }, 281 "custom_redirect": { 282 "url": "string" 283 }, 284 "status": "DRAFT" 285 }, 286 "integration": { 287 "object_type": "string", 288 "id": "string", 289 "reference": "string", 290 "name": "string", 291 "description": "string", 292 "status": "DRAFT", 293 "message": "string", 294 "type": "PAYMENT_GATEWAY", 295 "variant": "DEFAULT", 296 "paragon_settings": { 297 "paragon_external_id": "string" 298 }, 299 "authentication": { 300 "api_key": { 301 "header": "string", 302 "value": "string" 303 }, 304 "client_credentials": { 305 "client_id": "string", 306 "client_secret": "string" 307 }, 308 "username_password": { 309 "username": "string", 310 "password": "string" 311 } 312 }, 313 "payment_gateway": { 314 "variant": "ADYEN", 315 "adyen": { 316 "company_account": "string", 317 "environment": "LIVE", 318 "live_prefix": "string", 319 "merchant_accounts": [ 320 "string" 321 ], 322 "public_key": "string", 323 "signing_secret": "string", 324 "ownership": "PLATFORM", 325 "system_ownership_details": { 326 "account_holder_id": "string", 327 "balance_account_id": "string", 328 "legal_entity_id": "string", 329 "store_id": "string" 330 }, 331 "balance_platform_details": { 332 "account": "string", 333 "authentication": { 334 "api_key": { 335 "header": "string", 336 "value": "string" 337 }, 338 "client_credentials": { 339 "client_id": "string", 340 "client_secret": "string" 341 }, 342 "username_password": { 343 "username": "string", 344 "password": "string" 345 } 346 } 347 }, 348 "legal_entity_manager_details": { 349 "authentication": { 350 "api_key": { 351 "header": "string", 352 "value": "string" 353 }, 354 "client_credentials": { 355 "client_id": "string", 356 "client_secret": "string" 357 }, 358 "username_password": { 359 "username": "string", 360 "password": "string" 361 } 362 } 363 }, 364 "enabled_payment_methods": [ 365 "string" 366 ] 367 }, 368 "stripe": { 369 "public_key": "string", 370 "signing_secret": "string" 371 } 372 }, 373 "e_invoicing": { 374 "mandates": [ 375 { 376 "name": "string", 377 "country": "string", 378 "mappings": [ 379 { 380 "target": "string", 381 "source": "string", 382 "description": "string" 383 } 384 ], 385 "condition_groups": [ 386 { 387 "conditions": [ 388 { 389 "field": "string", 390 "comparator_type": "EQUALS", 391 "value": "string" 392 } 393 ] 394 } 395 ], 396 "include_pdf_in_einvoice": true, 397 "supported_file_formats": [ 398 { 399 "type": "string", 400 "description": "string" 401 } 402 ] 403 } 404 ], 405 "processor": "AVALARA" 406 }, 407 "data_export": { 408 "variant": "S3", 409 "s3": { 410 "bucket_name": "string", 411 "bucket_path": "string", 412 "bucket_region": "string", 413 "authentication_type": "ACCESS_KEY_AND_SECRET", 414 "role_arn": "string", 415 "external_id": "string" 416 }, 417 "bigquery": { 418 "project_id": "string", 419 "dataset_id": "string", 420 "dataset_location": "string", 421 "gcs_bucket_name": "string", 422 "gcs_hmac_key_access_id": "string", 423 "gcs_hmac_key_secret": "string" 424 }, 425 "gcs": { 426 "bucket_region": "string", 427 "bucket_name": "string", 428 "bucket_path": "string", 429 "flattening": true 430 }, 431 "snowflake": { 432 "host": "string", 433 "role": "string", 434 "warehouse": "string", 435 "database": "string", 436 "schema": "string" 437 }, 438 "transport_type": "string" 439 }, 440 "tax_calculation": { 441 "billing_entity_id": "string", 442 "variant": "AVATAX", 443 "ava_tax": { 444 "company_code": "string" 445 }, 446 "custom_tax_codes": [ 447 { 448 "field": "INVOICE_COMMITMENT", 449 "value": "string" 450 } 451 ], 452 "enable_tax_filing": true 453 }, 454 "linked_resources_configurations": [ 455 { 456 "resource_type": "string", 457 "link_details": [ 458 { 459 "base_url": "string", 460 "custom_field_reference": "string" 461 } 462 ] 463 } 464 ], 465 "email_provider": { 466 "variant": "SYSTEM", 467 "mailgun": { 468 "domain": "string", 469 "region": "US", 470 "plan": "string" 471 }, 472 "delivery_window": { 473 "type": "DAY", 474 "value": 1 475 } 476 }, 477 "erp": { 478 "variant": "XERO" 479 } 480 }, 481 "options": [ 482 { 483 "name": "string", 484 "payment_method_variant": "string", 485 "payment_gateway_variant": "string", 486 "adyen": { 487 "name": "string", 488 "type": "string", 489 "brand": "string", 490 "brands": [ 491 "string" 492 ], 493 "funding_source": "string", 494 "issuers": [ 495 { 496 "id": "string", 497 "name": "string" 498 } 499 ], 500 "store_payment_method": true, 501 "configuration": {} 502 }, 503 "stripe": { 504 "name": "string" 505 } 506 } 507 ] 508 } 509 ]
Each option pairs a payment_method_variant with a payment_gateway_variant, plus the provider-specific configuration for Adyen or Stripe.
Do not collect and post bank details yourself. Tokenize them through the provider so the mandate is created and the account details are held by the provider:
1 curl -X POST https://test.api.solvimon.com/v1/payment-methods/tokenize \ 2 -H "X-API-KEY: <apiKey>" \ 3 -H "Content-Type: application/json" \ 4 -d '{ 5 "payment_acceptor_id": "string", 6 "customer_id": "string", 7 "payment_gateway_variant": "ADYEN" 8 }'
1 { 2 "payment_method": { 3 "object_type": "string", 4 "id": "string", 5 "created_at": "string", 6 "updated_at": "string", 7 "reference": "string", 8 "status": "SETUP", 9 "type": "CARD", 10 "card": { 11 "brand": "ACCEL", 12 "name": "string", 13 "expiry_date": { 14 "expiry_month": 1, 15 "expiry_year": 1 16 }, 17 "last_four_digits": "string", 18 "country": "string" 19 }, 20 "online_banking": { 21 "variant": "string", 22 "owner_name": "string", 23 "iban": "string", 24 "bic": "string", 25 "country": "AD" 26 }, 27 "buy_now_pay_later": { 28 "variant": "string" 29 }, 30 "direct_debit": { 31 "variant": "string", 32 "owner_name": "string", 33 "iban": "string", 34 "bic": "string", 35 "country": "AD" 36 }, 37 "digital_wallet": { 38 "variant": "string" 39 }, 40 "customer_id": "string", 41 "integration_id": "string", 42 "integration_reference": "string", 43 "integration_details": { 44 "id": "string", 45 "reference": "string", 46 "payment_gateway_variant": "ADYEN", 47 "adyen": { 48 "recurring_detail_reference": "string" 49 }, 50 "stripe": { 51 "payment_method_id": "string" 52 } 53 }, 54 "billing_address": { 55 "line1": "string", 56 "line2": "string", 57 "city": "string", 58 "postal_code": "string", 59 "state": "string", 60 "country": "AD" 61 }, 62 "is_default": true 63 }, 64 "payment": { 65 "object_type": "string", 66 "id": "string", 67 "created_at": "string", 68 "timestamp": "2024-01-15T09:30:00Z", 69 "customer_id": "string", 70 "customer": { 71 "object_type": "string", 72 "id": "string", 73 "created_at": "string", 74 "parent_customer_id": "string", 75 "parent_customer_ids": [ 76 "string" 77 ], 78 "reference": "string", 79 "status": "DRAFT", 80 "timezone": "string", 81 "type": "ORGANIZATION", 82 "email": "string", 83 "notification_preferences": [ 84 { 85 "type": "INVOICE", 86 "channels": [ 87 { 88 "type": "EMAIL", 89 "enabled": true 90 } 91 ] 92 } 93 ], 94 "locale": "string", 95 "individual": { 96 "name": { 97 "first_name": "string", 98 "last_name": "string", 99 "infix": "string" 100 }, 101 "residential_address": { 102 "line1": "string", 103 "line2": "string", 104 "city": "string", 105 "postal_code": "string", 106 "state": "string", 107 "country": "AD" 108 } 109 }, 110 "organization": { 111 "legal_name": "string", 112 "tax_id": "string", 113 "tax_ids": [ 114 { 115 "id": "string", 116 "type": "GENERIC_TAX_ID", 117 "display_name": "string", 118 "tax_id_validation_result": { 119 "id": "string", 120 "validation_date": "string", 121 "source": "string", 122 "valid": "VALID", 123 "message": "string" 124 } 125 } 126 ], 127 "registration_number": "string", 128 "tax_exempt": true, 129 "tax_exempt_note": "string", 130 "registered_address": { 131 "line1": "string", 132 "line2": "string", 133 "city": "string", 134 "postal_code": "string", 135 "state": "string", 136 "country": "AD" 137 }, 138 "tax_registrations": [ 139 { 140 "id": "string", 141 "description": "string", 142 "tax_id": "string", 143 "tax_ids": [ 144 { 145 "id": "string", 146 "type": "GENERIC_TAX_ID", 147 "display_name": "string", 148 "tax_id_validation_result": { 149 "id": "string", 150 "validation_date": "string", 151 "source": "string", 152 "valid": "VALID", 153 "message": "string" 154 } 155 } 156 ], 157 "registration_number": "string", 158 "registered_address": { 159 "line1": "string", 160 "line2": "string", 161 "city": "string", 162 "postal_code": "string", 163 "state": "string", 164 "country": "AD" 165 } 166 } 167 ] 168 }, 169 "custom_fields": [ 170 { 171 "id": "string", 172 "reference": "string", 173 "value": "string", 174 "values": [ 175 "string" 176 ], 177 "integration_details": { 178 "id": "string", 179 "reference": "string", 180 "payment_gateway_variant": "ADYEN", 181 "adyen": { 182 "recurring_detail_reference": "string" 183 }, 184 "stripe": { 185 "payment_method_id": "string" 186 } 187 }, 188 "integration_id": "string" 189 } 190 ], 191 "pricing_plan_subscription_selector": { 192 "data": [ 193 { 194 "field": "BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY", 195 "value": "string" 196 } 197 ], 198 "rules": [ 199 { 200 "field": "BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY", 201 "type": "EQUALS" 202 } 203 ], 204 "filters": [ 205 { 206 "field": "BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY", 207 "type": "EQUALS", 208 "value": "string" 209 } 210 ], 211 "fallback": "LATEST" 212 }, 213 "linked_integrations": [ 214 { 215 "id": "string", 216 "link_details": [ 217 { 218 "url": "string", 219 "custom_field_name": "string" 220 } 221 ] 222 } 223 ], 224 "roles": [ 225 "DEFAULT" 226 ], 227 "seller_details": { 228 "default_billing_entity_id": "string" 229 }, 230 "processing_only": true 231 }, 232 "invoice_id": "string", 233 "payment_acceptor_id": "string", 234 "payment_acceptor_reference": "string", 235 "payment_method_id": "string", 236 "payment_method_details": { 237 "type": "CARD", 238 "card": { 239 "brand": "string", 240 "name": "string", 241 "expiry_date": { 242 "expiry_month": 1, 243 "expiry_year": 1 244 }, 245 "last_four_digits": "string", 246 "country": "string" 247 }, 248 "online_banking": { 249 "variant": "string", 250 "owner_name": "string", 251 "iban": "string", 252 "bic": "string", 253 "country": "AD" 254 }, 255 "buy_now_pay_later": { 256 "variant": "string" 257 }, 258 "direct_debit": { 259 "variant": "string", 260 "owner_name": "string", 261 "iban": "string", 262 "bic": "string", 263 "country": "AD" 264 }, 265 "digital_wallet": { 266 "variant": "string" 267 }, 268 "unknown": { 269 "variant": "string" 270 } 271 }, 272 "integration_payment_method_reference": "string", 273 "external_reference": "string", 274 "reference": "string", 275 "amount": { 276 "quantity": "string", 277 "currency": "AED" 278 }, 279 "result": "AUTHORIZED", 280 "result_details": { 281 "code": "string", 282 "reason": "string", 283 "external_code": "string", 284 "external_reason": "string" 285 }, 286 "dunning_action_details": { 287 "attempt": 1, 288 "external_reference": "string", 289 "next_attempt_scheduled": true 290 }, 291 "updated_at": "string", 292 "context": { 293 "type": "INVOICE", 294 "related_resource_ids": [ 295 { 296 "type": "PLATFORM", 297 "id": "string" 298 } 299 ], 300 "metadata": {}, 301 "init_pricing_plan_subscription": { 302 "template_pricing_plan_subscription_id": "string", 303 "pricing_plan_subscription_id": "string", 304 "billing_entity_id": "string", 305 "customer_details": { 306 "object_type": "string", 307 "id": "string", 308 "created_at": "string", 309 "parent_customer_id": "string", 310 "parent_customer_ids": [ 311 "string" 312 ], 313 "reference": "string", 314 "status": "DRAFT", 315 "timezone": "string", 316 "type": "ORGANIZATION", 317 "email": "string", 318 "notification_preferences": [ 319 { 320 "type": "INVOICE", 321 "channels": [ 322 { 323 "type": "EMAIL", 324 "enabled": true 325 } 326 ] 327 } 328 ], 329 "locale": "string", 330 "individual": { 331 "name": { 332 "first_name": "string", 333 "last_name": "string", 334 "infix": "string" 335 }, 336 "residential_address": { 337 "line1": "string", 338 "line2": "string", 339 "city": "string", 340 "postal_code": "string", 341 "state": "string", 342 "country": "AD" 343 } 344 }, 345 "organization": { 346 "legal_name": "string", 347 "tax_id": "string", 348 "tax_ids": [ 349 { 350 "id": "string", 351 "type": "GENERIC_TAX_ID", 352 "display_name": "string", 353 "tax_id_validation_result": { 354 "id": "string", 355 "validation_date": "string", 356 "source": "string", 357 "valid": "VALID", 358 "message": "string" 359 } 360 } 361 ], 362 "registration_number": "string", 363 "tax_exempt": true, 364 "tax_exempt_note": "string", 365 "registered_address": { 366 "line1": "string", 367 "line2": "string", 368 "city": "string", 369 "postal_code": "string", 370 "state": "string", 371 "country": "AD" 372 }, 373 "tax_registrations": [ 374 { 375 "id": "string", 376 "description": "string", 377 "tax_id": "string", 378 "tax_ids": [ 379 { 380 "id": "string", 381 "type": "GENERIC_TAX_ID", 382 "display_name": "string", 383 "tax_id_validation_result": { 384 "id": "string", 385 "validation_date": "string", 386 "source": "string", 387 "valid": "VALID", 388 "message": "string" 389 } 390 } 391 ], 392 "registration_number": "string", 393 "registered_address": { 394 "line1": "string", 395 "line2": "string", 396 "city": "string", 397 "postal_code": "string", 398 "state": "string", 399 "country": "AD" 400 } 401 } 402 ] 403 }, 404 "custom_fields": [ 405 { 406 "id": "string", 407 "reference": "string", 408 "value": "string", 409 "values": [ 410 "string" 411 ], 412 "integration_details": { 413 "id": "string", 414 "reference": "string", 415 "payment_gateway_variant": "ADYEN", 416 "adyen": { 417 "recurring_detail_reference": "string" 418 }, 419 "stripe": { 420 "payment_method_id": "string" 421 } 422 }, 423 "integration_id": "string" 424 } 425 ], 426 "pricing_plan_subscription_selector": { 427 "data": [ 428 { 429 "field": "BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY", 430 "value": "string" 431 } 432 ], 433 "rules": [ 434 { 435 "field": "BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY", 436 "type": "EQUALS" 437 } 438 ], 439 "filters": [ 440 { 441 "field": "BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY", 442 "type": "EQUALS", 443 "value": "string" 444 } 445 ], 446 "fallback": "LATEST" 447 }, 448 "linked_integrations": [ 449 { 450 "id": "string", 451 "link_details": [ 452 { 453 "url": "string", 454 "custom_field_name": "string" 455 } 456 ] 457 } 458 ], 459 "roles": [ 460 "DEFAULT" 461 ], 462 "seller_details": { 463 "default_billing_entity_id": "string" 464 }, 465 "processing_only": true 466 }, 467 "pricing_plan_schedule_customizations": [ 468 { 469 "pricing_plan_schedule_id": "string", 470 "seats_values": [ 471 { 472 "pricing_item_config_id": "string", 473 "number": "string", 474 "amount": { 475 "quantity": "string", 476 "currency": "AED" 477 }, 478 "start_at": "2024-01-15T09:30:00Z", 479 "end_at": "string" 480 } 481 ], 482 "enabled_pricings": [ 483 { 484 "pricing_id": "string", 485 "start_at": "2024-01-15T09:30:00Z", 486 "end_at": "2024-01-15T09:30:00Z" 487 } 488 ], 489 "promotion_codes": [ 490 "string" 491 ], 492 "pricing_currency": "AED", 493 "billing_period": { 494 "type": "DAY", 495 "value": 1 496 } 497 } 498 ], 499 "enabled_pricings": [ 500 { 501 "pricing_id": "string", 502 "start_at": "2024-01-15T09:30:00Z", 503 "end_at": "2024-01-15T09:30:00Z" 504 } 505 ] 506 }, 507 "create_payment_method": { 508 "payment_method_id": "string" 509 }, 510 "payment_request": { 511 "payment_request_id": "string" 512 }, 513 "pay_invoice": { 514 "invoice_id": "string" 515 }, 516 "charge_on_demand": { 517 "pricing_plan_schedule_id": "string", 518 "pricing_items": [ 519 { 520 "pricing_item_id": "string" 521 } 522 ], 523 "start_at": "2024-01-15T09:30:00Z" 524 }, 525 "direct": { 526 "adyen": { 527 "capture_delay_hours": 1, 528 "auto_rescue": { 529 "enabled": true, 530 "period": { 531 "type": "DAY", 532 "value": 1 533 } 534 } 535 } 536 }, 537 "create_pricing_plan_schedule": { 538 "pricing_plan_subscription_id": "string", 539 "pricing_plan_version_id": "string", 540 "pricing_id": "string", 541 "start_at": "2024-01-15T09:30:00Z" 542 } 543 } 544 }, 545 "status": "SUCCESS", 546 "action": { 547 "url": "string", 548 "data": {}, 549 "method": "string", 550 "payment_gateway_variant": "string", 551 "adyen": { 552 "result_code": "string", 553 "action_type": "string", 554 "payment_data": "string", 555 "payment_method_type": "string", 556 "sdk_data": {} 557 }, 558 "stripe": { 559 "status": "string", 560 "next_action": { 561 "type": "string", 562 "redirect_to_url": { 563 "return_url": "string", 564 "url": "string" 565 } 566 } 567 } 568 } 569 }
Read the customer’s methods back with GET /v{version}/payment-methods, and use POST /v{version}/payment-methods/refresh to pull the current state from the provider after a mandate change.
Via hosted pages
The lower-effort route is to let the customer set the mandate up themselves. Both hosted checkout and the customer portal render the provider’s payment method form, so the mandate is captured by the provider and the resulting payment method appears on the Solvimon customer with no integration work.
Via Desk
Add or inspect a customer’s payment methods on the customer record. The available direct debit variants come from the payment acceptor configured on the billing entity, so configure the payment acceptor first.
Collection and failures
Direct debit failures arrive later than card failures: a debit can be returned days after it is presented. That return surfaces as a payment result of REFUSED or, where funds were taken and reversed, CHARGED_BACK, with the provider’s reason in result_details.
Because the timing differs from cards, do not assume an unpaid invoice means the debit was never presented. See Dunning & payment retries for how attempts are recorded and chased.
Edge cases
- Scheme-specific rules are the provider’s. Advance notice requirements, B2B versus Core mandate handling, and return windows differ per scheme and are enforced at the provider.
- A revoked mandate is not visible in Solvimon until the payment method is refreshed or a collection fails.
- Changing bank accounts means a new mandate and a new payment method. Set the new method as default and archive the old one; do not edit the account details in place.