Complete Customer Payment Method
Intent
Runs the complete customer payment method action.
When to call it
Call this when your workflow reaches the point where it must complete customer payment method.
Access boundary
Authorize the request with a token that carries customer_portal:write.
Successful result
A successful request returns 201. The response schema below defines the body your integration receives.
Operational notes
Confirm a payment method for the authenticated customer.
POST
/
v1
/
customer-portal
/
customers
/
me
/
payment-methods
/
confirm
Complete Customer Payment Method
curl --request POST \
--url https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"setup_intent_id": "<string>",
"set_default": true
}
'import requests
url = "https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm"
payload = {
"setup_intent_id": "<string>",
"set_default": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({setup_intent_id: '<string>', set_default: true})
};
fetch('https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'setup_intent_id' => '<string>',
'set_default' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm"
payload := strings.NewReader("{\n \"setup_intent_id\": \"<string>\",\n \"set_default\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"setup_intent_id\": \"<string>\",\n \"set_default\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"setup_intent_id\": \"<string>\",\n \"set_default\": true\n}"
response = http.request(request)
puts response.read_body{
"status": "succeeded",
"payment_method": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"processor": "stripe",
"customer_id": "<string>",
"type": "card",
"method_metadata": {
"brand": "<string>",
"last4": "<string>",
"exp_month": 123,
"exp_year": 123,
"wallet": "<string>"
}
}
}{
"error": "CustomerNotReady",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
customer_sessionmember_session
Customer session tokens are specific tokens that are used to authenticate customers on your organization. You can create those sessions programmatically using the Create Customer Session endpoint.
⌘I
Complete Customer Payment Method
curl --request POST \
--url https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"setup_intent_id": "<string>",
"set_default": true
}
'import requests
url = "https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm"
payload = {
"setup_intent_id": "<string>",
"set_default": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({setup_intent_id: '<string>', set_default: true})
};
fetch('https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'setup_intent_id' => '<string>',
'set_default' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm"
payload := strings.NewReader("{\n \"setup_intent_id\": \"<string>\",\n \"set_default\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"setup_intent_id\": \"<string>\",\n \"set_default\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getruba.com/v1/customer-portal/customers/me/payment-methods/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"setup_intent_id\": \"<string>\",\n \"set_default\": true\n}"
response = http.request(request)
puts response.read_body{
"status": "succeeded",
"payment_method": {
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"modified_at": "2023-11-07T05:31:56Z",
"processor": "stripe",
"customer_id": "<string>",
"type": "card",
"method_metadata": {
"brand": "<string>",
"last4": "<string>",
"exp_month": 123,
"exp_year": 123,
"wallet": "<string>"
}
}
}{
"error": "CustomerNotReady",
"detail": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}