Start a batch import for donors or recipients
curl --request POST \
--url https://api.gratona.com/v1/admin/import/donors-recipients/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"filename": "<string>",
"original_filename": "<string>",
"import_type": "<string>",
"fields": {},
"household": true,
"householdColumn": "<string>",
"householdNameColumn": "<string>",
"householdAddress1Column": "<string>",
"householdAddress2Column": "<string>",
"householdCityColumn": "<string>",
"householdStateColumn": "<string>",
"householdZipColumn": "<string>",
"householdCountryColumn": "<string>",
"householdPrimaryColumn": "<string>",
"householdRelationColumn": "<string>",
"hysCustomid": [
"<string>"
],
"notify_donor": true,
"notify_donor_template_id": 123,
"sp_amount": "numeric",
"sp_num": 123,
"offset": 123,
"updateExisting": true,
"allowTypeTransitions": true,
"uniqueIdentifierColumn": "<string>",
"uniqueIdentifierField": "<string>",
"program_id": 123
}
'import requests
url = "https://api.gratona.com/v1/admin/import/donors-recipients/batch"
payload = {
"filename": "<string>",
"original_filename": "<string>",
"import_type": "<string>",
"fields": {},
"household": True,
"householdColumn": "<string>",
"householdNameColumn": "<string>",
"householdAddress1Column": "<string>",
"householdAddress2Column": "<string>",
"householdCityColumn": "<string>",
"householdStateColumn": "<string>",
"householdZipColumn": "<string>",
"householdCountryColumn": "<string>",
"householdPrimaryColumn": "<string>",
"householdRelationColumn": "<string>",
"hysCustomid": ["<string>"],
"notify_donor": True,
"notify_donor_template_id": 123,
"sp_amount": "numeric",
"sp_num": 123,
"offset": 123,
"updateExisting": True,
"allowTypeTransitions": True,
"uniqueIdentifierColumn": "<string>",
"uniqueIdentifierField": "<string>",
"program_id": 123
}
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({
filename: '<string>',
original_filename: '<string>',
import_type: '<string>',
fields: {},
household: true,
householdColumn: '<string>',
householdNameColumn: '<string>',
householdAddress1Column: '<string>',
householdAddress2Column: '<string>',
householdCityColumn: '<string>',
householdStateColumn: '<string>',
householdZipColumn: '<string>',
householdCountryColumn: '<string>',
householdPrimaryColumn: '<string>',
householdRelationColumn: '<string>',
hysCustomid: ['<string>'],
notify_donor: true,
notify_donor_template_id: 123,
sp_amount: 'numeric',
sp_num: 123,
offset: 123,
updateExisting: true,
allowTypeTransitions: true,
uniqueIdentifierColumn: '<string>',
uniqueIdentifierField: '<string>',
program_id: 123
})
};
fetch('https://api.gratona.com/v1/admin/import/donors-recipients/batch', 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.gratona.com/v1/admin/import/donors-recipients/batch",
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([
'filename' => '<string>',
'original_filename' => '<string>',
'import_type' => '<string>',
'fields' => [
],
'household' => true,
'householdColumn' => '<string>',
'householdNameColumn' => '<string>',
'householdAddress1Column' => '<string>',
'householdAddress2Column' => '<string>',
'householdCityColumn' => '<string>',
'householdStateColumn' => '<string>',
'householdZipColumn' => '<string>',
'householdCountryColumn' => '<string>',
'householdPrimaryColumn' => '<string>',
'householdRelationColumn' => '<string>',
'hysCustomid' => [
'<string>'
],
'notify_donor' => true,
'notify_donor_template_id' => 123,
'sp_amount' => 'numeric',
'sp_num' => 123,
'offset' => 123,
'updateExisting' => true,
'allowTypeTransitions' => true,
'uniqueIdentifierColumn' => '<string>',
'uniqueIdentifierField' => '<string>',
'program_id' => 123
]),
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.gratona.com/v1/admin/import/donors-recipients/batch"
payload := strings.NewReader("{\n \"filename\": \"<string>\",\n \"original_filename\": \"<string>\",\n \"import_type\": \"<string>\",\n \"fields\": {},\n \"household\": true,\n \"householdColumn\": \"<string>\",\n \"householdNameColumn\": \"<string>\",\n \"householdAddress1Column\": \"<string>\",\n \"householdAddress2Column\": \"<string>\",\n \"householdCityColumn\": \"<string>\",\n \"householdStateColumn\": \"<string>\",\n \"householdZipColumn\": \"<string>\",\n \"householdCountryColumn\": \"<string>\",\n \"householdPrimaryColumn\": \"<string>\",\n \"householdRelationColumn\": \"<string>\",\n \"hysCustomid\": [\n \"<string>\"\n ],\n \"notify_donor\": true,\n \"notify_donor_template_id\": 123,\n \"sp_amount\": \"numeric\",\n \"sp_num\": 123,\n \"offset\": 123,\n \"updateExisting\": true,\n \"allowTypeTransitions\": true,\n \"uniqueIdentifierColumn\": \"<string>\",\n \"uniqueIdentifierField\": \"<string>\",\n \"program_id\": 123\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.gratona.com/v1/admin/import/donors-recipients/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filename\": \"<string>\",\n \"original_filename\": \"<string>\",\n \"import_type\": \"<string>\",\n \"fields\": {},\n \"household\": true,\n \"householdColumn\": \"<string>\",\n \"householdNameColumn\": \"<string>\",\n \"householdAddress1Column\": \"<string>\",\n \"householdAddress2Column\": \"<string>\",\n \"householdCityColumn\": \"<string>\",\n \"householdStateColumn\": \"<string>\",\n \"householdZipColumn\": \"<string>\",\n \"householdCountryColumn\": \"<string>\",\n \"householdPrimaryColumn\": \"<string>\",\n \"householdRelationColumn\": \"<string>\",\n \"hysCustomid\": [\n \"<string>\"\n ],\n \"notify_donor\": true,\n \"notify_donor_template_id\": 123,\n \"sp_amount\": \"numeric\",\n \"sp_num\": 123,\n \"offset\": 123,\n \"updateExisting\": true,\n \"allowTypeTransitions\": true,\n \"uniqueIdentifierColumn\": \"<string>\",\n \"uniqueIdentifierField\": \"<string>\",\n \"program_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/import/donors-recipients/batch")
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 \"filename\": \"<string>\",\n \"original_filename\": \"<string>\",\n \"import_type\": \"<string>\",\n \"fields\": {},\n \"household\": true,\n \"householdColumn\": \"<string>\",\n \"householdNameColumn\": \"<string>\",\n \"householdAddress1Column\": \"<string>\",\n \"householdAddress2Column\": \"<string>\",\n \"householdCityColumn\": \"<string>\",\n \"householdStateColumn\": \"<string>\",\n \"householdZipColumn\": \"<string>\",\n \"householdCountryColumn\": \"<string>\",\n \"householdPrimaryColumn\": \"<string>\",\n \"householdRelationColumn\": \"<string>\",\n \"hysCustomid\": [\n \"<string>\"\n ],\n \"notify_donor\": true,\n \"notify_donor_template_id\": 123,\n \"sp_amount\": \"numeric\",\n \"sp_num\": 123,\n \"offset\": 123,\n \"updateExisting\": true,\n \"allowTypeTransitions\": true,\n \"uniqueIdentifierColumn\": \"<string>\",\n \"uniqueIdentifierField\": \"<string>\",\n \"program_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"message": "Donor/Recipient import batch has been started.",
"batch_id": 123
}Authorizations
Passport bearer token authentication for legacy admin sessions.
Body
S3 filename of the CSV
Original uploaded filename
Type of import (donors or recipients)
Mapping of CSV columns to field keys
Enable household feature
Household column name
Household name column name
Household address1 column name
Household address2 column name
Household city column name
Household state column name
Household zip column name
Household country column name
Household primary column name
Household relation column name
Household custom ID field
Notify donor
Notify donor template ID
Sponsorship amount
"numeric"
Sponsorship number
Header row offset
Update existing records instead of creating new ones
Allow reviewed donor rows to change between Individual and Organization
CSV column position for unique identifier
Database field name to query by for finding existing records
Program ID
curl --request POST \
--url https://api.gratona.com/v1/admin/import/donors-recipients/batch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"filename": "<string>",
"original_filename": "<string>",
"import_type": "<string>",
"fields": {},
"household": true,
"householdColumn": "<string>",
"householdNameColumn": "<string>",
"householdAddress1Column": "<string>",
"householdAddress2Column": "<string>",
"householdCityColumn": "<string>",
"householdStateColumn": "<string>",
"householdZipColumn": "<string>",
"householdCountryColumn": "<string>",
"householdPrimaryColumn": "<string>",
"householdRelationColumn": "<string>",
"hysCustomid": [
"<string>"
],
"notify_donor": true,
"notify_donor_template_id": 123,
"sp_amount": "numeric",
"sp_num": 123,
"offset": 123,
"updateExisting": true,
"allowTypeTransitions": true,
"uniqueIdentifierColumn": "<string>",
"uniqueIdentifierField": "<string>",
"program_id": 123
}
'import requests
url = "https://api.gratona.com/v1/admin/import/donors-recipients/batch"
payload = {
"filename": "<string>",
"original_filename": "<string>",
"import_type": "<string>",
"fields": {},
"household": True,
"householdColumn": "<string>",
"householdNameColumn": "<string>",
"householdAddress1Column": "<string>",
"householdAddress2Column": "<string>",
"householdCityColumn": "<string>",
"householdStateColumn": "<string>",
"householdZipColumn": "<string>",
"householdCountryColumn": "<string>",
"householdPrimaryColumn": "<string>",
"householdRelationColumn": "<string>",
"hysCustomid": ["<string>"],
"notify_donor": True,
"notify_donor_template_id": 123,
"sp_amount": "numeric",
"sp_num": 123,
"offset": 123,
"updateExisting": True,
"allowTypeTransitions": True,
"uniqueIdentifierColumn": "<string>",
"uniqueIdentifierField": "<string>",
"program_id": 123
}
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({
filename: '<string>',
original_filename: '<string>',
import_type: '<string>',
fields: {},
household: true,
householdColumn: '<string>',
householdNameColumn: '<string>',
householdAddress1Column: '<string>',
householdAddress2Column: '<string>',
householdCityColumn: '<string>',
householdStateColumn: '<string>',
householdZipColumn: '<string>',
householdCountryColumn: '<string>',
householdPrimaryColumn: '<string>',
householdRelationColumn: '<string>',
hysCustomid: ['<string>'],
notify_donor: true,
notify_donor_template_id: 123,
sp_amount: 'numeric',
sp_num: 123,
offset: 123,
updateExisting: true,
allowTypeTransitions: true,
uniqueIdentifierColumn: '<string>',
uniqueIdentifierField: '<string>',
program_id: 123
})
};
fetch('https://api.gratona.com/v1/admin/import/donors-recipients/batch', 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.gratona.com/v1/admin/import/donors-recipients/batch",
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([
'filename' => '<string>',
'original_filename' => '<string>',
'import_type' => '<string>',
'fields' => [
],
'household' => true,
'householdColumn' => '<string>',
'householdNameColumn' => '<string>',
'householdAddress1Column' => '<string>',
'householdAddress2Column' => '<string>',
'householdCityColumn' => '<string>',
'householdStateColumn' => '<string>',
'householdZipColumn' => '<string>',
'householdCountryColumn' => '<string>',
'householdPrimaryColumn' => '<string>',
'householdRelationColumn' => '<string>',
'hysCustomid' => [
'<string>'
],
'notify_donor' => true,
'notify_donor_template_id' => 123,
'sp_amount' => 'numeric',
'sp_num' => 123,
'offset' => 123,
'updateExisting' => true,
'allowTypeTransitions' => true,
'uniqueIdentifierColumn' => '<string>',
'uniqueIdentifierField' => '<string>',
'program_id' => 123
]),
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.gratona.com/v1/admin/import/donors-recipients/batch"
payload := strings.NewReader("{\n \"filename\": \"<string>\",\n \"original_filename\": \"<string>\",\n \"import_type\": \"<string>\",\n \"fields\": {},\n \"household\": true,\n \"householdColumn\": \"<string>\",\n \"householdNameColumn\": \"<string>\",\n \"householdAddress1Column\": \"<string>\",\n \"householdAddress2Column\": \"<string>\",\n \"householdCityColumn\": \"<string>\",\n \"householdStateColumn\": \"<string>\",\n \"householdZipColumn\": \"<string>\",\n \"householdCountryColumn\": \"<string>\",\n \"householdPrimaryColumn\": \"<string>\",\n \"householdRelationColumn\": \"<string>\",\n \"hysCustomid\": [\n \"<string>\"\n ],\n \"notify_donor\": true,\n \"notify_donor_template_id\": 123,\n \"sp_amount\": \"numeric\",\n \"sp_num\": 123,\n \"offset\": 123,\n \"updateExisting\": true,\n \"allowTypeTransitions\": true,\n \"uniqueIdentifierColumn\": \"<string>\",\n \"uniqueIdentifierField\": \"<string>\",\n \"program_id\": 123\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.gratona.com/v1/admin/import/donors-recipients/batch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"filename\": \"<string>\",\n \"original_filename\": \"<string>\",\n \"import_type\": \"<string>\",\n \"fields\": {},\n \"household\": true,\n \"householdColumn\": \"<string>\",\n \"householdNameColumn\": \"<string>\",\n \"householdAddress1Column\": \"<string>\",\n \"householdAddress2Column\": \"<string>\",\n \"householdCityColumn\": \"<string>\",\n \"householdStateColumn\": \"<string>\",\n \"householdZipColumn\": \"<string>\",\n \"householdCountryColumn\": \"<string>\",\n \"householdPrimaryColumn\": \"<string>\",\n \"householdRelationColumn\": \"<string>\",\n \"hysCustomid\": [\n \"<string>\"\n ],\n \"notify_donor\": true,\n \"notify_donor_template_id\": 123,\n \"sp_amount\": \"numeric\",\n \"sp_num\": 123,\n \"offset\": 123,\n \"updateExisting\": true,\n \"allowTypeTransitions\": true,\n \"uniqueIdentifierColumn\": \"<string>\",\n \"uniqueIdentifierField\": \"<string>\",\n \"program_id\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/import/donors-recipients/batch")
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 \"filename\": \"<string>\",\n \"original_filename\": \"<string>\",\n \"import_type\": \"<string>\",\n \"fields\": {},\n \"household\": true,\n \"householdColumn\": \"<string>\",\n \"householdNameColumn\": \"<string>\",\n \"householdAddress1Column\": \"<string>\",\n \"householdAddress2Column\": \"<string>\",\n \"householdCityColumn\": \"<string>\",\n \"householdStateColumn\": \"<string>\",\n \"householdZipColumn\": \"<string>\",\n \"householdCountryColumn\": \"<string>\",\n \"householdPrimaryColumn\": \"<string>\",\n \"householdRelationColumn\": \"<string>\",\n \"hysCustomid\": [\n \"<string>\"\n ],\n \"notify_donor\": true,\n \"notify_donor_template_id\": 123,\n \"sp_amount\": \"numeric\",\n \"sp_num\": 123,\n \"offset\": 123,\n \"updateExisting\": true,\n \"allowTypeTransitions\": true,\n \"uniqueIdentifierColumn\": \"<string>\",\n \"uniqueIdentifierField\": \"<string>\",\n \"program_id\": 123\n}"
response = http.request(request)
puts response.read_body{
"message": "Donor/Recipient import batch has been started.",
"batch_id": 123
}