curl --request POST \
--url https://api.metronome.com/v1/credits/createGrant \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_id": "9b85c1c1-5238-4f2a-a409-61412905e1e1",
"grant_amount": {
"amount": 1000,
"credit_type_id": "5ae401dc-a648-4b49-9ac3-391bb5bc4d7b"
},
"name": "Acme Corp Promotional Credit Grant",
"reason": "Incentivize new customer",
"effective_at": "2022-02-01T00:00:00Z",
"expires_at": "2022-04-01T00:00:00Z",
"paid_amount": {
"amount": 5000,
"credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2"
},
"priority": 0.5,
"credit_grant_type": "trial"
}
'import requests
url = "https://api.metronome.com/v1/credits/createGrant"
payload = {
"customer_id": "9b85c1c1-5238-4f2a-a409-61412905e1e1",
"grant_amount": {
"amount": 1000,
"credit_type_id": "5ae401dc-a648-4b49-9ac3-391bb5bc4d7b"
},
"name": "Acme Corp Promotional Credit Grant",
"reason": "Incentivize new customer",
"effective_at": "2022-02-01T00:00:00Z",
"expires_at": "2022-04-01T00:00:00Z",
"paid_amount": {
"amount": 5000,
"credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2"
},
"priority": 0.5,
"credit_grant_type": "trial"
}
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({
customer_id: '9b85c1c1-5238-4f2a-a409-61412905e1e1',
grant_amount: {amount: 1000, credit_type_id: '5ae401dc-a648-4b49-9ac3-391bb5bc4d7b'},
name: 'Acme Corp Promotional Credit Grant',
reason: 'Incentivize new customer',
effective_at: '2022-02-01T00:00:00Z',
expires_at: '2022-04-01T00:00:00Z',
paid_amount: {amount: 5000, credit_type_id: '2714e483-4ff1-48e4-9e25-ac732e8f24f2'},
priority: 0.5,
credit_grant_type: 'trial'
})
};
fetch('https://api.metronome.com/v1/credits/createGrant', 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.metronome.com/v1/credits/createGrant",
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([
'customer_id' => '9b85c1c1-5238-4f2a-a409-61412905e1e1',
'grant_amount' => [
'amount' => 1000,
'credit_type_id' => '5ae401dc-a648-4b49-9ac3-391bb5bc4d7b'
],
'name' => 'Acme Corp Promotional Credit Grant',
'reason' => 'Incentivize new customer',
'effective_at' => '2022-02-01T00:00:00Z',
'expires_at' => '2022-04-01T00:00:00Z',
'paid_amount' => [
'amount' => 5000,
'credit_type_id' => '2714e483-4ff1-48e4-9e25-ac732e8f24f2'
],
'priority' => 0.5,
'credit_grant_type' => 'trial'
]),
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.metronome.com/v1/credits/createGrant"
payload := strings.NewReader("{\n \"customer_id\": \"9b85c1c1-5238-4f2a-a409-61412905e1e1\",\n \"grant_amount\": {\n \"amount\": 1000,\n \"credit_type_id\": \"5ae401dc-a648-4b49-9ac3-391bb5bc4d7b\"\n },\n \"name\": \"Acme Corp Promotional Credit Grant\",\n \"reason\": \"Incentivize new customer\",\n \"effective_at\": \"2022-02-01T00:00:00Z\",\n \"expires_at\": \"2022-04-01T00:00:00Z\",\n \"paid_amount\": {\n \"amount\": 5000,\n \"credit_type_id\": \"2714e483-4ff1-48e4-9e25-ac732e8f24f2\"\n },\n \"priority\": 0.5,\n \"credit_grant_type\": \"trial\"\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.metronome.com/v1/credits/createGrant")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_id\": \"9b85c1c1-5238-4f2a-a409-61412905e1e1\",\n \"grant_amount\": {\n \"amount\": 1000,\n \"credit_type_id\": \"5ae401dc-a648-4b49-9ac3-391bb5bc4d7b\"\n },\n \"name\": \"Acme Corp Promotional Credit Grant\",\n \"reason\": \"Incentivize new customer\",\n \"effective_at\": \"2022-02-01T00:00:00Z\",\n \"expires_at\": \"2022-04-01T00:00:00Z\",\n \"paid_amount\": {\n \"amount\": 5000,\n \"credit_type_id\": \"2714e483-4ff1-48e4-9e25-ac732e8f24f2\"\n },\n \"priority\": 0.5,\n \"credit_grant_type\": \"trial\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.metronome.com/v1/credits/createGrant")
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 \"customer_id\": \"9b85c1c1-5238-4f2a-a409-61412905e1e1\",\n \"grant_amount\": {\n \"amount\": 1000,\n \"credit_type_id\": \"5ae401dc-a648-4b49-9ac3-391bb5bc4d7b\"\n },\n \"name\": \"Acme Corp Promotional Credit Grant\",\n \"reason\": \"Incentivize new customer\",\n \"effective_at\": \"2022-02-01T00:00:00Z\",\n \"expires_at\": \"2022-04-01T00:00:00Z\",\n \"paid_amount\": {\n \"amount\": 5000,\n \"credit_type_id\": \"2714e483-4ff1-48e4-9e25-ac732e8f24f2\"\n },\n \"priority\": 0.5,\n \"credit_grant_type\": \"trial\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "8b24d3dc-6db5-432d-9416-8439b3fbf242"
}
}Create a credit grant
Create a new credit grant. This is a Plans (deprecated) endpoint. New clients should implement using Contracts.
curl --request POST \
--url https://api.metronome.com/v1/credits/createGrant \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_id": "9b85c1c1-5238-4f2a-a409-61412905e1e1",
"grant_amount": {
"amount": 1000,
"credit_type_id": "5ae401dc-a648-4b49-9ac3-391bb5bc4d7b"
},
"name": "Acme Corp Promotional Credit Grant",
"reason": "Incentivize new customer",
"effective_at": "2022-02-01T00:00:00Z",
"expires_at": "2022-04-01T00:00:00Z",
"paid_amount": {
"amount": 5000,
"credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2"
},
"priority": 0.5,
"credit_grant_type": "trial"
}
'import requests
url = "https://api.metronome.com/v1/credits/createGrant"
payload = {
"customer_id": "9b85c1c1-5238-4f2a-a409-61412905e1e1",
"grant_amount": {
"amount": 1000,
"credit_type_id": "5ae401dc-a648-4b49-9ac3-391bb5bc4d7b"
},
"name": "Acme Corp Promotional Credit Grant",
"reason": "Incentivize new customer",
"effective_at": "2022-02-01T00:00:00Z",
"expires_at": "2022-04-01T00:00:00Z",
"paid_amount": {
"amount": 5000,
"credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2"
},
"priority": 0.5,
"credit_grant_type": "trial"
}
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({
customer_id: '9b85c1c1-5238-4f2a-a409-61412905e1e1',
grant_amount: {amount: 1000, credit_type_id: '5ae401dc-a648-4b49-9ac3-391bb5bc4d7b'},
name: 'Acme Corp Promotional Credit Grant',
reason: 'Incentivize new customer',
effective_at: '2022-02-01T00:00:00Z',
expires_at: '2022-04-01T00:00:00Z',
paid_amount: {amount: 5000, credit_type_id: '2714e483-4ff1-48e4-9e25-ac732e8f24f2'},
priority: 0.5,
credit_grant_type: 'trial'
})
};
fetch('https://api.metronome.com/v1/credits/createGrant', 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.metronome.com/v1/credits/createGrant",
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([
'customer_id' => '9b85c1c1-5238-4f2a-a409-61412905e1e1',
'grant_amount' => [
'amount' => 1000,
'credit_type_id' => '5ae401dc-a648-4b49-9ac3-391bb5bc4d7b'
],
'name' => 'Acme Corp Promotional Credit Grant',
'reason' => 'Incentivize new customer',
'effective_at' => '2022-02-01T00:00:00Z',
'expires_at' => '2022-04-01T00:00:00Z',
'paid_amount' => [
'amount' => 5000,
'credit_type_id' => '2714e483-4ff1-48e4-9e25-ac732e8f24f2'
],
'priority' => 0.5,
'credit_grant_type' => 'trial'
]),
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.metronome.com/v1/credits/createGrant"
payload := strings.NewReader("{\n \"customer_id\": \"9b85c1c1-5238-4f2a-a409-61412905e1e1\",\n \"grant_amount\": {\n \"amount\": 1000,\n \"credit_type_id\": \"5ae401dc-a648-4b49-9ac3-391bb5bc4d7b\"\n },\n \"name\": \"Acme Corp Promotional Credit Grant\",\n \"reason\": \"Incentivize new customer\",\n \"effective_at\": \"2022-02-01T00:00:00Z\",\n \"expires_at\": \"2022-04-01T00:00:00Z\",\n \"paid_amount\": {\n \"amount\": 5000,\n \"credit_type_id\": \"2714e483-4ff1-48e4-9e25-ac732e8f24f2\"\n },\n \"priority\": 0.5,\n \"credit_grant_type\": \"trial\"\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.metronome.com/v1/credits/createGrant")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_id\": \"9b85c1c1-5238-4f2a-a409-61412905e1e1\",\n \"grant_amount\": {\n \"amount\": 1000,\n \"credit_type_id\": \"5ae401dc-a648-4b49-9ac3-391bb5bc4d7b\"\n },\n \"name\": \"Acme Corp Promotional Credit Grant\",\n \"reason\": \"Incentivize new customer\",\n \"effective_at\": \"2022-02-01T00:00:00Z\",\n \"expires_at\": \"2022-04-01T00:00:00Z\",\n \"paid_amount\": {\n \"amount\": 5000,\n \"credit_type_id\": \"2714e483-4ff1-48e4-9e25-ac732e8f24f2\"\n },\n \"priority\": 0.5,\n \"credit_grant_type\": \"trial\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.metronome.com/v1/credits/createGrant")
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 \"customer_id\": \"9b85c1c1-5238-4f2a-a409-61412905e1e1\",\n \"grant_amount\": {\n \"amount\": 1000,\n \"credit_type_id\": \"5ae401dc-a648-4b49-9ac3-391bb5bc4d7b\"\n },\n \"name\": \"Acme Corp Promotional Credit Grant\",\n \"reason\": \"Incentivize new customer\",\n \"effective_at\": \"2022-02-01T00:00:00Z\",\n \"expires_at\": \"2022-04-01T00:00:00Z\",\n \"paid_amount\": {\n \"amount\": 5000,\n \"credit_type_id\": \"2714e483-4ff1-48e4-9e25-ac732e8f24f2\"\n },\n \"priority\": 0.5,\n \"credit_grant_type\": \"trial\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "8b24d3dc-6db5-432d-9416-8439b3fbf242"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The details of the credit grant to create.
the Metronome ID of the customer
the amount of credits granted
Show child attributes
Show child attributes
the amount paid for this credit grant
Show child attributes
Show child attributes
the name of the credit grant as it will appear on invoices
The credit grant will only apply to usage or charges dated before this timestamp
Prevents the creation of duplicates. If a request to create a record is made with a previously used uniqueness key, a new record will not be created and the request will fail with a 409 error.
1 - 128The credit grant will only apply to usage or charges dated on or after this timestamp
The date to issue an invoice for the paid_amount.
The product(s) which these credits will be applied to. (If unspecified, the credits will be applied to charges for all products.). The array ordering specified here will be used to determine the order in which credits will be applied to invoice line items
Configure a rollover for this credit grant so if it expires it rolls over a configured amount to a new credit grant. This feature is currently opt-in only. Contact Metronome to be added to the beta.
Show child attributes
Show child attributes
Custom fields to attach to the credit grant.
Show child attributes
Show child attributes
Response
Success
Show child attributes
Show child attributes