Setup merchant application payment provider configuration
Links an active payment provider to the given application, enables the requested payment methods, stores credentials, and registers a webhook endpoint with the provider.
curl -X POST "https://api.example.com/api/v1/applications/example_string/providers" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN (JWT)" \
-d '{
"name": "stripe",
"paymentMethods": [
"card",
"blik"
],
"credentials": {
"apiKey": "rk_live_..."
}
}'
import requests
import json
url = "https://api.example.com/api/v1/applications/example_string/providers"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)"
}
data = {
"name": "stripe",
"paymentMethods": [
"card",
"blik"
],
"credentials": {
"apiKey": "rk_live_..."
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.example.com/api/v1/applications/example_string/providers", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)"
},
body: JSON.stringify({
"name": "stripe",
"paymentMethods": [
"card",
"blik"
],
"credentials": {
"apiKey": "rk_live_..."
}
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"name": "stripe",
"paymentMethods": [
"card",
"blik"
],
"credentials": {
"apiKey": "rk_live_..."
}
}`)
req, err := http.NewRequest("POST", "https://api.example.com/api/v1/applications/example_string/providers", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN (JWT)")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.example.com/api/v1/applications/example_string/providers')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN (JWT)'
request.body = '{
"name": "stripe",
"paymentMethods": [
"card",
"blik"
],
"credentials": {
"apiKey": "rk_live_..."
}
}'
response = http.request(request)
puts response.body
{
"applicationId": "00000000-0000-0000-0000-000000000000",
"provider": "stripe",
"isActive": true,
"paymentMethods": [
"card",
"blik"
],
"keyFingerprint": "rk_live_****x1sf",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
{
"message": "Provider 'stripe' not found",
"statusCode": 404
}
{
"message": "Provider 'stripe' is already configured for this application",
"statusCode": 409
}
{
"message": "The provided API key is invalid or does not authenticate",
"statusCode": 422
}
{
"message": "The provided API key lacks the required permissions",
"statusCode": 422
}
{
"message": "Payment methods not supported by this provider: bank",
"statusCode": 422
}
{
"message": "Failed to register webhook endpoint for provider 'stripe'",
"statusCode": 500
}
POST
/api/v1/applications/{applicationId}/providersPOST
Base URLstring
Target server for requests. Edit to use your own host.
Bearer Token (JWT)
Bearer Tokenstring
RequiredBearer token (JWT) - just enter the token, "Bearer" prefix will be added automatically
Content-Typestring
RequiredThe media type of the request body
Options: application/json
namestring
RequiredProvider name identifier.
Max length: 100
paymentMethodsarray
RequiredPayment method types to enable for this provider.
credentialsstring
RequiredProvider credentials.
Request Preview
Response
Response will appear here after sending the request
Authentication
header
Authorizationstring
RequiredBearer token (JWT). Authentication token required.
Path Parameters
Body
application/json
credentialsstring
RequiredProvider credentials.
Responses
Was this page helpful?