> For the complete documentation index, see [llms.txt](https://movemint.gitbook.io/movemint-developer-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://movemint.gitbook.io/movemint-developer-docs/open-api-specification/core-resources/bib-transfers.md).

# Bib Transfers

Configure whether participants can transfer their registration to another person, the optional transfer fee, and the cutoff after which transfers stop. Single-resource: there is at most one transfer-price row per event.

## Read the event's bib-transfer settings

> Returns whether participant-to-participant transfers are enabled, the\
> optional transfer fee, and the cutoff datetime after which transfers\
> stop being allowed.<br>

````json
{"openapi":"3.1.0","info":{"title":"Movemint API","version":"1.0"},"tags":[{"name":"Bib Transfers","description":"Configure whether participants can transfer their registration to another\nperson, the optional transfer fee, and the cutoff after which transfers\nstop. Single-resource: there is at most one transfer-price row per event.\n"}],"servers":[{"url":"https://www.movemint.cc","description":"Production"}],"security":[{"bearerAuth":[]},{"oauth2":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Pass the access token in the `Authorization` header:\n```\nAuthorization: Bearer YOUR_ACCESS_TOKEN\n```\n"},"oauth2":{"type":"oauth2","description":"OAuth 2.0 authentication using the Authorization Code or Client\nCredentials grant flow.\n","flows":{"authorizationCode":{"authorizationUrl":"https://www.movemint.cc/oauth/authorize","tokenUrl":"https://www.movemint.cc/oauth/token","refreshUrl":"https://www.movemint.cc/oauth/token","scopes":{}},"clientCredentials":{"tokenUrl":"https://www.movemint.cc/oauth/token","scopes":{}}}}},"parameters":{"EventHandle":{"name":"handle","in":"path","required":true,"description":"The unique handle (slug) of the event","schema":{"type":"string"}}},"schemas":{"TransferSettings":{"type":"object","required":["allow_transfers","allow_event_variant_transfers","close_date","price_cents","price_dollars"],"properties":{"allow_transfers":{"type":"boolean","description":"Whether participant-to-participant transfers are enabled."},"allow_event_variant_transfers":{"type":"boolean","description":"Whether participants may also transfer between sub-events (distances)."},"close_date":{"type":"string","format":"date-time","nullable":true,"description":"ISO datetime after which transfers stop. Defaults to registration close when null."},"price_cents":{"type":"integer","nullable":true,"description":"Transfer fee in cents. Null when no fee row exists."},"price_dollars":{"type":"number","nullable":true,"description":"Transfer fee in dollars (computed from price_cents)."}}},"OAuthError":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Machine-readable error code"},"error_description":{"type":"string","description":"Human-readable description of the error"}}},"Error":{"type":"object","description":"A generic error response","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message"}}}},"responses":{"Unauthorized":{"description":"Unauthorized - invalid or missing token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthError"}}}},"Forbidden":{"description":"Forbidden - user is not an admin of this event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"EventNotFound":{"description":"Event not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/events/{handle}/transfer_settings":{"get":{"tags":["Bib Transfers"],"summary":"Read the event's bib-transfer settings","description":"Returns whether participant-to-participant transfers are enabled, the\noptional transfer fee, and the cutoff datetime after which transfers\nstop being allowed.\n","operationId":"getTransferSettings","parameters":[{"$ref":"#/components/parameters/EventHandle"}],"responses":{"200":{"description":"Current transfer settings","content":{"application/json":{"schema":{"type":"object","required":["transfer_settings"],"properties":{"transfer_settings":{"$ref":"#/components/schemas/TransferSettings"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/EventNotFound"}}}}}}
````

## Update bib-transfer settings

> Partially update transfer settings. Only fields present in the request\
> are touched. Setting \`price\_cents\` to \`0\` clears the transfer fee\
> row; omitting the price field leaves the existing row alone.<br>

````json
{"openapi":"3.1.0","info":{"title":"Movemint API","version":"1.0"},"tags":[{"name":"Bib Transfers","description":"Configure whether participants can transfer their registration to another\nperson, the optional transfer fee, and the cutoff after which transfers\nstop. Single-resource: there is at most one transfer-price row per event.\n"}],"servers":[{"url":"https://www.movemint.cc","description":"Production"}],"security":[{"bearerAuth":[]},{"oauth2":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Pass the access token in the `Authorization` header:\n```\nAuthorization: Bearer YOUR_ACCESS_TOKEN\n```\n"},"oauth2":{"type":"oauth2","description":"OAuth 2.0 authentication using the Authorization Code or Client\nCredentials grant flow.\n","flows":{"authorizationCode":{"authorizationUrl":"https://www.movemint.cc/oauth/authorize","tokenUrl":"https://www.movemint.cc/oauth/token","refreshUrl":"https://www.movemint.cc/oauth/token","scopes":{}},"clientCredentials":{"tokenUrl":"https://www.movemint.cc/oauth/token","scopes":{}}}}},"parameters":{"EventHandle":{"name":"handle","in":"path","required":true,"description":"The unique handle (slug) of the event","schema":{"type":"string"}}},"schemas":{"TransferSettingsUpdate":{"type":"object","properties":{"allow_transfers":{"type":"boolean"},"allow_event_variant_transfers":{"type":"boolean"},"price_cents":{"type":"integer","minimum":0,"description":"Transfer fee in cents. 0 clears the fee row."},"price_dollars":{"type":"number","minimum":0,"description":"Alternative to price_cents."},"close_date":{"type":"string","format":"date-time","nullable":true}}},"TransferSettings":{"type":"object","required":["allow_transfers","allow_event_variant_transfers","close_date","price_cents","price_dollars"],"properties":{"allow_transfers":{"type":"boolean","description":"Whether participant-to-participant transfers are enabled."},"allow_event_variant_transfers":{"type":"boolean","description":"Whether participants may also transfer between sub-events (distances)."},"close_date":{"type":"string","format":"date-time","nullable":true,"description":"ISO datetime after which transfers stop. Defaults to registration close when null."},"price_cents":{"type":"integer","nullable":true,"description":"Transfer fee in cents. Null when no fee row exists."},"price_dollars":{"type":"number","nullable":true,"description":"Transfer fee in dollars (computed from price_cents)."}}},"OAuthError":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Machine-readable error code"},"error_description":{"type":"string","description":"Human-readable description of the error"}}},"Error":{"type":"object","description":"A generic error response","required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message"}}},"ValidationError":{"type":"object","description":"A validation error response with a list of error messages","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"string"},"description":"List of validation error messages"}}}},"responses":{"Unauthorized":{"description":"Unauthorized - invalid or missing token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthError"}}}},"Forbidden":{"description":"Forbidden - user is not an admin of this event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"EventNotFound":{"description":"Event not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/events/{handle}/transfer_settings":{"patch":{"tags":["Bib Transfers"],"summary":"Update bib-transfer settings","description":"Partially update transfer settings. Only fields present in the request\nare touched. Setting `price_cents` to `0` clears the transfer fee\nrow; omitting the price field leaves the existing row alone.\n","operationId":"updateTransferSettings","parameters":[{"$ref":"#/components/parameters/EventHandle"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferSettingsUpdate"}}}},"responses":{"200":{"description":"Updated transfer settings","content":{"application/json":{"schema":{"type":"object","required":["transfer_settings"],"properties":{"transfer_settings":{"$ref":"#/components/schemas/TransferSettings"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/EventNotFound"},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}}}}}}}
````
