Payments
Create payment profile
Creates a payment profile and links it to the given unit rental record. Use this to attach a payment method to a tenant’s unit. See the Credit Card Integrations Guide for tokenization and processor setup details.
POST
/
api
/
{portfolio}
/
portfolios
/
v1
/
payment
/
profile
Create payment profile
curl --request POST \
--url https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"lastFour": "<string>",
"processorToken": "<string>",
"processorAuthTransactionId": "<string>",
"processorTokenId": "<string>",
"billingFirstName": "<string>",
"billingLastName": "<string>",
"billingCity": "<string>",
"billingZip": "<string>",
"billingState": "<string>",
"autopayEnabled": true,
"unitRentalRecordUuid": "<string>",
"billingAddressLine1": "<string>",
"billingAddressLine2": "<string>"
}
'import requests
url = "https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile"
payload = {
"lastFour": "<string>",
"processorToken": "<string>",
"processorAuthTransactionId": "<string>",
"processorTokenId": "<string>",
"billingFirstName": "<string>",
"billingLastName": "<string>",
"billingCity": "<string>",
"billingZip": "<string>",
"billingState": "<string>",
"autopayEnabled": True,
"unitRentalRecordUuid": "<string>",
"billingAddressLine1": "<string>",
"billingAddressLine2": "<string>"
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
lastFour: '<string>',
processorToken: '<string>',
processorAuthTransactionId: '<string>',
processorTokenId: '<string>',
billingFirstName: '<string>',
billingLastName: '<string>',
billingCity: '<string>',
billingZip: '<string>',
billingState: '<string>',
autopayEnabled: true,
unitRentalRecordUuid: '<string>',
billingAddressLine1: '<string>',
billingAddressLine2: '<string>'
})
};
fetch('https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile', 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://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile",
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([
'lastFour' => '<string>',
'processorToken' => '<string>',
'processorAuthTransactionId' => '<string>',
'processorTokenId' => '<string>',
'billingFirstName' => '<string>',
'billingLastName' => '<string>',
'billingCity' => '<string>',
'billingZip' => '<string>',
'billingState' => '<string>',
'autopayEnabled' => true,
'unitRentalRecordUuid' => '<string>',
'billingAddressLine1' => '<string>',
'billingAddressLine2' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$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://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile"
payload := strings.NewReader("{\n \"lastFour\": \"<string>\",\n \"processorToken\": \"<string>\",\n \"processorAuthTransactionId\": \"<string>\",\n \"processorTokenId\": \"<string>\",\n \"billingFirstName\": \"<string>\",\n \"billingLastName\": \"<string>\",\n \"billingCity\": \"<string>\",\n \"billingZip\": \"<string>\",\n \"billingState\": \"<string>\",\n \"autopayEnabled\": true,\n \"unitRentalRecordUuid\": \"<string>\",\n \"billingAddressLine1\": \"<string>\",\n \"billingAddressLine2\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
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://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"lastFour\": \"<string>\",\n \"processorToken\": \"<string>\",\n \"processorAuthTransactionId\": \"<string>\",\n \"processorTokenId\": \"<string>\",\n \"billingFirstName\": \"<string>\",\n \"billingLastName\": \"<string>\",\n \"billingCity\": \"<string>\",\n \"billingZip\": \"<string>\",\n \"billingState\": \"<string>\",\n \"autopayEnabled\": true,\n \"unitRentalRecordUuid\": \"<string>\",\n \"billingAddressLine1\": \"<string>\",\n \"billingAddressLine2\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"lastFour\": \"<string>\",\n \"processorToken\": \"<string>\",\n \"processorAuthTransactionId\": \"<string>\",\n \"processorTokenId\": \"<string>\",\n \"billingFirstName\": \"<string>\",\n \"billingLastName\": \"<string>\",\n \"billingCity\": \"<string>\",\n \"billingZip\": \"<string>\",\n \"billingState\": \"<string>\",\n \"autopayEnabled\": true,\n \"unitRentalRecordUuid\": \"<string>\",\n \"billingAddressLine1\": \"<string>\",\n \"billingAddressLine2\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"paymentProfileUuid": "<string>"
}Headers
Api key required to authenticate your request. Please reach out to monument for a key.
Example:
"monument-2230012-2312321"
Path Parameters
Body
application/json
Available options:
CREDIT/DEBIT, ACH Will set this payment method to be used for future bills for this unit.
UUID of the unit rental record to link the payment profile to
Response
Payment profile created and linked to the unit rental record
UUID of the created payment profile
⌘I
Create payment profile
curl --request POST \
--url https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile \
--header 'Content-Type: application/json' \
--header 'x-api-key: <x-api-key>' \
--data '
{
"lastFour": "<string>",
"processorToken": "<string>",
"processorAuthTransactionId": "<string>",
"processorTokenId": "<string>",
"billingFirstName": "<string>",
"billingLastName": "<string>",
"billingCity": "<string>",
"billingZip": "<string>",
"billingState": "<string>",
"autopayEnabled": true,
"unitRentalRecordUuid": "<string>",
"billingAddressLine1": "<string>",
"billingAddressLine2": "<string>"
}
'import requests
url = "https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile"
payload = {
"lastFour": "<string>",
"processorToken": "<string>",
"processorAuthTransactionId": "<string>",
"processorTokenId": "<string>",
"billingFirstName": "<string>",
"billingLastName": "<string>",
"billingCity": "<string>",
"billingZip": "<string>",
"billingState": "<string>",
"autopayEnabled": True,
"unitRentalRecordUuid": "<string>",
"billingAddressLine1": "<string>",
"billingAddressLine2": "<string>"
}
headers = {
"x-api-key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
lastFour: '<string>',
processorToken: '<string>',
processorAuthTransactionId: '<string>',
processorTokenId: '<string>',
billingFirstName: '<string>',
billingLastName: '<string>',
billingCity: '<string>',
billingZip: '<string>',
billingState: '<string>',
autopayEnabled: true,
unitRentalRecordUuid: '<string>',
billingAddressLine1: '<string>',
billingAddressLine2: '<string>'
})
};
fetch('https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile', 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://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile",
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([
'lastFour' => '<string>',
'processorToken' => '<string>',
'processorAuthTransactionId' => '<string>',
'processorTokenId' => '<string>',
'billingFirstName' => '<string>',
'billingLastName' => '<string>',
'billingCity' => '<string>',
'billingZip' => '<string>',
'billingState' => '<string>',
'autopayEnabled' => true,
'unitRentalRecordUuid' => '<string>',
'billingAddressLine1' => '<string>',
'billingAddressLine2' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <x-api-key>"
],
]);
$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://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile"
payload := strings.NewReader("{\n \"lastFour\": \"<string>\",\n \"processorToken\": \"<string>\",\n \"processorAuthTransactionId\": \"<string>\",\n \"processorTokenId\": \"<string>\",\n \"billingFirstName\": \"<string>\",\n \"billingLastName\": \"<string>\",\n \"billingCity\": \"<string>\",\n \"billingZip\": \"<string>\",\n \"billingState\": \"<string>\",\n \"autopayEnabled\": true,\n \"unitRentalRecordUuid\": \"<string>\",\n \"billingAddressLine1\": \"<string>\",\n \"billingAddressLine2\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<x-api-key>")
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://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile")
.header("x-api-key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"lastFour\": \"<string>\",\n \"processorToken\": \"<string>\",\n \"processorAuthTransactionId\": \"<string>\",\n \"processorTokenId\": \"<string>\",\n \"billingFirstName\": \"<string>\",\n \"billingLastName\": \"<string>\",\n \"billingCity\": \"<string>\",\n \"billingZip\": \"<string>\",\n \"billingState\": \"<string>\",\n \"autopayEnabled\": true,\n \"unitRentalRecordUuid\": \"<string>\",\n \"billingAddressLine1\": \"<string>\",\n \"billingAddressLine2\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.prd.monument.io/api/{portfolio}/portfolios/v1/payment/profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"lastFour\": \"<string>\",\n \"processorToken\": \"<string>\",\n \"processorAuthTransactionId\": \"<string>\",\n \"processorTokenId\": \"<string>\",\n \"billingFirstName\": \"<string>\",\n \"billingLastName\": \"<string>\",\n \"billingCity\": \"<string>\",\n \"billingZip\": \"<string>\",\n \"billingState\": \"<string>\",\n \"autopayEnabled\": true,\n \"unitRentalRecordUuid\": \"<string>\",\n \"billingAddressLine1\": \"<string>\",\n \"billingAddressLine2\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"paymentProfileUuid": "<string>"
}
