3.21. /api/v4/process-recurring-payment

Introduction

Process recurring payment is initiated through HTTPS POST request by using URLs and the parameters specified below. Use OAuth RSA-SHA256 for authentication.

API URLs

Integration

Production

https://sandbox.solidpayments.com/paynet/api/v4/process-recurring-payment/ENDPOINTID

https://gate.solidpayments.com/paynet/api/v4/process-recurring-payment/ENDPOINTID

Request Parameters

Note

Request must have content-type=application/x-www-form-urlencoded and Authorization headers.

Parameter Name

Description

Value

client-orderid

Connecting Party order ID.

Necessity: Required
Type: String
Length: 128

Merchant login

Connecting Party’s login name.

Necessity: Required
Type: String
Length: 20

Endpoint

Endpoint ID.

Necessity: Required
Type: Numeric
Length: 10

recurring-payment-id

Recurring ID assigned to the order by QA.

Necessity: Required
Type: String
Length: 128

amount

Amount of currency must be the same as currency on the project assigned. Upon reaching finish date, Recurring payment will go into stop status.

Necessity: Required
Type: String
Length: 255

order_desc

Description of Recurring payment.

Necessity: Optional
Type: Numeric
Length: 65K

first-name

Payer`s first-name.

Necessity: Optional
Type: String
Length: 128

last-name

Payer`s last-name.

Necessity: Optional
Type: String
Length: 128

country

Payer`s country.

Necessity: Optional
Type: String
Length: 2

city

Payer`s city.

Necessity: Optional
Type: String
Length: 128

zip-code

Payer`s zip-code.

Necessity: Optional
Type: String
Length: 10

address1

Payer`s address.

Necessity: Optional
Type: String
Length: 256

state

Payer`s state.

Necessity: Optional
Type: String
Length: 2-3

phone

Payer`s phone number.

Necessity: Optional
Type: String
Length: 128

email

Payer`s email.

Necessity: Optional
Type: String
Length: 128

customer-ip

Payer`s IP address.

Necessity: Optional
Type: String
Length: 45

currency

Currency type.

Necessity: Optional
Type: String
Length: 3

purpose

Purpose of transaction.

Necessity: Optional
Type: String
Length: 128

birthday

Payer`s birthday date.

Necessity: Optional
Type: 8/Numeric, YYYYMMDD
Length: 8

ssn

Social security number field.

Necessity: Optional
Type: String
Length: 32

notify_url

Notify url field. server_callback_url parameter can also be used. For more information please see Connecting Party Callbacks.

Necessity: Optional
Type: String
Length: 1024

server_callback_url

URL, where the transaction status is sent to. Connecting Party may use server callback URL for custom processing of the transaction completion, e.g. to collect payment data in the Connecting Party’s information system. For the list of parameters which come along with server callback to server_callback_url refer to Connecting Party callback parameters.

Necessity: Optional
Type: String
Length: 128

Response Parameters

Note

Response has Content-Type: text/html;charset=utf-8 header. All fields are x-www-form-urlencoded, with (0xA) character at the end of each parameter’s value.

Response Parameters

Description

type

The type of response. Example: process-recurring-payment-response

status

See Status List for details

serial-number

Unique number assigned by Solid Payments server to particular request from the Merchant

Request Example

POST /paynet/api/v4/process-recurring-payment/ HTTP/1.1
User-Agent: curl/8.4.0
Accept: */*
Authorization: OAuth oauth_consumer_key="ErwinTestMerchant", oauth_nonce="XGsxKTfd4uiaQKOSyXkHQwKxFqLCEKRz", oauth_signature="KX7KEjFUEJo8rLJ2PvusGDlu5cxqMm%2BU%2Bn%2F1KxH18QUeZ57QghfnXyiXKCxwAr76uxMk9X10QL8YI4kuEHVmxThIomtIZML3yRLESneHNqZzlwXvTSG5o%2B7DTSdAeNGZ40PIbF4XAUzwp%2FQbpYGWBS4Yk36%2BPQbziJlsFa21gRo7e03fizxPEIYi1algEqOT5uu%2F07Yci6NsSyGGMGo4vyDhqPMLuDcaTeO%2Fzr51RfRa4jh2bT4tUriZLVrjYP0AJeHGlZdosTkqEyVAz5Q5yD67xmjUGlW4luezOWdR70wrfQ8JZ7QuXzueAb9TqyZfi%2BvCD4MrhXG299ujWUUtZ%2F8qi09p%2F7GmBiFSud7wgMjPGOC%2BijBEFIpsfiBFzd6%2FX7MBLAdTpHXrExT2C71dJysde31isAMVuIIuvXogY7YE0ZttWY1oYqcWDNSWXsUx5pQTjbBf1vyJB3CqtAFVFi6LwckqsYTAXkxfp%2B2IgFFhadEvf35XzFPv%2FEjsTqRLJuPYBa85mK9vaY7WJRtX89TjSdEPulFnz1EEFg5KHe5WxVp9GFw2XqLneqBu%2FwGAGg3NXRumBMHK3E%2Bh96cVdU5b3AkqVjS2Q36jpQtAhUIIGYyT02n4W9avhw2cHCJzErqGjALHJjkFQD1bhDRKyTm1Fqeh%2BplDaPwDKjy5EHY%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1721316898", oauth_version="1.0"
Content-Length: 407
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive

address1=1234%20Peace%20street
&amount=10
&birthday=1980-01-02
&city=Chicago
&client-orderid=1575634981130
&country=US
&currency=USD
&customer-ip=1.2.3.4
&email=john.smith%40example.com
&first-name=John
&last-name=Smith
&notify-url=http%3A%2F%2Fexample.com%2Fnotify-me
&payment-description=testing%20purposes
&phone=12345678
&purpose=No%20purpose%20at%20all
&recurring-payment-id=1492124
&ssn=12345
&state=IL
&zip-code=123456

Success Response Example

HTTP/1.1 200
Server: server
Date: Thu, 18 Jul 2024 15:35:46 GMT
Content-Type: text/html;charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=60
Vary: Accept-Encoding
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Content-Language: en-US
Strict-Transport-Security: max-age=31536000
Content-Length: 110

type=process-recurring-payment-response
&serial-number=00000000-0000-0000-0000-000002f36d8d
&status=processing

Fail Response Example

HTTP/1.1 500
Server: server
Date: Thu, 18 Jul 2024 15:39:05 GMT
Content-Length: 61
Connection: keep-alive
Keep-Alive: timeout=60
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

Internal server error [b2a06c5a-c770-4c01-b32c-e4fcb1da4cd6]

Postman Collection

Request Builder

Debug form
URL
client-orderid
Merchant login
Endpoint
recurring-payment-id
amount
order_desc
first-name
last-name
country
city
zip-code
address1
state
phone
e-mail
customer-ip
currency
purpose
birthday
ssn
notify_url
server_callback_url

Normalized parameters string to sign, according to OAuth 1.0a rules
POST body parameters to submit
OAuth 1.0a headers to submit.
HEX Encoded Signature
* HEX encoded string is for debug purposes only. You shouldn't send this string to the server neither in HEX nor in Encoded HEX representation.
Base64 Encoded Signature
* Binary RSA-SHA256 signature directly encoded in base64 should be sent to the server.