Requests asynchronous generation of a report for the specified invoice. Returns a report identifier that can be used to poll the report status.
Role requirements
- Organization Billing Viewer
Path parameters
-
Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the
/orgsendpoint to retrieve all organizations to which the authenticated user has access.Format should match the following pattern:
^([a-f0-9]{24})$. -
Unique string that identifies the invoice for which to generate the report.
POST
/api/atlas/v2/orgs/{orgId}/invoices/{invoiceId}/reports
Atlas CLI
atlas api invoices createOrgInvoiceReport --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)
func main() {
ctx := context.Background()
clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
if err != nil {
log.Fatalf("Error: %v", err)
}
params = &sdk.CreateOrgInvoiceReportApiParams{}
sdkResp, httpResp, err := client.InvoicesApi.
CreateOrgInvoiceReportWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/invoices/{invoiceId}/reports" \
-d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X POST "https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/invoices/{invoiceId}/reports" \
-d '{ <Payload> }'
Request examples
{
"formatSpecVersion": "string",
"reportFormat": "CSV",
"reportType": "FOCUS"
}
Response examples (201)
# Headers
# Payload
{
"downloadUrl": "string",
"expiresAt": "2026-05-04T09:42:00Z",
"failureReason": "string",
"formatSpecVersion": "string",
"invoiceId": "string",
"reportFormat": "CSV",
"reportId": "string",
"reportType": "FOCUS",
"state": "PENDING"
}
Response examples (400)
{
"detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
"error": 400,
"errorCode": "VALIDATION_ERROR",
"reason": "Bad Request"
}
Response examples (401)
{
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"error": 401,
"errorCode": "NOT_ORG_GROUP_CREATOR",
"reason": "Unauthorized"
}
Response examples (403)
{
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"error": 403,
"errorCode": "CANNOT_CHANGE_GROUP_NAME",
"reason": "Forbidden"
}
Response examples (404)
{
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
"error": 404,
"errorCode": "RESOURCE_NOT_FOUND",
"reason": "Not Found"
}
Response examples (429)
{
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"error": 429,
"errorCode": "RATE_LIMITED",
"reason": "Too Many Requests"
}
Response examples (500)
{
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"error": 500,
"errorCode": "UNEXPECTED_ERROR",
"reason": "Internal Server Error"
}