Create Payment via Tokenisation
POSThttps://api.cleverhub.co/api/v2/cards/create_payment
This endpoint allows you to create a card payment intent using a previously tokenised or newly provided card.
token
object is required and should contain aid
andtype
card method reference.webhook_notification
object is optional. If not provided, we will use your default webhook configuration that you've previously set up. If provided, we will send webhook notifications to the specified endpoint for this specific payment.- When the card requires 3DS authentication, we will return a
pay_code
object containing{3ds_url: ''}
. You must direct your customer to this URL to authorise the payment. After successful authorisation, customer back toreturn_url
and you can use the capture API normally to collect the payment from the user.
Request
- application/json
Bodyrequired
amountnumberrequired
Amount in smallest currency unit (e.g., cents)
Example:
1000
currencystringrequired
ISO 4217 currency code (e.g., AUD, USD)
Example:
USD
token objectrequired
external_idstringrequired
External ID
Example:
order_test_xxx
return_urlstringrequired
Return URL
Example:
https://example.com
webhook_notification object
Responses
- 200
- 400
- 401
- 422
Payment created
- application/json
- Schema
- Example (auto)
- Example
Schema
uuidstring
Example:
7PPPMXIGH
namestring
Example:
Testing
emailstring
Example:
test@example.com
external_idstring
Example:
wc_order_6C1hcvg4T7Pom
statusstring
Possible values: [pending
, authorised
, waiting
, received
, expired
, return_pending
, return_expired
, partially_refunded
, return_received
, return_rejected
, failed
, in_dispute
, dispute_lost
]
Example:
waiting
pay_code objectnullable
currencystring
Example:
USD
amountnumber
Example:
10000
totalnumber
Example:
10000
paid_amountnumber
Example:
0
is_refundableboolean
Example:
true
payment_methodstring
Example:
card
expired_atstring
Example:
webhook_notification object
refund_information object
sender_details object
created_atdate-time
Example:
2025-05-28T04:22:21.567+0000
{
"uuid": "7PPPMXIGH",
"name": "Testing",
"email": "test@example.com",
"external_id": "wc_order_6C1hcvg4T7Pom",
"status": "waiting",
"pay_code": {
"3ds_url": "https://3ds-auth.example.com/verify"
},
"currency": "USD",
"amount": 10000,
"total": 10000,
"paid_amount": 0,
"is_refundable": true,
"payment_method": "card",
"expired_at": "",
"webhook_notification": {
"endpoint_url": "https://webhook.site/456adb8f-4407-4bce-90fe-2c431db19696",
"authorization_header": "****"
},
"refund_information": {
"total_amount": 200,
"refund_amount": 50,
"description": "Testing refund"
},
"sender_details": {
"card": {
"card_type": "card",
"card_brand": "visa",
"card_last_4": "4242"
}
},
"created_at": "2025-05-28T04:22:21.567+0000"
}
{
"example": {
"uuid": "PSADT5CE",
"name": "Hello Clever",
"email": "test@example.com",
"external_id": "order_test_xxx",
"status": "pending",
"pay_code": {
"3ds_url": "https://3ds-auth.example.com/verify"
},
"currency": "USD",
"amount": "200.0",
"total": "200.0",
"paid_amount": "0.0",
"is_refundable": false,
"payment_method": "card",
"expired_at": "",
"webhook_notification": {
"endpoint_url": "https://webhook.site/12da7803-c4cf-4f32-812d-aaeaecf20d9d",
"authorization_header": "****"
},
"refund_information": null,
"sender_details": {
"card": {
"card_type": "card",
"card_brand": "visa",
"card_last_4": "1111"
}
},
"created_at": "2025-05-29T01:29:16.826+0000"
}
}
Bad Request
Unauthorized
- application/json
- Schema
- Example (auto)
- Example
Schema
errors object
{
"errors": {
"code": "string",
"message": "string"
}
}
{
"errors": {
"code": "REQUIRE_LOGIN",
"message": "Not Authorised"
}
}
Unprocessable Entity
- application/json
- Schema
- Example (auto)
Schema
errors object
{
"errors": {
"message": "Invalid amount. Please enter a value greater than 0.5."
}
}
Authorization: app-id
name: app-idtype: apiKeydescription: The app-id is registered and secured inside Hello Clever system and only required when client has initiated or in the middle of the transaction.in: header
name: secret-keytype: apiKeydescription: The secret-key is our client's secret of the source. Required if a publishable key is used to retrieve the source.in: header
- csharp
- curl
- dart
- go
- http
- java
- javascript
- kotlin
- c
- nodejs
- objective-c
- ocaml
- php
- powershell
- python
- r
- ruby
- rust
- shell
- swift
- HTTPCLIENT
- RESTSHARP
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.cleverhub.co/api/v2/cards/create_payment");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("app-id", "<app-id>");
request.Headers.Add("secret-key", "<app-id>");
var content = new StringContent("{\n \"amount\": 1000,\n \"currency\": \"USD\",\n \"token\": {\n \"id\": \"tok_dfe1988a1ffc0d6562d3\",\n \"type\": \"card\"\n },\n \"external_id\": \"order_test_xxx\",\n \"return_url\": \"https://example.com\",\n \"webhook_notification\": {\n \"endpoint_url\": \"https://merchant.com/webhook\",\n \"authorization_header\": \"Bearer xxxxxx\"\n }\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
ResponseClear