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:

  1. 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.
  2. 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.
  3. 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:

FieldDescription
variantThe scheme or provider variant the method was created under, for example the provider’s SEPA or Autogiro variant
owner_nameThe account holder’s name, as it appears on the mandate
ibanThe account number
bicThe bank identifier
countryThe account’s country, ISO 3166
billing_addressThe address used for the payment method
is_defaultWhether this is the customer’s default method
integration_idThe provider integration that holds the mandate and performs the debit

Statuses follow a short lifecycle:

StatusMeaning
SETUPCreated, but not yet usable for collection. The provider is still completing setup, including the mandate
ACTIVEUsable for collection
INACTIVERetained but not usable, for example after the mandate was revoked at the provider
ARCHIVEDNo 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:

POST
/v:version/payment-acceptors/payment-method-options
1curl -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 '{}'
Response
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:

POST
/v:version/payment-methods/tokenize
1curl -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}'
Response
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.