Create a Payout

Definition: POST /v1/payouts

The payment methods that support payouts are: SEPA Payouts (MethodID = 1), Trustly (MethodID = 29), P24 (MethodID = 12) and Pay With Crypto (MethodID = 97). PLease keep in mind that is always mandatory to send the MethodID parameter in the payout request, otherwise the payout request will fail.

To initiate a payout, you must create a payout object. The parameters of the payout are sent in the message body as a JSON object.

A 201 HTTP response (Created) is returned if the payout was correctly initialized.

  • For SEPA Payouts (1) you need to send in the request the below parameters, including the Customer’s first and last name and Customer IBAN parameter.

    Request:

    POST https://paytest.smart2pay.com/v1/payouts
    Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
    
    {
      "Payout": {
        "MerchantTransactionID": "s2ptest_j1",
        "Amount": 2000,
        "Currency": "EUR",
        "MethodID": 1,
        "Customer": {
          "Email": "test@test.com",
          "FirstName": "John",
          "LastName": "Smith"
         },
        "BillingAddress": {
        "Country": "NL"
        },
        "Details": {
          "CustomerIBAN": "NL611904300234573201"
        }
      }
    }

    Response:

    HTTP/1.1 201 Created
    Content-Type: application/json; charset=utf-8
    
    {
      "Payout": {
        "ID": 376,
        "Created": "20200821131247",
        "MerchantTransactionID": "s2ptest_j1",
        "Amount": 2000,
        "Currency": "EUR",
        "MethodID": 1,
        "Description": null,
        "SiteID": 30201,
        "Customer": {
          "ID": 335,
          "MerchantCustomerID": null,
          "Email": "test@test.com",
          "FirstName": "John",
          "LastName": "Smith",
          "Gender": null,
          "SocialSecurityNumber": null,
          "Phone": null,
          "Company": null,
          "DateOfBirth": null
         },
        "BillingAddress": {
          "ID": 170,
          "City": null,
          "ZipCode": null,
          "State": null,
          "Street": null,
          "StreetNumber": null,
          "HouseNumber": null,
          "HouseExtension": null,
          "Country": "NL"
          },
         "Status": {
           "ID": 1,
           "Info": "Open",
           "Reasons": null
        }
      }
    }
  • For P24 Payouts (12) you need to send in the request the following parameters: Customer’s details first name, last name, email address and Customer IBAN parameter. Also, please send the Billing address parameters: Country, City, Street and ZipCode. These parameters will appear on the bank statement.

    Request:

    POST https://paytest.smart2pay.com/v1/payouts
    Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
    
    {
      "Payout": {
        "MerchantTransactionID": "s2ptest_a12",
        "Amount": 3,
        "Currency": "PLN",
        "Description": "Test Payout",
        "MethodID": "12",
        "Customer": {
          "Email": "test@test.com",
          "FirstName": "John",
          "LastName": "Smith"
         },
        "BillingAddress": {
          "City": "City",
          "ZipCode": "700000",
          "Street": "Street",
          "Country": "PL"
        },
        "Details": {
          "CustomerIBAN": "PL24109024027163352166834377"
          }
        }
      } 

    Response:

    HTTP/1.1 201 Created
    Content-Type: application/json; charset=utf-8
    
    {
        "Payout": {
            "ID": 4390,
            "Created": "20201216060630",
            "MerchantTransactionID": "s2ptest_a12",
            "Amount": "3",
            "Currency": "PLN",
            "MethodID": 12,
            "Description": "Test Payout",
            "SiteID": 30199,
            "Details": {
                "CustomerIBAN": "PL24109024027163352166834377"
            },
            "Customer": {
                "ID": 2677591,
                "MerchantCustomerID": null,
                "Email": "test@test.com",
                "FirstName": "John",
                "LastName": "Smith",
                "Gender": null,
                "SocialSecurityNumber": null,
                "Phone": null,
                "Company": null,
                "DateOfBirth": null
            },
            "BillingAddress": {
                "ID": 13966,
                "City": "City",
                "ZipCode": "700000",
                "State": null,
                "Street": "Street",
                "StreetNumber": null,
                "HouseNumber": null,
                "HouseExtension": null,
                "Country": "PL"
            },
            "Status": {
                "ID": 1,
                "Info": "Open",
                "Reasons": null
            }
        }
    }
  • For B2B payouts you can send in the request the Company parameter instead of FirstName and LastName parameters.

    Request:

    POST https://paytest.smart2pay.com/v1/payouts
    Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
    
    {
      "Payout": {
        "MerchantTransactionID": "s2ptest_j1",
        "Amount": 2000,
        "Currency": "EUR",
        "MethodID": 1,
        "Customer": {
          "Email": "test@test.com",
          "Company": "Test Company SRL"
         },
        "BillingAddress": {
        "Country": "NL"
        },
        "Details": {
          "CustomerIBAN": "NL611904300234573201"
        }
      }
    }

    Also, you can avoid sending each time the Customer and Country details by sending the CustomerID and BillingAddressID – the ones you receive in the initial Response.

    Request:

    POST https://paytest.smart2pay.com/v1/payouts
    Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
    
    {
      "Payout": {
        "MerchantTransactionID": "s2ptest_j1",
        "Amount": 2000,
        "Currency": "EUR",
        "MethodID": 1,
        "Customer": {
          "ID": 335
         },
        "BillingAddress": {
        "ID": 170
        },
        "Details": {
          "CustomerIBAN": "NL611904300234573201"
        }
      }
    }
  • For Trustly Payouts(29) you need to send in the request the Customer Bank Account ID parameter.

    Request:

    POST https://paytest.smart2pay.com/v1/payouts
    Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
    
    {
      "Payout": {
        "MerchantTransactionID": "s2ptest_j1",
        "Amount": 1000,
        "Currency": "EUR",      
        "MethodID": 29,
        "Customer": {    
          "Email": "youremail@email.com"   
        },
        "Details":{
          "CustomerBankAccountID": "3541977722"}
      }
    }

    Response:

    HTTP/1.1 201 Created
    Content-Type: application/json; charset=utf-8
    
    {
        "Payout": {
            "ID": 376,
            "Created": "20190507131247",
            "MerchantTransactionID": "s2ptest_j1",
            "Amount": "1000",
            "Currency": "EUR",           
            "MethodID": 29,
            "Description": null,
            "SiteID": 30201,
            "Details": {
                "CustomerBankAccountID": "3541977722"
            },
            "Customer": {
                "ID": 335,
                "MerchantCustomerID": null,
                "Email": "youremail@email.com",
                "FirstName": null,
                "LastName": null,
                "Gender": null,
                "SocialSecurityNumber": null,
                "Phone": null,
                "Company": null,
                "DateOfBirth": null
            },
            "BillingAddress": null,
            "Status": {
                "ID": 1,
                "Info": "Open",
                "Reasons": null
            }
        }
    }
  • For Pay With Crypto Payouts (97) you need to send in the request the mandatory parameters Crypto Address and Crypto Currency.

    Request:

    POST https://paytest.smart2pay.com/v1/payouts
    Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
    
    {
      "Payout": {
        "MerchantTransactionID": "s2p_test_restcd156462",
        "Amount": 3000,
        "Currency": "EUR",
        "Description": "Test Payout",
        "MethodID": "97",
        "Details": {
          "CryptoAddress": "0x9006203f86D7381a3d227fe54310C9fD4e2d1551",
          "CryptoCurrency": "ETH"
          }
        }
      } 

    Response:

    HTTP/1.1 201 Created
    Content-Type: application/json; charset=utf-8
    
    {
        "Payout": {
            "ID": 4989,
            "Created": "20210312154614",
            "MerchantTransactionID": "s2p_test_restcd156462",
            "Amount": "3000",
            "Currency": "EUR",
            "MethodID": 97,
            "Description": "Test Payout",
            "SiteID": 30201,
            "Details": {
                "CryptoAddress": "0x9006203f86D7381a3d227fe54310C9fD4e2d1551",
                "CryptoCurrency": "ETH"
            },
            "Customer": null,
            "BillingAddress": null,
            "Status": {
                "ID": 1,
                "Info": "Open",
                "Reasons": null
            },
            "MethodTransactionID": null
        }
    }

In case of an API error, an HTTP 4xx (you did something wrong) or HTTP 5xx (we did something wrong) response is returned.

For more information about the reasons of a wrong request response see our section GlobalPay Return Codes.

Request:

POST https://paytest.smart2pay.com/v1/payouts
Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=

{
  "Payout": {
    "MerchantTransactionID": "s2ptest_j2",
    "Amount": 1000,
    "Currency": "EUR",      
    "Customer": {    
      "Email": "youremail@email.com"   
    },
    "Details":{
      "CustomerBankAccountID": "3541977722"
    }
  }
}

Response:

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8

{
    "Payout": {
        "ID": 0,
        "Created": null,
        "MerchantTransactionID": "s2ptest_j2",
        "Amount": "1000",
        "Currency": null,
        "Description": null,
        "SiteID": 30201,
        "Details": {
            "CustomerBankAccountID": "3541977722"
        },
        "Customer": {
            "MerchantCustomerID": null,
            "Email": "youremail@email.com",
            "FirstName": null,
            "LastName": null,
            "Gender": null,
            "SocialSecurityNumber": null,
            "Phone": null,
            "Company": null,
            "DateOfBirth": null
        },
        "BillingAddress": null,
        "Status": {
            "ID": null,
            "Info": null,
            "Reasons": [
                {
                    "Code": "1",
                    "Info": "Missing parameter - MethodID"
                }
            ]
        }
    }
}