Pay with an agent token
curl --request POST \
--url https://sendmypaper.com/v1/orders/{id}/pay \
--header 'Content-Type: application/json' \
--data '
{
"shared_payment_token": "spt_1Q..."
}
'import requests
url = "https://sendmypaper.com/v1/orders/{id}/pay"
payload = { "shared_payment_token": "spt_1Q..." }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({shared_payment_token: 'spt_1Q...'})
};
fetch('https://sendmypaper.com/v1/orders/{id}/pay', 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://sendmypaper.com/v1/orders/{id}/pay",
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([
'shared_payment_token' => 'spt_1Q...'
]),
CURLOPT_HTTPHEADER => [
"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://sendmypaper.com/v1/orders/{id}/pay"
payload := strings.NewReader("{\n \"shared_payment_token\": \"spt_1Q...\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://sendmypaper.com/v1/orders/{id}/pay")
.header("Content-Type", "application/json")
.body("{\n \"shared_payment_token\": \"spt_1Q...\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sendmypaper.com/v1/orders/{id}/pay")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"shared_payment_token\": \"spt_1Q...\"\n}"
response = http.request(request)
puts response.read_body{
"id": "ord_8k2m4qz7c1x9b3vd",
"object": "postcard",
"product": "postcard_4x6",
"status": "awaiting_payment",
"status_detail": "<string>",
"price": {
"amount_cents": 123,
"currency": "<string>",
"display": "<string>"
},
"to": {
"name": "<string>",
"line1": "<string>",
"city": "<string>",
"state": "CA",
"zip": "94105",
"company": "<string>",
"line2": "<string>"
},
"from": {
"name": "<string>",
"line1": "<string>",
"city": "<string>",
"state": "CA",
"zip": "94105",
"company": "<string>",
"line2": "<string>"
},
"content": {},
"checkout_url": "<string>",
"order_url": "<string>",
"preview_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"paid_at": "2023-11-07T05:31:56Z",
"mailed_at": "2023-11-07T05:31:56Z",
"events": [
{
"at": "<string>",
"status": "<string>",
"note": "<string>"
}
]
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"fields": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"fields": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"fields": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}Pay with an agent token
Pay an unpaid order with a Stripe shared payment token (spt_…) the user approved, scoped to at least the order amount in USD. Safe to retry with the same token.
POST
/
orders
/
{id}
/
pay
Pay with an agent token
curl --request POST \
--url https://sendmypaper.com/v1/orders/{id}/pay \
--header 'Content-Type: application/json' \
--data '
{
"shared_payment_token": "spt_1Q..."
}
'import requests
url = "https://sendmypaper.com/v1/orders/{id}/pay"
payload = { "shared_payment_token": "spt_1Q..." }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({shared_payment_token: 'spt_1Q...'})
};
fetch('https://sendmypaper.com/v1/orders/{id}/pay', 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://sendmypaper.com/v1/orders/{id}/pay",
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([
'shared_payment_token' => 'spt_1Q...'
]),
CURLOPT_HTTPHEADER => [
"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://sendmypaper.com/v1/orders/{id}/pay"
payload := strings.NewReader("{\n \"shared_payment_token\": \"spt_1Q...\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://sendmypaper.com/v1/orders/{id}/pay")
.header("Content-Type", "application/json")
.body("{\n \"shared_payment_token\": \"spt_1Q...\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sendmypaper.com/v1/orders/{id}/pay")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"shared_payment_token\": \"spt_1Q...\"\n}"
response = http.request(request)
puts response.read_body{
"id": "ord_8k2m4qz7c1x9b3vd",
"object": "postcard",
"product": "postcard_4x6",
"status": "awaiting_payment",
"status_detail": "<string>",
"price": {
"amount_cents": 123,
"currency": "<string>",
"display": "<string>"
},
"to": {
"name": "<string>",
"line1": "<string>",
"city": "<string>",
"state": "CA",
"zip": "94105",
"company": "<string>",
"line2": "<string>"
},
"from": {
"name": "<string>",
"line1": "<string>",
"city": "<string>",
"state": "CA",
"zip": "94105",
"company": "<string>",
"line2": "<string>"
},
"content": {},
"checkout_url": "<string>",
"order_url": "<string>",
"preview_url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"paid_at": "2023-11-07T05:31:56Z",
"mailed_at": "2023-11-07T05:31:56Z",
"events": [
{
"at": "<string>",
"status": "<string>",
"note": "<string>"
}
]
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"fields": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"fields": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"fields": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}Path Parameters
Body
application/json
Example:
"spt_1Q..."
Response
Paid order
Example:
"ord_8k2m4qz7c1x9b3vd"
Available options:
postcard, letter Available options:
postcard_4x6, postcard_6x9, letter Available options:
awaiting_payment, paid, printing, mailed, cancelled, refunded Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Where the person pays. Null once paid or closed. Never expires.
Human-readable status page
Exact print preview
Show child attributes
Show child attributes