Skip to main content
POST
/
reports
C#
using Gr4vy;
using Gr4vy.Models.Components;
using System.Collections.Generic;

var sdk = new Gr4vySDK(
    id: "example",
    server: SDKConfig.Server.Sandbox,
    bearerAuthSource: Auth.WithToken(privateKey),
    merchantAccountId: "default"
);

var res = await sdk.Reports.CreateAsync(reportCreate: new ReportCreate() {
    Name = "Monthly Transaction Report",
    Schedule = "<value>",
    ScheduleEnabled = true,
    ScheduleTimezone = "UTC",
    Spec = new Spec() {
        Model = "detailed_settlement",
        Params = new Dictionary<string, object>() {
            { "filters", new Dictionary<string, object>() {
                { "ingested_at", new Dictionary<string, object>() {
                    { "end", "day_end" },
                    { "start", "day_start" },
                } },
            } },
        },
    },
});

// handle response
package main

import(
"context"
"os"
gr4vygo "github.com/gr4vy/gr4vy-go"
"github.com/gr4vy/gr4vy-go/models/components"
"log"
)

func main() {
ctx := context.Background()

s := gr4vy.New(
gr4vy.WithID("example"),
gr4vy.WithServer(gr4vy.ServerSandbox),
gr4vy.WithSecuritySource(withToken),
gr4vy.WithMerchantAccountID("default"),
)

res, err := s.Reports.Create(ctx, components.ReportCreate{
Name: "Monthly Transaction Report",
Schedule: components.ReportScheduleDaily,
ScheduleEnabled: true,
ScheduleTimezone: gr4vygo.Pointer("UTC"),
Spec: components.CreateSpecDetailedSettlement(
components.DetailedSettlementReportSpec{
Params: map[string]any{
"filters": map[string]any{
"ingested_at": map[string]any{
"end": "day_end",
"start": "day_start",
},
},
},
},
),
})
if err != nil {
log.Fatal(err)
}
if res != nil {
// handle response
}
}
package hello.world;

import com.gr4vy.sdk.Gr4vy;
import com.gr4vy.sdk.models.components.*;
import com.gr4vy.sdk.models.errors.*;
import com.gr4vy.sdk.models.operations.AddReportResponse;
import java.lang.Exception;
import java.util.Map;

public class Application {

public static void main(String[] args) throws Exception {

Gr4vy sdk = Gr4vy.builder()
.id("example")
.server(AvailableServers.SANDBOX)
.merchantAccountId("default")
.securitySource(new BearerSecuritySource.Builder(privateKey).build())
.build();

AddReportResponse res = sdk.reports().create()
.reportCreate(ReportCreate.builder()
.name("Monthly Transaction Report")
.schedule(ReportSchedule.DAILY)
.scheduleEnabled(true)
.spec(DetailedSettlementReportSpec.builder()
.params(Map.ofEntries(
Map.entry("filters", Map.ofEntries(
Map.entry("ingested_at", Map.ofEntries(
Map.entry("end", "day_end"),
Map.entry("start", "day_start")))))))
.build())
.scheduleTimezone("UTC")
.build())
.call();

if (res.report().isPresent()) {
System.out.println(res.report().get());
}
}
}
declare(strict_types=1);

require 'vendor/autoload.php';

use Gr4vy;

$sdk = Gr4vy\SDK::builder()
->setId('example')
->setServer('sandbox')
->setSecuritySource(Auth::withToken($privateKey))
->setMerchantAccountId('default')
->build();

$reportCreate = new Gr4vy\ReportCreate(
name: 'Monthly Transaction Report',
schedule: '<value>',
scheduleEnabled: true,
scheduleTimezone: 'UTC',
spec: new Gr4vy\Spec(
model: 'detailed_settlement',
params: [
'filters' => [
'ingested_at' => [
'end' => 'day_end',
'start' => 'day_start',
],
],
],
),
);

$response = $sdk->reports->create(
reportCreate: $reportCreate
);

if ($response->report !== null) {
// handle response
}
from gr4vy import Gr4vy
import os


with Gr4vy(
id="example",
server="sandbox",
merchant_account_id="default",
bearer_auth=auth.with_token(open("./private_key.pem").read())
) as g_client:

res = g_client.reports.create(name="Monthly Transaction Report", schedule="daily", schedule_enabled=True, spec={
"model": "detailed_settlement",
"params": {
"filters": {
"ingested_at": {
"end": "day_end",
"start": "day_start",
},
},
},
}, schedule_timezone="UTC")

# Handle response
print(res)
import { Gr4vy, withToken } from "@gr4vy/sdk";
import fs from "fs";

const gr4vy = new Gr4vy({
id: "example",
server: "sandbox",
merchantAccountId: "default",
bearerAuth: withToken({
privateKey: fs.readFileSync("private_key.pem", "utf8"),
}),
});

async function run() {
const result = await gr4vy.reports.create({
name: "Monthly Transaction Report",
schedule: "daily",
scheduleEnabled: true,
scheduleTimezone: "UTC",
spec: {
model: "detailed_settlement",
params: {
"filters": {
"ingested_at": {
"end": "day_end",
"start": "day_start",
},
},
},
},
});

console.log(result);
}

run();
curl --request POST \
--url https://api.sandbox.{id}.gr4vy.app/reports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"schedule_enabled": true,
"spec": {
"params": {},
"model": "transactions"
}
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "merchant_account_id": "<string>",
  "name": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "schedule_enabled": true,
  "schedule_timezone": "<string>",
  "spec": {
    "params": {}
  },
  "type": "report",
  "creator_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "creator_display_name": "Jane Doe",
  "creator_type": "user",
  "next_execution_at": "2024-06-01T00:00:00.000Z",
  "description": "Monthly transaction summary for May 2024.",
  "latest_execution": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "context": {
      "reference_timestamp": "2023-11-07T05:31:56Z",
      "reference_timezone": "<string>"
    },
    "type": "report-execution"
  }
}
{
"type": "error",
"code": "bad_request",
"status": 400,
"message": "Generic error",
"details": []
}
{
"type": "error",
"code": "unauthorized",
"status": 401,
"message": "No valid API authentication found",
"details": []
}
{
"type": "error",
"code": "forbidden",
"status": 403,
"message": "Generic error",
"details": []
}
{
"type": "error",
"code": "not_found",
"status": 404,
"message": "The resource could not be found",
"details": []
}
{
"type": "error",
"code": "method_not_allowed",
"status": 405,
"message": "Method Not Allowed",
"details": []
}
{
"type": "error",
"code": "duplicate_record",
"status": 409,
"message": "Generic error",
"details": [],
"resource_id": "cdc70639-cb9c-4222-a73f-b8ce39f7821b"
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}
{
"type": "error",
"code": "too_early",
"status": 425,
"message": "Generic error",
"details": []
}
{
"type": "error",
"code": "too_many_requests",
"status": 429,
"message": "Generic error",
"details": []
}
{
"type": "error",
"code": "server_error",
"status": 500,
"message": "Request could not be processed",
"details": []
}
{
"type": "error",
"code": "bad_gateway",
"status": 502,
"message": "Request could not be processed",
"details": []
}
{
"type": "error",
"code": "gateway_timeout",
"status": 504,
"message": "Request could not be processed",
"details": []
}
This endpoint requires the reports.write scope.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-gr4vy-merchant-account-id
string

The ID of the merchant account to use for this request.

Example:

"default"

Body

application/json
name
string
required

The name of the report.

Required string length: 1 - 100
Example:

"Monthly Transaction Report"

schedule
enum<string>
required

The schedule for the report.

Available options:
daily,
monthly,
once,
weekly
Example:

"daily"

schedule_enabled
boolean
required

Whether the report schedule is enabled.

Example:

true

spec
TransactionsReportSpec · object
required

The report specification.

description
string | null

A description of the report.

Required string length: 1 - 1000
Example:

"Monthly transaction summary for May 2024."

schedule_timezone
string
default:Etc/UTC

The timezone for the report schedule.

Example:

"UTC"

Response

Successful Response

id
string<uuid>
required

The unique ID for the report.

Example:

"a1b2c3d4-5678-90ab-cdef-1234567890ab"

merchant_account_id
string
required

The merchant account ID this report belongs to.

Example:

"merchant-account-12345"

name
string
required

The name of the report.

Required string length: 1 - 100
Example:

"Monthly Transaction Report"

created_at
string<date-time>
required

The date this report was created at.

Example:

"2024-05-30T12:34:56.000Z"

updated_at
string<date-time>
required

The date this report was last updated.

Example:

"2024-05-30T13:00:00.000Z"

schedule
enum<string>
required

The schedule for the report.

Available options:
daily,
monthly,
once,
weekly
Example:

"daily"

schedule_enabled
boolean
required

Whether the report schedule is enabled.

Example:

true

schedule_timezone
string
required

The timezone for the report schedule.

Example:

"UTC"

spec
ReportSpec · object
required

The report specification.

type
string
default:report

Always report.

Allowed value: "report"
Example:

"report"

creator_id
string<uuid> | null

The ID of the user who created the report.

Example:

"d290f1ee-6c54-4b01-90e6-d701748f0851"

creator_display_name
string | null

The display name of the report creator.

Required string length: 1 - 1000
Example:

"Jane Doe"

creator_type
enum<string> | null

The type of the report creator.

Available options:
user,
private_key
Example:

"user"

next_execution_at
string<date-time> | null

The next scheduled execution time for the report.

Example:

"2024-06-01T00:00:00.000Z"

description
string | null

A description of the report.

Required string length: 1 - 1000
Example:

"Monthly transaction summary for May 2024."

latest_execution
ReportExecutionSummary · object | null

The latest execution summary for the report.