APM buttons
Add alternative payment method buttons to your payment form with customizable styling, placement, and method-specific display conditions
Alternative payment method buttons expand your payment options and increase conversion by offering familiar, secure checkouts.
Button configuration is passed during
Guide
Initialize the payment form by providing the init object and form parameters.
form initialization
alongside formParams. For
Guide
Handle APM payment operations from initiation through settlement using consistent patterns for captures, refunds, and void actions.
future payments ,
include future_usage in paymentIntent. Track lifecycle through payment form
Guide
Subscribe to payment form lifecycle events to track user interactions, validate input, handle errors, and respond to payment completion.
events .
When using
init payment
API
, do not create multiple buttons with the same order_id at once. If you are already using a host-to-host APM button, disable it so orders are created and processed automatically by the payment form.
If you have not set up an APM button for your channels,
contact us.
Setup workflow
Every APM button follows the same three-step setup.
Configure the payment method.
Build the paymentIntent with the fields below. Add method-specific objects from your method tab.
paymentIntent object
Expand all
Choose your payment scenario to see the fields it requires.
Payment
amount
Required
Description
Order amount in minor units. For example, 1020 means 10 EUR and 20 cents.
Example
1020
Product-based payment
product_id
Required
Description
Identifier of the predefined product in UUID v4 format.
Example
faf3b86a-1fe6-4ae5-84d4-ab0651d75db2
customer_account_id
Required
Description
Customer ID in the merchant’s system.
Example
4dad42f878
Subscription payment
product_price_id
Required
Description
Price ID of the predefined product. Use get product prices to obtain it.
Example
faf3b86a-1fe6-4ae5-84d4-ab0651d75db2
customer_account_id
Required
Description
Customer ID in the merchant’s system.
Example
4dad42f878
order_id
Required
Description
Order ID, which must be unique, is specified in the merchant system.
Example
123456
currency
Required
Description
Currency in three-letter code per the
ISO-4217
Wiki
standard. Each APM enforces its own supported currency. See the method tab below.
Example
EUR
order_description
Required
Description
Order description in your system and for bank processing.
Highly recommended to keep the description brief to improve the clarity of payment processing, ideally not exceeding 100 characters.
Example
Premium package
future_usage
Required*
Description
Defines the usage of stored payment credentials.
payment_type
Required
Description
Type of the token usage scenario.
one-time
no token created, for one-off use
recurring
creates a recurring mandate
Example
one-time
billing_period
Required*
Description
Defines the interval for recurring charges.
unit
Required
Description
Billing interval unit for Pix Automático recurring charges.
Allowed values:
Example
month
value
Required
Description
Billing interval value for the selected
unit
.
Only these unit + value pairs are allowed:
day + 7
week + 1
month + 1, 3, 6, 12
year + 1
Example
1
max_amount
Required*
Description
Maximum allowed amount in minor units for each recurring charge.
Example
10000
payment_type_data
Description
Additional customer data to process payments in specific locations.
brazil_cpf
Description
CPF (Cadastro de Pessoas Físicas) Brazilian individual taxpayer registry identification.
The last two digits are verifiers. If not provided, it is collected on the payment form.
Example
12345678901
customer_email
Description
Customer email.
If not provided, it is collected on the payment form.
For
PayPal , an autogenerated email may initialize the order, which the customer enters while logging into their
PayPal account .
Example
test@solidgate.com
customer_first_name
Description
Customer’s first name.
Example
John
customer_last_name
Description
Customer’s last name.
Example
Snow
customer_phone
Description
Customer’s phone number.
Should be provided in international format
E.164
Wiki
, starting with the plus + sign.
Recommended format
^\+[1-9]\d{1,14}$
Example
+34911012345
ip_address
Description
Public IP address of the customer. Both IPv4 and IPv6 are supported.
Private IPs (10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255) result in an ‘
Invalid IP ’ error.
Example
8.8.8.8
geo_country
Description
Customer country subject to
ISO-3166
Wiki
alpha-3.
Recommended for region-locked APMs. Expected codes are listed in each method tab.
Example
ESP
platform
Description
Customer platform at the moment of payment.
WEB
- desktop
MOB
- mobile version
APP
- application
If this parameter is not provided, it is automatically inferred from the header.
Example
WEB
language
Description
Customer language settings for the translation of Payment Form fields and the language of email receipts sent for successful payments.
Example
en
retry_attempt
Description
Number of payment retries.
Example
1
order_metadata
Description
Metadata is useful for storing additional, structured information about an object, consisting of up to 10 key-value pairs with a validation limit of 380 characters per field.
The callback notification returns an order_metadata from the order in each state.
Example
{"coupon_code": "NY2025", "partner_id": "123989"}
success_url
Description
Provide this URL if you want to redirect a customer to your own Success Screen.
Without it, Solidgate uses the default Success Screen.
Example
https://merchant.example/success
fail_url
Description
Provide this URL if you want to redirect a customer to your own Fail Screen.
Without it, Solidgate uses the default Fail Screen.
Example
https://merchant.example/fail
Pass the method params object to PaymentFormSdk.init with enabled
true
. Without containerId, the button renders above the form. A non-existent containerId produces a console error.
PaymentFormSdk.init template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const data = {
merchantData : {
merchant : "<-your data->" ,
signature : "<-your data->" ,
paymentIntent : "<-your data->" ,
},
// Replace with your method's params object: bizumButtonParams, blikButtonParams,
// cashAppButtonParams, mbwayButtonParams, paypalButtonParams,
// pixAutomaticoButtonParams, pixQrButtonParams, or pixButtonParams (SmartPix).
bizumButtonParams : {
enabled : true ,
containerId : "your-custom-container-id"
}
};
let form = PaymentFormSdk . init ( data );
Subscribe to the
mounted
Guide
Subscribe to payment form lifecycle events to track user interactions, validate input, handle errors, and respond to payment completion.
event
to know when a button is rendered. Entity names follow
bizumbtn
,
pixautomaticobtn
,
smartpixbtn
, etc.
Method-specific configuration
Select your APM to see its paymentIntent payload, button params, and init snippet.
DISPLAYED BY DEFAULT
Bizum · Cash App Pay · PayPal · SmartPix
OPT-IN REQUIRED · enabled true
Blik · MB WAY · Pix Automático · Pix QR
Bizum
Bizum is a Spanish peer-to-peer bank payment.
currency
EUR
geo_country
ESP
future_usage
Required
One-time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "EUR" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "one-time"
},
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+34911012345" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "ESP" ,
"platform" : "WEB" ,
"language" : "es" ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
Recurring
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "EUR" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "recurring" ,
"billing_period" : {
"unit" : "month" ,
"value" : 1
}
},
"customer_account_id" : "4dad42f808" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+34911012345" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "ESP" ,
"platform" : "WEB" ,
"language" : "es" ,
"retry_attempt" : 1 ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
bizumButtonParams object
Expand all
enabled
Description
Displays the Bizum button.
Pass this field with
false
to hide the Bizum button.
Default
true
Example
false
containerId
Description
Identifier of the container where the Bizum button is placed.
Default
Button is displayed above the form.
Example
bizum-button-container
Blik
Blik is a Polish mobile payment with one-time authorization codes.
currency
PLN
geo_country
POL
One-time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"order_id" : "123456" ,
"amount" : 5000 ,
"currency" : "PLN" ,
"order_description" : "Premium package" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "POL" ,
"platform" : "WEB" ,
"language" : "pl" ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
blikButtonParams object
Expand all
enabled
Description
Displays the Blik button.
If you do not pass this field with
true
, the Blik button is hidden.
Default
false
Example
true
containerId
Description
Identifier of the container where the Blik button is placed.
Default
Button is displayed above the form.
Example
blik-button-container
theme
Description
Theme of the Blik button.
Default
dark
Example
light
resetEnabled
Description
When true, the modal’s close “✕” button remains visible after the form is submitted. Clicking it emits a
resetRequested
event .
When false or omitted, the close “✕” button is hidden once the form is submitted.
Default
false
Example
true
Cash App Pay
Cash App Pay is a US digital wallet.
currency
USD
geo_country
USA
Required
future_usage
Required
success_url
Required
fail_url
Required
One-time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"order_id" : "123456" ,
"amount" : 2500 ,
"currency" : "USD" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "one-time"
},
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "USA" ,
"platform" : "WEB" ,
"language" : "en" ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
Recurring
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"order_id" : "123456" ,
"amount" : 2500 ,
"currency" : "USD" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "recurring"
},
"customer_account_id" : "4dad42f808" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "USA" ,
"platform" : "WEB" ,
"language" : "en" ,
"retry_attempt" : 1 ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
cashAppButtonParams object
Expand all
enabled
Description
Displays the Cash App Pay button.
Pass this field with
false
to hide the Cash App Pay button.
Default
true
Example
false
containerId
Description
Identifier of the container where the Cash App Pay button is placed.
Default
Button is displayed above the form.
Example
cashapp-button-container
MB WAY
MB WAY is a Portuguese mobile payment.
currency
EUR
geo_country
PRT
future_usage
Required
One-time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "EUR" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "one-time"
},
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+351912345678" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "PRT" ,
"platform" : "WEB" ,
"language" : "pt" ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
Recurring
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "EUR" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "recurring"
},
"customer_account_id" : "4dad42f808" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+351912345678" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "PRT" ,
"platform" : "WEB" ,
"language" : "pt" ,
"retry_attempt" : 1 ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
mbwayButtonParams object
Expand all
enabled
Description
Displays the MB WAY button.
If you do not pass this field with
true
, the MB WAY button is hidden.
Default
false
Example
true
containerId
Description
Identifier of the container where the MB WAY button is placed.
Default
Button is displayed above the form.
Example
mbway-button-container
PayPal
PayPal is a worldwide multi-currency wallet checkout.
customer_email autogenerated if missing, confirmed on PayPal login
One-time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "USD" ,
"order_description" : "Premium package" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "USA" ,
"platform" : "WEB" ,
"language" : "en" ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
Subscription
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"order_id" : "123456" ,
"product_price_id" : "faf3b86a-1fe6-4ae5-84d4-ab0651d75db2" ,
"customer_account_id" : "4dad42f808" ,
"currency" : "USD" ,
"order_description" : "Premium package" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "USA" ,
"platform" : "WEB" ,
"language" : "en" ,
"retry_attempt" : 1 ,
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
paypalButtonParams object
Expand all
enabled
Description
Displays the PayPal button.
Pass this field with
false
to hide the PayPal button.
Default
true
Example
false
containerId
Description
Identifier of the container where the PayPal button is placed.
Default
Button is displayed above the form.
Example
paypal-button-container
color
Description
Color
Reference
of the PayPal button.
gold
blue
silver
white
black
Default
gold
Example
blue
shape
Description
Shape
Reference
of the PayPal button.
Default
pill
Example
sharp
label
Description
Label
Reference
displayed on the PayPal button.
paypal
checkout
buynow
pay
Default
buynow
Example
checkout
height
Description
Height
Reference
of the PayPal button.
Default
Button adapts to the size of its container element.
Example
52
disableMaxWidth
Description
Removes the default maximum width constraint of 750px, allowing the PayPal button to expand to the full width of its container.
Default
false
Example
true
Pix Automático
Pix Automático is a BCB-regulated recurring mandate in Brazil. The button initiates the mandate and first charge.
The mandate must follow allowed
Guide
Allowed billing intervals for Pix Automático mandates per BCB rules.
billing periods
and respect the
Guide
How max_amount and product_id define the per-charge authorization limit.
authorization ceiling
set by future_usage
max_amount
and
product_id
.
currency
BRL
geo_country
BRA
future_usage
payment_type
recurring
Required
future_usage
max_amount
Required
future_usage
billing_period
Required
payment_type_data
brazil_cpf
collected on form if missing
Recurring
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "BRL" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "recurring" ,
"max_amount" : 10000 ,
"billing_period" : {
"unit" : "month" ,
"value" : 1
}
},
"customer_account_id" : "4dad42f808" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+5511987654321" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "BRA" ,
"platform" : "WEB" ,
"language" : "pt" ,
"retry_attempt" : 1 ,
"payment_type_data" : {
"brazil_cpf" : "12345678901"
},
"order_metadata" : {
"campaign" : "pix_automatico_launch" ,
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
Subscription
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
"order_id" : "123456" ,
"product_id" : "47f95c95-3647-4c5b-ae6d-40fd8d3ac742" ,
"customer_account_id" : "4dad42f808" ,
"currency" : "BRL" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "recurring" ,
"max_amount" : 10000
},
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+5511987654321" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "BRA" ,
"platform" : "WEB" ,
"language" : "pt" ,
"retry_attempt" : 1 ,
"payment_type_data" : {
"brazil_cpf" : "12345678901"
},
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
pixAutomaticoButtonParams object
Expand all
enabled
Description
Displays the Pix Automático button.
If you do not pass this field with
true
, the Pix Automático button is hidden.
Default
false
Example
true
containerId
Description
Identifier of the container where the Pix Automático button is placed.
Default
Button is displayed above the form.
Example
pix-automatico-button-container
resetEnabled
Description
When true, the modal’s close “✕” button remains visible after the form is submitted. Clicking it emits a
resetRequested
event .
When false or omitted, the close “✕” button is hidden once the form is submitted.
Default
false
Example
true
Pix QR
Pix QR is a single-use Brazilian payment. Solidgate returns a QR code that the customer scans in their banking app.
currency
BRL
geo_country
BRA
payment_type_data
brazil_cpf
collected on form if missing
One-time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "BRL" ,
"order_description" : "Premium package" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+5511987654321" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "BRA" ,
"platform" : "WEB" ,
"language" : "pt" ,
"payment_type_data" : {
"brazil_cpf" : "12345678901"
},
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
pixQrButtonParams object
Expand all
enabled
Description
Displays the Pix QR button.
If you do not pass this field with
true
, the Pix QR button is hidden.
Default
false
Example
true
containerId
Description
Identifier of the container where the Pix QR button is placed.
Default
Button is displayed above the form.
Example
pix-qr-button-container
resetEnabled
Description
When true, the modal’s close “✕” button remains visible after the form is submitted. Clicking it emits a
resetRequested
event .
When false or omitted, the close “✕” button is hidden once the form is submitted.
Default
false
Example
true
SmartPix
SmartPix collects one-time or recurring Brazilian payments via Open Finance bank connections.
currency
BRL
geo_country
BRA
payment_type_data
brazil_cpf
collected on form if missing
One-time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "BRL" ,
"order_description" : "Premium package" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+5511987654321" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "BRA" ,
"platform" : "WEB" ,
"language" : "pt" ,
"payment_type_data" : {
"brazil_cpf" : "12345678901"
},
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
Recurring
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"order_id" : "123456" ,
"amount" : 1020 ,
"currency" : "BRL" ,
"order_description" : "Premium package" ,
"future_usage" : {
"payment_type" : "recurring"
},
"customer_account_id" : "4dad42f808" ,
"customer_email" : "test@solidgate.com" ,
"customer_first_name" : "John" ,
"customer_last_name" : "Snow" ,
"customer_phone" : "+5511987654321" ,
"ip_address" : "8.8.8.8" ,
"geo_country" : "BRA" ,
"platform" : "WEB" ,
"language" : "pt" ,
"retry_attempt" : 1 ,
"payment_type_data" : {
"brazil_cpf" : "12345678901"
},
"order_metadata" : {
"partner_id" : "123989"
},
"success_url" : "https://merchant.example/success" ,
"fail_url" : "https://merchant.example/fail"
}
pixButtonParams object
Expand all
enabled
Description
Displays the SmartPix button.
Pass this field with
false
to hide the SmartPix button.
Default
true
Example
false
containerId
Description
Identifier of the container where the SmartPix button is placed.
Default
Button is displayed above the form.
Example
pix-button-container
resetEnabled
Description
When true, the modal’s close “✕” button remains visible after the form is submitted. Clicking it emits a
resetRequested
event .
When false or omitted, the close “✕” button is hidden once the form is submitted.
Default
false
Example
true